SCCS-vsn: usr.bin/ftp/ftp.c 4.6
-static char sccsid[] = "@(#)ftp.c 4.5 (Berkeley) %G%";
+static char sccsid[] = "@(#)ftp.c 4.6 (Berkeley) %G%";
#endif
#include <sys/param.h>
#endif
#include <sys/param.h>
int port;
{
register struct hostent *hp;
int port;
{
register struct hostent *hp;
bzero((char *)&hisctladdr, sizeof (hisctladdr));
hp = gethostbyname(host);
bzero((char *)&hisctladdr, sizeof (hisctladdr));
hp = gethostbyname(host);
perror("ftp: connect");
goto bad;
}
perror("ftp: connect");
goto bad;
}
- if (socketaddr(s, &myctladdr) < 0) {
- perror("ftp: socketaddr");
+ len = sizeof (myctladdr);
+ if (getsockname(s, (char *)&myctladdr, &len) < 0) {
+ perror("ftp: getsockname");
goto bad;
}
cin = fdopen(s, "r");
goto bad;
}
cin = fdopen(s, "r");
initconn()
{
register char *p, *a;
initconn()
{
register char *p, *a;
data_addr = myctladdr;
data_addr.sin_port = 0; /* let system pick one */
data_addr = myctladdr;
data_addr.sin_port = 0; /* let system pick one */
if (options & SO_DEBUG &&
setsockopt(data, SOL_SOCKET, SO_DEBUG, 0, 0) < 0)
perror("ftp: setsockopt (ignored)");
if (options & SO_DEBUG &&
setsockopt(data, SOL_SOCKET, SO_DEBUG, 0, 0) < 0)
perror("ftp: setsockopt (ignored)");
- if (socketaddr(data, &data_addr) < 0) {
- perror("ftp: socketaddr");
+ len = sizeof (data_addr);
+ if (getsockname(data, (char *)&data_addr, &len) < 0) {
+ perror("ftp: getsockname");
goto bad;
}
if (listen(data, 1) < 0) {
goto bad;
}
if (listen(data, 1) < 0) {