summaryrefslogtreecommitdiffstats
path: root/release/sysinstall/ftp.c
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1995-05-24 01:27:15 +0000
committerjkh <jkh@FreeBSD.org>1995-05-24 01:27:15 +0000
commit3ea9b3c64fbf9f43f0a19c20d54dd948f43e0dc4 (patch)
tree7e001d70a2e1ec65b4b789b26acd5bcd541a7c0b /release/sysinstall/ftp.c
parentf0c47d8f7975c482cc2c356b5bbdd466631556a7 (diff)
downloadFreeBSD-src-3ea9b3c64fbf9f43f0a19c20d54dd948f43e0dc4.zip
FreeBSD-src-3ea9b3c64fbf9f43f0a19c20d54dd948f43e0dc4.tar.gz
Add a final configuration menu and the beginnings of the backing code
for it. The ftp installation method is working well enough to test. Many more bug fixes, says Gary.
Diffstat (limited to 'release/sysinstall/ftp.c')
-rw-r--r--release/sysinstall/ftp.c38
1 files changed, 25 insertions, 13 deletions
diff --git a/release/sysinstall/ftp.c b/release/sysinstall/ftp.c
index 0d0cf17..4a908e5 100644
--- a/release/sysinstall/ftp.c
+++ b/release/sysinstall/ftp.c
@@ -114,11 +114,12 @@ int
FtpOpen(FTP_t ftp, char *host, char *user, char *passwd)
{
- struct hostent *he, hdef;
- struct servent *se, sdef;
- struct sockaddr_in sin;
- int s;
- char a,*p,buf[BUFSIZ];
+ struct hostent *he, hdef;
+ struct servent *se, sdef;
+ struct sockaddr_in sin;
+ int s;
+ char a,*p,buf[BUFSIZ];
+ unsigned long temp;
if (!user)
user = "ftp";
@@ -126,17 +127,28 @@ FtpOpen(FTP_t ftp, char *host, char *user, char *passwd)
if (!passwd)
passwd = "??@??(FreeBSD:libftp)"; /* XXX */
- he = gethostbyname(host);
- if (!he)
- return ENOENT;
+ msgDebug("FtpOpen(ftp, %s, %s, %s)\n", host, user, passwd);
- se = getservbyname("ftp","tcp");
- if (!se)
+ temp = inet_addr(host);
+ if (temp != INADDR_NONE)
+ {
+ msgDebug("Using dotted IP address `%s'\n", host);
+ ftp->addrtype = sin.sin_family = AF_INET;
+ sin.sin_addr.s_addr = temp;
+ } else {
+ msgDebug("Trying to resolve `%s'\n", host);
+ he = gethostbyname(host);
+ if (!he)
+ {
+ msgDebug("Lookup of `%s' failed!\n", host);
return ENOENT;
+ }
+ ftp->addrtype = sin.sin_family = he->h_addrtype;
+ bcopy(he->h_addr, (char *)&sin.sin_addr, he->h_length);
+ }
+
+ sin.sin_port = htons(21);
- ftp->addrtype = sin.sin_family = he->h_addrtype;
- bcopy(he->h_addr, (char *)&sin.sin_addr, he->h_length);
- sin.sin_port = se->s_port;
if ((s = socket(he->h_addrtype, SOCK_STREAM, 0)) < 0)
return s;
OpenPOWER on IntegriCloud