diff options
author | Mike Frysinger <vapier@gentoo.org> | 2006-03-11 03:26:56 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2006-03-11 03:26:56 +0000 |
commit | a170e459f7fb4d9dde221aa1511178cc038630f8 (patch) | |
tree | 9b752b5fc52dbd6bbfe03ef2f3e84679294eff86 /net-ftp | |
parent | old (diff) | |
download | historical-a170e459f7fb4d9dde221aa1511178cc038630f8.tar.gz historical-a170e459f7fb4d9dde221aa1511178cc038630f8.tar.bz2 historical-a170e459f7fb4d9dde221aa1511178cc038630f8.zip |
old
Package-Manager: portage-2.1_pre5-r4
Diffstat (limited to 'net-ftp')
-rw-r--r-- | net-ftp/ftp/Manifest | 26 | ||||
-rw-r--r-- | net-ftp/ftp/files/digest-ftp-0.17-r3 | 1 | ||||
-rw-r--r-- | net-ftp/ftp/files/digest-ftp-0.17-r5 | 1 | ||||
-rw-r--r-- | net-ftp/ftp/files/netkit-ftp-0.17+ssl-0.2+auth.diff | 12 | ||||
-rw-r--r-- | net-ftp/ftp/files/netkit-ftp-0.17+ssl-0.2.diff | 1896 | ||||
-rw-r--r-- | net-ftp/ftp/ftp-0.17-r3.ebuild | 42 | ||||
-rw-r--r-- | net-ftp/ftp/ftp-0.17-r5.ebuild | 50 |
7 files changed, 4 insertions, 2024 deletions
diff --git a/net-ftp/ftp/Manifest b/net-ftp/ftp/Manifest index 582f7dbe73f3..9176d82f974a 100644 --- a/net-ftp/ftp/Manifest +++ b/net-ftp/ftp/Manifest @@ -4,21 +4,9 @@ Hash: SHA1 MD5 da45466a574c0c99684eb380fd2999e5 ChangeLog 4232 RMD160 b9dacc31cfdf3df837d883f635d9e40ea3517cba ChangeLog 4232 SHA256 336c92d59828a25f94a037e32894cebabc286c23236f0d6a97367e51b62bf6b5 ChangeLog 4232 -MD5 036b2200a177f3266c5cbb3f4d5e4ed5 files/digest-ftp-0.17-r3 66 -RMD160 15d300d5e830ae15160766fd3d44a543c4c0c3d1 files/digest-ftp-0.17-r3 66 -SHA256 386ec7dce64712dbbb8b81f072f3ea065346af722dcf0869eec0361bac155346 files/digest-ftp-0.17-r3 66 -MD5 036b2200a177f3266c5cbb3f4d5e4ed5 files/digest-ftp-0.17-r5 66 -RMD160 15d300d5e830ae15160766fd3d44a543c4c0c3d1 files/digest-ftp-0.17-r5 66 -SHA256 386ec7dce64712dbbb8b81f072f3ea065346af722dcf0869eec0361bac155346 files/digest-ftp-0.17-r5 66 MD5 036b2200a177f3266c5cbb3f4d5e4ed5 files/digest-ftp-0.17-r6 66 RMD160 15d300d5e830ae15160766fd3d44a543c4c0c3d1 files/digest-ftp-0.17-r6 66 SHA256 386ec7dce64712dbbb8b81f072f3ea065346af722dcf0869eec0361bac155346 files/digest-ftp-0.17-r6 66 -MD5 10adb0b3b66639bdb39e7c976667eb68 files/netkit-ftp-0.17+ssl-0.2+auth.diff 424 -RMD160 62947ded40cf1e10a75426e68a1c45961b98035c files/netkit-ftp-0.17+ssl-0.2+auth.diff 424 -SHA256 2e22454a382a09f311d1af2b3c48cccf131a6014001118dc25a5803692e555c9 files/netkit-ftp-0.17+ssl-0.2+auth.diff 424 -MD5 93f2e2f560f76d5ca833c2172fc2b501 files/netkit-ftp-0.17+ssl-0.2.diff 45616 -RMD160 64e149df2376ed396a1fc4b8f46d2b4d27a0ac1c files/netkit-ftp-0.17+ssl-0.2.diff 45616 -SHA256 2c5c639448b2e32713b61d1abbecd8aafa4be3fcb8d7c54584c36b2702a4c5f0 files/netkit-ftp-0.17+ssl-0.2.diff 45616 MD5 ac6ceef9cbe7bce5e89b97acaba3934f files/netkit-ftp-0.17-acct.patch 419 RMD160 131d0f7f411a9317bef4a9489371499824dc1982 files/netkit-ftp-0.17-acct.patch 419 SHA256 c5a50791759b7f15c7743b8af9f233efa7765715044262f5220634b86a11bafa files/netkit-ftp-0.17-acct.patch 419 @@ -46,12 +34,6 @@ SHA256 5a5dfb273a24a95757205562925430e84995e30e0bd48a38148dbf8c91a532e1 files/ne MD5 c6d25ab53501677130cabad19092b0a5 files/netkit-ftp-0.17-ssl-0.2.patch 29528 RMD160 1c692ead2aa9033c503c0a8732fa583dc2d87cee files/netkit-ftp-0.17-ssl-0.2.patch 29528 SHA256 352184f5ea05a184f8ef46f1408878b3306cfa5cb288bdb68e06075b0031c8b1 files/netkit-ftp-0.17-ssl-0.2.patch 29528 -MD5 80ca646c7ebf7d86e937294242836ea6 ftp-0.17-r3.ebuild 1034 -RMD160 e6ee8a4d87efae61fee95490485d97015989790b ftp-0.17-r3.ebuild 1034 -SHA256 8526f6848c341b86005d248e4fd6e3001db614f83bb2d1089b84ff64ab512012 ftp-0.17-r3.ebuild 1034 -MD5 45fd632e8f4c81f73a7ab97dac005132 ftp-0.17-r5.ebuild 1413 -RMD160 35a3e86451fcea3a9f2fd0fad299a6c18db5d82b ftp-0.17-r5.ebuild 1413 -SHA256 f9507a057c77df28ac90e1586a21988a63655793c9e48225d6608007ff7ae8b2 ftp-0.17-r5.ebuild 1413 MD5 f575917c2d3103fe0cd22c5ccdc33433 ftp-0.17-r6.ebuild 1540 RMD160 15c4dbdf7515fac59d671a6bc0e03ee8d1662d07 ftp-0.17-r6.ebuild 1540 SHA256 f59c39e9d6c14dd3e52423299a2c676e86f44833758b4d84946934b73b5f7c3d ftp-0.17-r6.ebuild 1540 @@ -59,9 +41,9 @@ MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164 RMD160 f43cbec30b7074319087c9acffdb9354b17b0db3 metadata.xml 164 SHA256 f5f2891f2a4791cd31350bb2bb572131ad7235cd0eeb124c9912c187ac10ce92 metadata.xml 164 -----BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.2.1 (GNU/Linux) +Version: GnuPG v1.4.2.2 (GNU/Linux) -iD8DBQFEDnUg2+ySkm8kpY0RAkybAJ4wUf+mZTLqcbmLAoYa7ZxGxIKgwQCbBFF2 -yzhh6Uftyjd0TgvP9hLXBjU= -=OZbl +iD8DBQFEEkPo2+ySkm8kpY0RAv4vAKC712vegYxpRwnXpXe0Z6ZzrmrY1wCguQap +TmhTp92SB7YC6NchoWk9MYM= +=msQy -----END PGP SIGNATURE----- diff --git a/net-ftp/ftp/files/digest-ftp-0.17-r3 b/net-ftp/ftp/files/digest-ftp-0.17-r3 deleted file mode 100644 index d98bdd29a960..000000000000 --- a/net-ftp/ftp/files/digest-ftp-0.17-r3 +++ /dev/null @@ -1 +0,0 @@ -MD5 94441610c9b86ef45c4c6ec609444060 netkit-ftp-0.17.tar.gz 53934 diff --git a/net-ftp/ftp/files/digest-ftp-0.17-r5 b/net-ftp/ftp/files/digest-ftp-0.17-r5 deleted file mode 100644 index d98bdd29a960..000000000000 --- a/net-ftp/ftp/files/digest-ftp-0.17-r5 +++ /dev/null @@ -1 +0,0 @@ -MD5 94441610c9b86ef45c4c6ec609444060 netkit-ftp-0.17.tar.gz 53934 diff --git a/net-ftp/ftp/files/netkit-ftp-0.17+ssl-0.2+auth.diff b/net-ftp/ftp/files/netkit-ftp-0.17+ssl-0.2+auth.diff deleted file mode 100644 index 8bbf23a8e241..000000000000 --- a/net-ftp/ftp/files/netkit-ftp-0.17+ssl-0.2+auth.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN netkit-ftp-0.17.old/ftp/ftp.c netkit-ftp-0.17.new/ftp/ftp.c ---- netkit-ftp-0.17.old/ftp/ftp.c 2003-03-18 18:33:49.000000000 -0300 -+++ netkit-ftp-0.17.new/ftp/ftp.c 2003-03-18 18:37:17.000000000 -0300 -@@ -1811,7 +1811,7 @@ - */ - if (ssl_secure_flag) - return ERROR; -- } else if (n == CONTINUE ) { -+ } else if (n == CONTINUE || n == COMPLETE) { - /* do SSL */ - ssl_con=(SSL *)SSL_new(ssl_ctx); - diff --git a/net-ftp/ftp/files/netkit-ftp-0.17+ssl-0.2.diff b/net-ftp/ftp/files/netkit-ftp-0.17+ssl-0.2.diff deleted file mode 100644 index 33fd798f1afc..000000000000 --- a/net-ftp/ftp/files/netkit-ftp-0.17+ssl-0.2.diff +++ /dev/null @@ -1,1896 +0,0 @@ -diff -u -r -N netkit-ftp-0.17/ftp/Makefile netkit-ftp-0.17+ssl-0.2/ftp/Makefile ---- netkit-ftp-0.17/ftp/Makefile Sun Aug 1 08:00:12 1999 -+++ netkit-ftp-0.17+ssl-0.2/ftp/Makefile Mon Sep 25 23:36:51 2000 -@@ -8,6 +8,9 @@ - LIBS += -lreadline $(LIBTERMCAP) - endif - -+CFLAGS += -DUSE_SSL -g -+LIBS += -lssl -lcrypto -+ - ftp: cmds.o cmdtab.o domacro.o ftp.o glob.o main.o ruserpass.o - $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ - -diff -u -r -N netkit-ftp-0.17/ftp/cmds.c netkit-ftp-0.17+ssl-0.2/ftp/cmds.c ---- netkit-ftp-0.17/ftp/cmds.c Sun Jul 23 03:36:59 2000 -+++ netkit-ftp-0.17+ssl-0.2/ftp/cmds.c Sun Sep 24 15:09:15 2000 -@@ -207,6 +207,32 @@ - } - port = ftp_port; - if (argc > 2) { -+#ifdef USE_SSL -+ /* not really an SSL enhancement but something that -+ * should have always been here --tjh -+ */ -+ if (!isdigit(argv[2][0])) { -+ struct servent *destsp; -+ -+ destsp = getservbyname(argv[2], "tcp"); -+ -+ /* if lookup fails for ssl-ftp we fallback to -+ * the default (unofficial) port number -+ */ -+ if ((strcmp(argv[2],"ssl-ftp")==0) && (destsp==NULL)) -+ port = 150; -+ else { -+ if (destsp == NULL ) { -+ printf("%s: bad port name-- %s\n",argv[1],argv[2]); -+ printf ("usage: %s host-name [port]\n",argv[0]); -+ code = -1; -+ return; -+ } else { -+ port = ntohs(destsp->s_port); -+ } -+ } -+ } else -+#endif /* USE_SSL */ - port = atoi(argv[2]); - if (port < 1) { - printf("%s: bad port number-- %s\n", argv[1], argv[2]); -diff -u -r -N netkit-ftp-0.17/ftp/ftp.1 netkit-ftp-0.17+ssl-0.2/ftp/ftp.1 ---- netkit-ftp-0.17/ftp/ftp.1 Mon Jul 31 01:56:59 2000 -+++ netkit-ftp-0.17+ssl-0.2/ftp/ftp.1 Sun May 13 14:10:22 2001 -@@ -97,6 +97,52 @@ - as report on data transfer statistics. - .It Fl d - Enables debugging. -+.It Fl z Ar option -+Set SSL (Secure Socket Layer) parameters. The default is to negotiate -+via ftp protocoll if SSL is availlable at server side and then to -+switch it on. In this mode you can connect to both conventional and -+SSL enhanced ftpd's. -+.Pp -+The SSL parameters are: -+.Bl -tag -width Fl -+.It Ic Ar debug -+Send SSL related debugging information to stderr. -+.It Ic Ar authdebug -+Enable authentication debugging. -+.It Ic Ar ssl -+Negotiate SSL at first, then use ftp protocol. ftp protocol -+negotiation goes encrypted. (Not yet implemented) -+.It Ic Ar nossl, Ar !ssl -+switch of SSL negotiation -+.It Ic Ar certrequired -+client certificate is mandatory -+.It Ic Ar secure -+Don't switch back to unencrypted mode (no SSL) if SSL is not available. -+.It Ic Ar verbose -+Be verbose about certificates etc. -+.It Ic Ar verify=int -+.\" TODO -+Set the SSL verify flags (SSL_VERIFY_* in -+.Ar ssl/ssl.h -+). -+.\" TODO -+.It Ic Ar cert=cert_file -+.\" TODO -+Use the certificate(s) in -+.Ar cert_file . -+.It Ic Ar key=key_file -+.\" TODO -+Use the key(s) in -+.Ar key_file . -+.It Ic Ar cipher=ciph_list -+.\" TODO -+Set the preferred ciphers to -+.Ar ciph_list . -+.\" TODO: possible values; comma-separated list? -+(See -+.Ar ssl/ssl.h -+). -+.El - .El - .Pp - The client host with which -diff -u -r -N netkit-ftp-0.17/ftp/ftp.c netkit-ftp-0.17+ssl-0.2/ftp/ftp.c ---- netkit-ftp-0.17/ftp/ftp.c Mon Dec 13 21:33:20 1999 -+++ netkit-ftp-0.17+ssl-0.2/ftp/ftp.c Tue Sep 26 00:25:48 2000 -@@ -1,3 +1,15 @@ -+/* -+ * The modifications to support SSLeay were done by Tim Hudson -+ * tjh@cryptsoft.com -+ * -+ * You can do whatever you like with these patches except pretend that -+ * you wrote them. -+ * -+ * Email ssl-users-request@lists.cryptsoft.com to get instructions on how to -+ * join the mailing list that discusses SSLeay and also these patches. -+ * -+ */ -+ - /* - * Copyright (c) 1985, 1989 Regents of the University of California. - * All rights reserved. -@@ -77,6 +89,17 @@ - static sigjmp_buf ptabort; - static int ptabflg = 0; - static int abrtflag = 0; -+#ifdef USE_SSL -+static int pdata = -1; -+static int -+auth_user(char *u,char *p); -+static int -+ssl_getc(SSL *ssl_con); -+static int -+ssl_putc_flush(SSL *ssl_con); -+static int -+ssl_putc(SSL *ssl_con, int oneint); -+#endif - - void lostpeer(int); - extern int connected; -@@ -243,14 +266,7 @@ - else - luser = tmp; - } -- n = command("USER %s", luser); -- if (n == CONTINUE) { -- if (pass == NULL) { -- /* fflush(stdout); */ -- pass = getpass("Password:"); -- } -- n = command("PASS %s", pass); -- } -+ n = auth_user(luser,pass); - if (n == CONTINUE) { - aflag++; - /* fflush(stdout); */ -@@ -296,6 +312,9 @@ - va_list ap; - int r; - void (*oldintr)(int); -+#ifdef USE_SSL -+ char outputbuf[8192]; -+#endif /* USE_SSL */ - - abrtflag = 0; - if (debug) { -@@ -316,10 +335,27 @@ - } - oldintr = signal(SIGINT, cmdabort); - va_start(ap, fmt); -+#ifdef USE_SSL -+ /* assemble the output into a buffer */ -+ vsnprintf(outputbuf,sizeof(outputbuf),fmt,ap); -+ strcat(outputbuf,"\r\n"); -+ if (ssl_active_flag) { -+ SSL_write(ssl_con,outputbuf,strlen(outputbuf)); -+ } else { -+ fprintf(cout,"%s",outputbuf); -+ fflush(cout); -+ } -+#else /* !USE_SSL */ - vfprintf(cout, fmt, ap); -+#endif /* USE_SSL */ - va_end(ap); -+ -+#ifndef USE_SSL -+ /* we don't need this as we concatenated it above */ - fprintf(cout, "\r\n"); - (void) fflush(cout); -+#endif /* !USE_SSL */ -+ - cpend = 1; - r = getreply(!strcmp(fmt, "QUIT")); - if (abrtflag && oldintr != SIG_IGN) -@@ -343,25 +379,39 @@ - int pflag = 0; - size_t px = 0; - size_t psize = sizeof(pasv); -+ char buf[16]; - - oldintr = signal(SIGINT, cmdabort); - for (;;) { - dig = n = code = 0; - cp = reply_string; -- while ((c = getc(cin)) != '\n') { -+ while ((c = GETC(cin)) != '\n') { - if (c == IAC) { /* handle telnet commands */ -- switch (c = getc(cin)) { -+ switch (c = GETC(cin)) { - case WILL: - case WONT: -- c = getc(cin); -- fprintf(cout, "%c%c%c", IAC, DONT, c); -- (void) fflush(cout); -+ c = GETC(cin); -+ sprintf(buf, -+ "%c%c%c", IAC, DONT, c); -+#ifdef USE_SSL -+ if (ssl_active_flag) -+ SSL_write(ssl_con,buf,3); -+ else -+#endif /* !USE_SSL */ -+ fwrite(buf,3,1,cout); -+ (void) FFLUSH(cout); - break; - case DO: - case DONT: -- c = getc(cin); -- fprintf(cout, "%c%c%c", IAC, WONT, c); -- (void) fflush(cout); -+ c = GETC(cin); -+ sprintf(buf, "%c%c%c", IAC, WONT, c); -+#ifdef USE_SSL -+ if (ssl_active_flag) -+ SSL_write(ssl_con,buf,3); -+ else -+#endif /* !USE_SSL */ -+ fwrite(buf,3,1,cout); -+ (void) FFLUSH(cout); - break; - default: - break; -@@ -600,9 +650,18 @@ - errno = d = 0; - while ((c = read(fileno(fin), buf, sizeof (buf))) > 0) { - bytes += c; -+#ifdef USE_SSL -+ if (ssl_data_active_flag) { -+ for (bufp = buf; c > 0; c -= d, bufp += d) -+ if ((d = SSL_write(ssl_data_con, bufp, c)) <= 0) -+ break; -+ } else -+#endif /* !USE_SSL */ -+ { - for (bufp = buf; c > 0; c -= d, bufp += d) - if ((d = write(fileno(dout), bufp, c)) <= 0) - break; -+ } - if (hash) { - while (bytes >= hashbytes) { - (void) putchar('#'); -@@ -654,16 +713,17 @@ - } - if (ferror(dout)) - break; -- (void) putc('\r', dout); -+ (void) DATAPUTC('\r', dout); - bytes++; - } -- (void) putc(c, dout); -+ (void) DATAPUTC(c, dout); - bytes++; - /* if (c == '\r') { */ - /* (void) putc('\0', dout); (* this violates rfc */ - /* bytes++; */ - /* } */ - } -+ DATAFLUSH(dout); - if (hash) { - if (bytes < hashbytes) - (void) putchar('#'); -@@ -688,6 +748,15 @@ - if (closefunc != NULL) - (*closefunc)(fin); - (void) fclose(dout); -+ -+#ifdef USE_SSL -+ if (ssl_data_active_flag && (ssl_data_con!=NULL)) { -+ SSL_free(ssl_data_con); -+ ssl_data_active_flag=0; -+ ssl_data_con=NULL; -+ } -+#endif /* USE_SSL */ -+ - /* closes data as well, so discard it */ - data = -1; - (void) getreply(0); -@@ -714,6 +783,15 @@ - (void) close(data); - data = -1; - } -+ -+#ifdef USE_SSL -+ if (ssl_data_active_flag && (ssl_data_con!=NULL)) { -+ SSL_free(ssl_data_con); -+ ssl_data_active_flag=0; -+ ssl_data_con=NULL; -+ } -+#endif /* USE_SSL */ -+ - (void) getreply(0); - code = -1; - if (closefunc != NULL && fin != NULL) -@@ -908,6 +986,33 @@ - return; - } - errno = d = 0; -+#ifdef USE_SSL -+ if (ssl_data_active_flag) { -+ while ((c = SSL_read(ssl_data_con, buf, bufsize)) > 0) { -+ if ((d = write(fileno(fout), buf, c)) != c) -+ break; -+ bytes += c; -+ if (hash) { -+ while (bytes >= hashbytes) { -+ (void) putchar('#'); -+ hashbytes += HASHBYTES; -+ } -+ (void) fflush(stdout); -+ } -+ } -+ if ( c < -1 ) { -+ static char errbuf[1024]; -+ -+ sprintf(errbuf,"ftp: SSL_read DATA error %s\n", -+ ERR_error_string(ERR_get_error(),NULL)); -+ -+ /* tell the user ... who else */ -+ fprintf(stderr,"%s", errbuf); -+ fflush(stderr); -+ } -+ } else -+#endif /* !USE_SSL */ -+ { - while ((c = read(fileno(din), buf, bufsize)) > 0) { - if ((d = write(fileno(fout), buf, c)) != c) - break; -@@ -927,6 +1032,7 @@ - hashbytes += TICKBYTES; - } - } -+ } - if (hash && bytes > 0) { - if (bytes < HASHBYTES) - (void) putchar('#'); -@@ -973,7 +1079,7 @@ - return; - } - } -- while ((c = getc(din)) != EOF) { -+ while ((c = DATAGETC(din)) != EOF) { - if (c == '\n') - bare_lfs++; - while (c == '\r') { -@@ -991,7 +1097,7 @@ - hashbytes += TICKBYTES; - } - bytes++; -- if ((c = getc(din)) != '\n' || tcrflag) { -+ if ((c = DATAGETC(din)) != '\n' || tcrflag) { - if (ferror(fout)) - goto break2; - (void) putc('\r', fout); -@@ -1039,6 +1145,15 @@ - (void) signal(SIGPIPE, oldintp); - (void) gettimeofday(&stop, (struct timezone *)0); - (void) fclose(din); -+ -+#ifdef USE_SSL -+ if (ssl_data_active_flag && (ssl_data_con!=NULL)) { -+ SSL_free(ssl_data_con); -+ ssl_data_active_flag=0; -+ ssl_data_con=NULL; -+ } -+#endif /* USE_SSL */ -+ - /* closes data as well, so discard it */ - data = -1; - (void) getreply(0); -@@ -1071,6 +1186,15 @@ - (void) close(data); - data = -1; - } -+ -+#ifdef USE_SSL -+ if (ssl_data_active_flag && (ssl_data_con!=NULL)) { -+ SSL_free(ssl_data_con); -+ ssl_data_active_flag=0; -+ ssl_data_con=NULL; -+ } -+#endif /* USE_SSL */ -+ - if (bytes > 0) - ptransfer("received", bytes, &start, &stop); - (void) signal(SIGINT, oldintr); -@@ -1207,6 +1331,7 @@ - struct sockaddr_in from; - int s, tos; - socklen_t fromlen = sizeof(from); -+ int ret; - - if (passivemode) - return (fdopen(data, lmode)); -@@ -1224,6 +1349,67 @@ - if (setsockopt(s, IPPROTO_IP, IP_TOS, (char *)&tos, sizeof(int)) < 0) - perror("ftp: setsockopt TOS (ignored)"); - #endif -+ -+#ifdef USE_SSL -+ ssl_data_active_flag=0; -+ if (ssl_active_flag && ssl_encrypt_data) { -+ /* do SSL */ -+ if (ssl_data_con!=NULL) { -+ SSL_free(ssl_data_con); -+ ssl_data_con=NULL; -+ } -+ ssl_data_con=(SSL *)SSL_new(ssl_ctx); -+ -+ SSL_set_fd(ssl_data_con,data); -+ set_ssl_trace(ssl_data_con); -+ -+ SSL_set_verify(ssl_data_con,ssl_verify_flag,NULL); -+ -+ /* this is the "magic" call that makes -+ * this quick assuming Eric has this going -+ * okay! ;-) -+ */ -+ SSL_copy_session_id(ssl_data_con,ssl_con); -+ -+ /* we are doing I/O and not using select so -+ * it is "safe" to read ahead -+ */ -+ /* SSL_set_read_ahead(ssl_data_con,1); */ -+ -+ if (debug) { -+ fprintf(stderr,"===>START SSL connect on DATA\n"); -+ fflush(stderr); -+ } -+ -+ if ((ret=SSL_connect(ssl_data_con))<=0) { -+ static char errbuf[1024]; -+ -+ sprintf(errbuf,"ftp: SSL_connect DATA error %d - %s\n", -+ ret,ERR_error_string(ERR_get_error(),NULL)); -+ -+ /* tell the user ... who else */ -+ fprintf(stderr,"%s", errbuf); -+ fflush(stderr); -+ -+ /* abort time methinks ... */ -+ close(data); -+ return NULL; -+ } else { -+ if (ssl_debug_flag) { -+ BIO_printf(bio_err,"[SSL DATA Cipher %s]\n", -+ SSL_get_cipher(ssl_con)); -+ } -+ ssl_data_active_flag=1; -+ } -+ -+ if (debug) { -+ fprintf(stderr,"===>DONE SSL connect on DATA %d\n",data); -+ fflush(stderr); -+ } -+ -+ } -+#endif /* USE_SSL */ -+ - return (fdopen(data, lmode)); - } - -@@ -1609,3 +1795,142 @@ - } - (void) getreply(0); - } -+ -+static int -+auth_user(char *u,char *p) -+{ -+ int n; -+ -+#ifdef USE_SSL -+ if (ssl_enabled) { -+ n = command("AUTH SSL"); -+ if (n == ERROR) { /* do normal USER/PASS */ -+ printf("SSL not available\n"); -+ /* spit the dummy as we will only talk ssl -+ * when running in "secure" mode -+ */ -+ if (ssl_secure_flag) -+ return ERROR; -+ } else if (n == CONTINUE ) { -+ /* do SSL */ -+ ssl_con=(SSL *)SSL_new(ssl_ctx); -+ -+ SSL_set_fd(ssl_con,fileno(cout)); -+ set_ssl_trace(ssl_con); -+ -+ SSL_set_verify(ssl_con,ssl_verify_flag,NULL); -+ -+ /* Add in any certificates if you want to here ... */ -+ if (my_ssl_cert_file) { -+ if (!SSL_use_certificate_file(ssl_con, my_ssl_cert_file, -+ X509_FILETYPE_PEM)) { -+ fprintf(stderr,"%s: ",my_ssl_cert_file); -+ ERR_print_errors_fp(stderr); -+ exit(1); -+ } else { -+ if (!my_ssl_key_file) -+ my_ssl_key_file = my_ssl_cert_file; -+ if (!SSL_use_RSAPrivateKey_file(ssl_con, my_ssl_key_file, -+ X509_FILETYPE_PEM)) { -+ fprintf(stderr,"%s: ", my_ssl_key_file); -+ ERR_print_errors_fp(stderr); -+ exit(1); -+ } -+ } -+ } -+ -+ if (SSL_connect(ssl_con)<=0) { -+ static char errbuf[1024]; -+ -+ sprintf(errbuf,"ftp: SSL_connect error %s\n", -+ ERR_error_string(ERR_get_error(),NULL)); -+ perror(errbuf); -+ /* abort time methinks ... */ -+ exit(1); -+ } else { -+ fprintf(stderr,"[SSL Cipher %s]\n",SSL_get_cipher(ssl_con)); -+ fflush(stderr); -+ ssl_active_flag=1; -+ } -+ -+ n = command("USER %s",u); -+ if (n == CONTINUE) { -+ if(p == NULL) -+ p = getpass("Password:"); -+ n = command("PASS %s",p); -+ } -+ return (n); -+ } -+ } -+#endif /* USE_SSL */ -+ n = command("USER %s",u); -+ if (n == CONTINUE) { -+ if(p == NULL) -+ p = getpass("Password:"); -+ n = command("PASS %s",p); -+ } -+ return(n); -+} -+ -+#ifdef USE_SSL -+ -+/* we really shouldn't have code like this! --tjh */ -+static int -+ssl_getc(SSL *ssl_con) -+{ -+ char onebyte; -+ int ret; -+ -+ if ((ret=SSL_read(ssl_con,&onebyte,1))!=1) { -+ /* we want to know this stuff! */ -+ if (ssl_debug_flag || (ret!=0)) { -+ fprintf(stderr,"ssl_getc: SSL_read failed %d = %d\n",ret,errno); -+ fflush(stderr); -+ } -+ return -1; -+ } else { -+ if (ssl_debug_flag) { -+ BIO_printf(bio_err,"ssl_getc: SSL_read %d (%c) ",onebyte & 0xff,isprint(onebyte)?onebyte:'.'); -+ } -+ return onebyte & 0xff; -+ } -+} -+ -+ -+/* got back to this an implemented some rather "simple" buffering */ -+static char putc_buf[BUFSIZ]; -+static int putc_buf_pos=0; -+ -+static int -+ssl_putc_flush(SSL *ssl_con) -+{ -+ if (putc_buf_pos>0) { -+ if (SSL_write(ssl_con,putc_buf,putc_buf_pos)!=putc_buf_pos) { -+ if (ssl_debug_flag) { -+ BIO_printf(bio_err,"ssl_putc_flush: WRITE FAILED\n"); -+ } -+ putc_buf_pos=0; -+ return -1; -+ } -+ } -+ putc_buf_pos=0; -+ return 0; -+} -+ -+int -+ssl_putc(SSL *ssl_con,int oneint) -+{ -+ char onebyte; -+ -+ onebyte = oneint & 0xff; -+ -+ /* make sure there is space */ -+ if (putc_buf_pos>=BUFSIZ) -+ if (ssl_putc_flush(ssl_con)!=0) -+ return EOF; -+ putc_buf[putc_buf_pos++]=onebyte; -+ -+ return onebyte; -+} -+ -+#endif /* USE_SSL */ -diff -u -r -N netkit-ftp-0.17/ftp/ftp_var.h netkit-ftp-0.17+ssl-0.2/ftp/ftp_var.h ---- netkit-ftp-0.17/ftp/ftp_var.h Sat Oct 2 20:39:17 1999 -+++ netkit-ftp-0.17+ssl-0.2/ftp/ftp_var.h Sun Sep 24 15:48:48 2000 -@@ -158,3 +158,6 @@ - void setpeer(int argc, char *argv[]); - void quit(void); - void changetype(int newtype, int show); -+ -+#include "sslapp.h" -+#include "ssl_port.h" -diff -u -r -N netkit-ftp-0.17/ftp/main.c netkit-ftp-0.17+ssl-0.2/ftp/main.c ---- netkit-ftp-0.17/ftp/main.c Sat Oct 2 15:25:23 1999 -+++ netkit-ftp-0.17+ssl-0.2/ftp/main.c Thu May 3 20:42:41 2001 -@@ -1,3 +1,15 @@ -+/* -+ * The modifications to support SSLeay were done by Tim Hudson -+ * tjh@cryptsoft.com -+ * -+ * You can do whatever you like with these patches except pretend that -+ * you wrote them. -+ * -+ * Email ssl-users-request@lists.cryptsoft.com to get instructions on how to -+ * join the mailing list that discusses SSLeay and also these patches. -+ * -+ */ -+ - /* - * Copyright (c) 1985, 1989 Regents of the University of California. - * All rights reserved. -@@ -82,6 +94,75 @@ - static void cmdscanner(int top); - static char *slurpstring(void); - -+#ifdef USE_SSL -+ -+/* icky way of doing things ... */ -+#include "sslapp.c" -+ -+/* -+#include "ssl_err.h" -+*/ -+ -+SSL *ssl_con; -+SSL *ssl_data_con; -+int ssl_data_active_flag=0; -+ -+/* for the moment this is a compile time option only --tjh */ -+int ssl_encrypt_data=1; -+int ssl_enabled=1; -+ -+char *my_ssl_key_file=NULL; -+char *my_ssl_cert_file=NULL; -+ -+BIO *bio_err=NULL; -+ -+static long -+bio_dump_cb(BIO *bio, -+ int cmd, -+ char *argp, -+ int argi, -+ long argl, -+ long ret) -+ { -+ BIO *out; -+ -+/* -+ out=(BIO *)BIO_get_callback_arg(bio); -+*/ -+ out=bio_err; -+ if (out == NULL) return(ret); -+ -+ if (cmd == (BIO_CB_READ|BIO_CB_RETURN)) -+ { -+ BIO_printf(out,"read from %08X (%d bytes => %ld (%X))\n", -+ bio,argi,ret,ret); -+ BIO_dump(out,argp,(int)ret); -+ BIO_flush(out); -+ } -+ else if (cmd == (BIO_CB_WRITE|BIO_CB_RETURN)) -+ { -+ BIO_printf(out,"write to %08X (%d bytes => %ld (%X))\n", -+ bio,argi,ret,ret); -+ BIO_dump(out,argp,(int)ret); -+ BIO_flush(out); -+ } -+ return( (cmd & BIO_CB_RETURN) ? ret : 1); -+ } -+ -+int -+set_ssl_trace(SSL *con) -+{ -+ if (con!=NULL) { -+ if (ssl_debug_flag) { -+ BIO_set_callback(SSL_get_rbio(con),bio_dump_cb); -+ BIO_set_callback_arg(SSL_get_rbio(con),bio_err); -+ } -+ } -+ return 0; -+} -+ -+#endif /* USE_SSL */ -+ - static - void - usage(void) -@@ -106,6 +187,7 @@ - int top; - struct passwd *pw = NULL; - char homedir[MAXPATHLEN]; -+ char *optarg; - - tick = 0; - -@@ -134,6 +216,7 @@ - - argc--, argv++; - while (argc > 0 && **argv == '-') { -+ optarg=*(argv+1); - for (cp = *argv + 1; *cp; cp++) - switch (*cp) { - -@@ -174,6 +257,44 @@ - usage(); - exit(0); - -+#ifdef USE_SSL -+ case 'z': -+ if (strcmp(optarg, "debug") == 0 ) { -+ ssl_debug_flag=1; -+ } -+ if (strcmp(optarg, "ssl") == 0 ) { -+ ssl_only_flag=1; -+ } -+ /* disable *all* ssl stuff */ -+ if ( (strcmp(optarg, "!ssl") == 0 ) || -+ (strcmp(optarg, "nossl") == 0 ) ) { -+ ssl_enabled=0; -+ } -+ if (strcmp(optarg, "secure") == 0 ) { -+ ssl_secure_flag=1; -+ } -+ if (strcmp(optarg, "certsok") == 0 ) { -+ ssl_certsok_flag=1; -+ } -+ if (strcmp(optarg, "verbose") == 0 ) { -+ ssl_verbose_flag=1; -+ } -+ if (strncmp(optarg, "verify=", strlen("verify=")) == 0 ) { -+ ssl_verify_flag=atoi(optarg+strlen("verify=")); -+ } -+ if (strncmp(optarg, "cert=", strlen("cert=")) == 0 ) { -+ my_ssl_cert_file=optarg+strlen("cert="); -+ } -+ if (strncmp(optarg, "key=", strlen("key=")) == 0 ) { -+ my_ssl_key_file=optarg+strlen("key="); -+ } -+ -+ /* we have swallowed an extra arg */ -+ argc--; -+ argv++; -+ break; -+#endif /* USE_SSL */ -+ - default: - fprintf(stdout, - "ftp: %c: unknown option\n", *cp); -@@ -202,6 +323,18 @@ - homedir[sizeof(homedir)-1] = 0; - home = homedir; - } -+ -+#ifdef USE_SSL -+ if (ssl_enabled) { -+ if (!do_ssleay_init(0)) { -+ fprintf(stderr,"ftp: SSLeay initialisation failed\n"); -+ fflush(stderr); -+ ERR_print_errors_fp(stderr); -+ exit(1); -+ } -+ } -+#endif /* USE_SSL */ -+ - if (argc > 0) { - if (sigsetjmp(toplevel, 1)) - exit(0); -diff -u -r -N netkit-ftp-0.17/ftp/main.c.~1~ netkit-ftp-0.17+ssl-0.2/ftp/main.c.~1~ ---- netkit-ftp-0.17/ftp/main.c.~1~ Thu Jan 1 01:00:00 1970 -+++ netkit-ftp-0.17+ssl-0.2/ftp/main.c.~1~ Sun Sep 24 16:30:36 2000 -@@ -0,0 +1,735 @@ -+/* -+ * The modifications to support SSLeay were done by Tim Hudson -+ * tjh@cryptsoft.com -+ * -+ * You can do whatever you like with these patches except pretend that -+ * you wrote them. -+ * -+ * Email ssl-users-request@lists.cryptsoft.com to get instructions on how to -+ * join the mailing list that discusses SSLeay and also these patches. -+ * -+ */ -+ -+/* -+ * Copyright (c) 1985, 1989 Regents of the University of California. -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * 3. All advertising materials mentioning features or use of this software -+ * must display the following acknowledgement: -+ * This product includes software developed by the University of -+ * California, Berkeley and its contributors. -+ * 4. Neither the name of the University nor the names of its contributors -+ * may be used to endorse or promote products derived from this software -+ * without specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+char copyright[] = -+ "@(#) Copyright (c) 1985, 1989 Regents of the University of California.\n" -+ "All rights reserved.\n"; -+ -+/* -+ * from: @(#)main.c 5.18 (Berkeley) 3/1/91 -+ */ -+char main_rcsid[] = -+ "$Id: netkit-ftp-0.17+ssl-0.2.diff,v 1.2 2005/07/29 01:38:43 vapier Exp $"; -+ -+ -+/* -+ * FTP User Program -- Command Interface. -+ */ -+#include <sys/types.h> -+#include <sys/socket.h> -+#include <sys/ioctl.h> -+ -+/* #include <arpa/ftp.h> <--- unused? */ -+ -+#include <signal.h> -+#include <unistd.h> -+#include <string.h> -+#include <stdlib.h> -+#include <stdio.h> -+#include <errno.h> -+#include <ctype.h> -+#include <netdb.h> -+#include <pwd.h> -+#ifdef __USE_READLINE__ -+#include <readline/readline.h> -+#include <readline/history.h> -+#endif -+ -+#define Extern -+#include "ftp_var.h" -+int traceflag = 0; -+const char *home = "/"; -+ -+extern FILE *cout; -+extern int data; -+extern struct cmd cmdtab[]; -+extern int NCMDS; -+ -+void intr(int); -+void lostpeer(int); -+void help(int argc, char *argv[]); -+ -+static void cmdscanner(int top); -+static char *slurpstring(void); -+ -+#ifdef USE_SSL -+ -+/* icky way of doing things ... */ -+#include "sslapp.c" -+ -+/* -+#include "ssl_err.h" -+*/ -+ -+SSL *ssl_con; -+SSL *ssl_data_con; -+int ssl_data_active_flag=0; -+ -+/* for the moment this is a compile time option only --tjh */ -+int ssl_encrypt_data=1; -+int ssl_enabled=1; -+ -+char *my_ssl_key_file=NULL; -+char *my_ssl_cert_file=NULL; -+ -+BIO *bio_err=NULL; -+ -+static long -+bio_dump_cb(BIO *bio, -+ int cmd, -+ char *argp, -+ int argi, -+ long argl, -+ long ret) -+ { -+ BIO *out; -+ -+/* -+ out=(BIO *)BIO_get_callback_arg(bio); -+*/ -+ out=bio_err; -+ if (out == NULL) return(ret); -+ -+ if (cmd == (BIO_CB_READ|BIO_CB_RETURN)) -+ { -+ BIO_printf(out,"read from %08X (%d bytes => %ld (%X))\n", -+ bio,argi,ret,ret); -+ BIO_dump(out,argp,(int)ret); -+ BIO_flush(out); -+ } -+ else if (cmd == (BIO_CB_WRITE|BIO_CB_RETURN)) -+ { -+ BIO_printf(out,"write to %08X (%d bytes => %ld (%X))\n", -+ bio,argi,ret,ret); -+ BIO_dump(out,argp,(int)ret); -+ BIO_flush(out); -+ } -+ return( (cmd & BIO_CB_RETURN) ? ret : 1); -+ } -+ -+int -+set_ssl_trace(SSL *con) -+{ -+ if (con!=NULL) { -+ if (ssl_debug_flag) { -+ BIO_set_callback(SSL_get_rbio(con),bio_dump_cb); -+ BIO_set_callback_arg(SSL_get_rbio(con),bio_err); -+ } -+ } -+ return 0; -+} -+ -+#endif /* USE_SSL */ -+ -+static -+void -+usage(void) -+{ -+ printf("\n\tUsage: { ftp | pftp } [-pinegvtd] [hostname]\n"); -+ printf("\t -p: enable passive mode (default for pftp)\n"); -+ printf("\t -i: turn off prompting during mget\n"); -+ printf("\t -n: inhibit auto-login\n"); -+ printf("\t -e: disable readline support, if present\n"); -+ printf("\t -g: disable filename globbing\n"); -+ printf("\t -v: verbose mode\n"); -+ printf("\t -t: enable packet tracing [nonfunctional]\n"); -+ printf("\t -d: enable debugging\n"); -+ printf("\n"); -+} -+ -+int -+main(volatile int argc, char **volatile argv) -+{ -+ register char *cp; -+ struct servent *sp; -+ int top; -+ struct passwd *pw = NULL; -+ char homedir[MAXPATHLEN]; -+ -+ tick = 0; -+ -+ sp = getservbyname("ftp", "tcp"); -+ if (sp == 0) { -+ fprintf(stderr, "ftp: ftp/tcp: unknown service\n"); -+ exit(1); -+ } -+ ftp_port = sp->s_port; -+ doglob = 1; -+ interactive = 1; -+ autologin = 1; -+ passivemode = 0; -+ -+ cp = strrchr(argv[0], '/'); -+ cp = (cp == NULL) ? argv[0] : cp+1; -+ if (strcmp(cp, "pftp") == 0) -+ passivemode = 1; -+ -+#ifdef __USE_READLINE__ -+ /* -+ * Set terminal type so libreadline can parse .inputrc correctly -+ */ -+ rl_terminal_name = getenv("TERM"); -+#endif -+ -+ argc--, argv++; -+ while (argc > 0 && **argv == '-') { -+ for (cp = *argv + 1; *cp; cp++) -+ switch (*cp) { -+ -+ case 'd': -+ options |= SO_DEBUG; -+ debug++; -+ break; -+ -+ case 'v': -+ verbose++; -+ break; -+ -+ case 't': -+ traceflag++; -+ break; -+ -+ case 'i': -+ interactive = 0; -+ break; -+ -+ case 'n': -+ autologin = 0; -+ break; -+ -+ case 'p': -+ passivemode = 1; -+ break; -+ -+ case 'g': -+ doglob = 0; -+ break; -+ -+ case 'e': -+ rl_inhibit = 1; -+ break; -+ -+ case 'h': -+ usage(); -+ exit(0); -+ -+#ifdef USE_SSL -+ case 'z': -+ if (strcmp(optarg, "debug") == 0 ) { -+ ssl_debug_flag=1; -+ } -+ if (strcmp(optarg, "ssl") == 0 ) { -+ ssl_only_flag=1; -+ } -+ /* disable *all* ssl stuff */ -+ if ( (strcmp(optarg, "!ssl") == 0 ) || -+ (strcmp(optarg, "nossl") == 0 ) ) { -+ ssl_enabled=0; -+ } -+ if (strcmp(optarg, "secure") == 0 ) { -+ ssl_secure_flag=1; -+ } -+ if (strcmp(optarg, "certsok") == 0 ) { -+ ssl_certsok_flag=1; -+ } -+ if (strcmp(optarg, "verbose") == 0 ) { -+ ssl_verbose_flag=1; -+ } -+ if (strncmp(optarg, "verify=", strlen("verify=")) == 0 ) { -+ ssl_verify_flag=atoi(optarg+strlen("verify=")); -+ } -+ if (strncmp(optarg, "cert=", strlen("cert=")) == 0 ) { -+ my_ssl_cert_file=optarg+strlen("cert="); -+ } -+ if (strncmp(optarg, "key=", strlen("key=")) == 0 ) { -+ my_ssl_key_file=optarg+strlen("key="); -+ } -+ -+ /* we have swallowed an extra arg */ -+ argc--; -+ argv++; -+ break; -+#endif /* USE_SSL */ -+ -+ default: -+ fprintf(stdout, -+ "ftp: %c: unknown option\n", *cp); -+ exit(1); -+ } -+ argc--, argv++; -+ } -+ fromatty = isatty(fileno(stdin)); -+ if (fromatty) -+ verbose++; -+ cpend = 0; /* no pending replies */ -+ proxy = 0; /* proxy not active */ -+ crflag = 1; /* strip c.r. on ascii gets */ -+ sendport = -1; /* not using ports */ -+ /* -+ * Set up the home directory in case we're globbing. -+ */ -+ cp = getlogin(); -+ if (cp != NULL) { -+ pw = getpwnam(cp); -+ } -+ if (pw == NULL) -+ pw = getpwuid(getuid()); -+ if (pw != NULL) { -+ strncpy(homedir, pw->pw_dir, sizeof(homedir)); -+ homedir[sizeof(homedir)-1] = 0; -+ home = homedir; -+ } -+ -+#ifdef USE_SSL -+ if (ssl_enabled) { -+ if (!do_ssleay_init(0)) { -+ fprintf(stderr,"ftp: SSLeay initialisation failed\n"); -+ fflush(stderr); -+ ERR_print_errors_fp(stderr); -+ exit(1); -+ } -+ } -+#endif /* USE_SSL */ -+ -+ if (argc > 0) { -+ if (sigsetjmp(toplevel, 1)) -+ exit(0); -+ (void) signal(SIGINT, intr); -+ (void) signal(SIGPIPE, lostpeer); -+ setpeer(argc + 1, argv - 1); -+ } -+ top = sigsetjmp(toplevel, 1) == 0; -+ if (top) { -+ (void) signal(SIGINT, intr); -+ (void) signal(SIGPIPE, lostpeer); -+ } -+ for (;;) { -+ cmdscanner(top); -+ top = 1; -+ } -+} -+ -+void -+intr(int ignore) -+{ -+ (void)ignore; -+ siglongjmp(toplevel, 1); -+} -+ -+void -+lostpeer(int ignore) -+{ -+ (void)ignore; -+ -+ if (connected) { -+ if (cout != NULL) { -+ shutdown(fileno(cout), 1+1); -+ fclose(cout); -+ cout = NULL; -+ } -+ if (data >= 0) { -+ shutdown(data, 1+1); -+ close(data); -+ data = -1; -+ } -+ connected = 0; -+ } -+ pswitch(1); -+ if (connected) { -+ if (cout != NULL) { -+ shutdown(fileno(cout), 1+1); -+ fclose(cout); -+ cout = NULL; -+ } -+ connected = 0; -+ } -+ proxflag = 0; -+ pswitch(0); -+} -+ -+/*char * -+tail(filename) -+ char *filename; -+{ -+ register char *s; -+ -+ while (*filename) { -+ s = rindex(filename, '/'); -+ if (s == NULL) -+ break; -+ if (s[1]) -+ return (s + 1); -+ *s = '\0'; -+ } -+ return (filename); -+} -+*/ -+ -+static char *get_input_line(char *buf, int buflen) -+{ -+#ifdef __USE_READLINE__ -+ if (fromatty && !rl_inhibit) { -+ char *lineread = readline("ftp> "); -+ if (!lineread) return NULL; -+ strncpy(buf, lineread, buflen); -+ buf[buflen-1] = 0; -+ if (lineread[0]) add_history(lineread); -+ free(lineread); -+ return buf; -+ } -+#endif -+ if (fromatty) { -+ printf("ftp> "); -+ fflush(stdout); -+ } -+ return fgets(buf, buflen, stdin); -+} -+ -+ -+/* -+ * Command parser. -+ */ -+static void -+cmdscanner(int top) -+{ -+ int margc; -+ char *marg; -+ char **margv; -+ register struct cmd *c; -+ register int l; -+ -+ if (!top) -+ (void) putchar('\n'); -+ for (;;) { -+ if (!get_input_line(line, sizeof(line))) { -+ quit(); -+ } -+ l = strlen(line); -+ if (l == 0) -+ break; -+ if (line[--l] == '\n') { -+ if (l == 0) -+ break; -+ line[l] = '\0'; -+ } -+ else if (l == sizeof(line) - 2) { -+ printf("sorry, input line too long\n"); -+ while ((l = getchar()) != '\n' && l != EOF) -+ /* void */; -+ break; -+ } /* else it was a line without a newline */ -+ margv = makeargv(&margc, &marg); -+ if (margc == 0) { -+ continue; -+ } -+ c = getcmd(margv[0]); -+ if (c == (struct cmd *)-1) { -+ printf("?Ambiguous command\n"); -+ continue; -+ } -+ if (c == NULL) { -+ printf("?Invalid command\n"); -+ continue; -+ } -+ if (c->c_conn && !connected) { -+ printf("Not connected.\n"); -+ continue; -+ } -+ if (c->c_handler_v) c->c_handler_v(margc, margv); -+ else if (c->c_handler_0) c->c_handler_0(); -+ else c->c_handler_1(marg); -+ -+ if (bell && c->c_bell) putchar('\007'); -+ if (c->c_handler_v != help) -+ break; -+ } -+ (void) signal(SIGINT, intr); -+ (void) signal(SIGPIPE, lostpeer); -+} -+ -+struct cmd * -+getcmd(const char *name) -+{ -+ const char *p, *q; -+ struct cmd *c, *found; -+ int nmatches, longest; -+ -+ longest = 0; -+ nmatches = 0; -+ found = 0; -+ for (c = cmdtab; (p = c->c_name) != NULL; c++) { -+ for (q = name; *q == *p++; q++) -+ if (*q == 0) /* exact match? */ -+ return (c); -+ if (!*q) { /* the name was a prefix */ -+ if (q - name > longest) { -+ longest = q - name; -+ nmatches = 1; -+ found = c; -+ } else if (q - name == longest) -+ nmatches++; -+ } -+ } -+ if (nmatches > 1) -+ return ((struct cmd *)-1); -+ return (found); -+} -+ -+/* -+ * Slice a string up into argc/argv. -+ */ -+ -+int slrflag; -+ -+char ** -+makeargv(int *pargc, char **parg) -+{ -+ static char *rargv[20]; -+ int rargc = 0; -+ char **argp; -+ -+ argp = rargv; -+ stringbase = line; /* scan from first of buffer */ -+ argbase = argbuf; /* store from first of buffer */ -+ slrflag = 0; -+ while ((*argp++ = slurpstring())!=NULL) -+ rargc++; -+ -+ *pargc = rargc; -+ if (parg) *parg = altarg; -+ return rargv; -+} -+ -+/* -+ * Parse string into argbuf; -+ * implemented with FSM to -+ * handle quoting and strings -+ */ -+static -+char * -+slurpstring(void) -+{ -+ static char excl[] = "!", dols[] = "$"; -+ -+ int got_one = 0; -+ register char *sb = stringbase; -+ register char *ap = argbase; -+ char *tmp = argbase; /* will return this if token found */ -+ -+ if (*sb == '!' || *sb == '$') { /* recognize ! as a token for shell */ -+ switch (slrflag) { /* and $ as token for macro invoke */ -+ case 0: -+ slrflag++; -+ stringbase++; -+ return ((*sb == '!') ? excl : dols); -+ /* NOTREACHED */ -+ case 1: -+ slrflag++; -+ altarg = stringbase; -+ break; -+ default: -+ break; -+ } -+ } -+ -+S0: -+ switch (*sb) { -+ -+ case '\0': -+ goto OUT; -+ -+ case ' ': -+ case '\t': -+ sb++; goto S0; -+ -+ default: -+ switch (slrflag) { -+ case 0: -+ slrflag++; -+ break; -+ case 1: -+ slrflag++; -+ altarg = sb; -+ break; -+ default: -+ break; -+ } -+ goto S1; -+ } -+ -+S1: -+ switch (*sb) { -+ -+ case ' ': -+ case '\t': -+ case '\0': -+ goto OUT; /* end of token */ -+ -+ case '\\': -+ sb++; goto S2; /* slurp next character */ -+ -+ case '"': -+ sb++; goto S3; /* slurp quoted string */ -+ -+ default: -+ *ap++ = *sb++; /* add character to token */ -+ got_one = 1; -+ goto S1; -+ } -+ -+S2: -+ switch (*sb) { -+ -+ case '\0': -+ goto OUT; -+ -+ default: -+ *ap++ = *sb++; -+ got_one = 1; -+ goto S1; -+ } -+ -+S3: -+ switch (*sb) { -+ -+ case '\0': -+ goto OUT; -+ -+ case '"': -+ sb++; goto S1; -+ -+ default: -+ *ap++ = *sb++; -+ got_one = 1; -+ goto S3; -+ } -+ -+OUT: -+ if (got_one) -+ *ap++ = '\0'; -+ argbase = ap; /* update storage pointer */ -+ stringbase = sb; /* update scan pointer */ -+ if (got_one) { -+ return(tmp); -+ } -+ switch (slrflag) { -+ case 0: -+ slrflag++; -+ break; -+ case 1: -+ slrflag++; -+ altarg = NULL; -+ break; -+ default: -+ break; -+ } -+ return NULL; -+} -+ -+#define HELPINDENT ((int) sizeof ("directory")) -+ -+/* -+ * Help command. -+ * Call each command handler with argc == 0 and argv[0] == name. -+ */ -+void -+help(int argc, char *argv[]) -+{ -+ struct cmd *c; -+ -+ if (argc == 1) { -+ int i, j, w; -+ unsigned k; -+ int columns, width = 0, lines; -+ -+ printf("Commands may be abbreviated. Commands are:\n\n"); -+ for (c = cmdtab; c < &cmdtab[NCMDS]; c++) { -+ int len = strlen(c->c_name); -+ -+ if (len > width) -+ width = len; -+ } -+ width = (width + 8) &~ 7; -+ columns = 80 / width; -+ if (columns == 0) -+ columns = 1; -+ lines = (NCMDS + columns - 1) / columns; -+ for (i = 0; i < lines; i++) { -+ for (j = 0; j < columns; j++) { -+ c = cmdtab + j * lines + i; -+ if (c->c_name && (!proxy || c->c_proxy)) { -+ printf("%s", c->c_name); -+ } -+ else if (c->c_name) { -+ for (k=0; k < strlen(c->c_name); k++) { -+ (void) putchar(' '); -+ } -+ } -+ if (c + lines >= &cmdtab[NCMDS]) { -+ printf("\n"); -+ break; -+ } -+ w = strlen(c->c_name); -+ while (w < width) { -+ w = (w + 8) &~ 7; -+ (void) putchar('\t'); -+ } -+ } -+ } -+ return; -+ } -+ while (--argc > 0) { -+ register char *arg; -+ arg = *++argv; -+ c = getcmd(arg); -+ if (c == (struct cmd *)-1) -+ printf("?Ambiguous help command %s\n", arg); -+ else if (c == NULL) -+ printf("?Invalid help command %s\n", arg); -+ else -+ printf("%-*s\t%s\n", HELPINDENT, -+ c->c_name, c->c_help); -+ } -+} -diff -u -r -N netkit-ftp-0.17/ftp/ssl_port.h netkit-ftp-0.17+ssl-0.2/ftp/ssl_port.h ---- netkit-ftp-0.17/ftp/ssl_port.h Thu Jan 1 01:00:00 1970 -+++ netkit-ftp-0.17+ssl-0.2/ftp/ssl_port.h Sun Sep 24 15:46:02 2000 -@@ -0,0 +1,85 @@ -+/* ssl_port.h - standard porting things -+ * -+ * The modifications to support SSLeay were done by Tim Hudson -+ * tjh@mincom.oz.au -+ * -+ * You can do whatever you like with these patches except pretend that -+ * you wrote them. -+ * -+ * Email ssl-users-request@mincom.oz.au to get instructions on how to -+ * join the mailing list that discusses SSLeay and also these patches. -+ * -+ */ -+ -+#ifndef HEADER_SSL_PORT_H -+#define HEADER_SSL_PORT_H -+ -+#ifdef USE_SSL -+ -+#include <stdio.h> -+ -+#define OLDPROTO NOPROTO -+#define NOPROTO -+#include <openssl/buffer.h> -+#undef NOPROTO -+#define NOPROTO OLDPROTO -+ -+#include <openssl/x509.h> -+#include <openssl/ssl.h> -+#include <openssl/err.h> -+ -+extern SSL *ssl_con; -+extern SSL_CTX *ssl_ctx; -+extern int ssl_debug_flag; -+extern int ssl_only_flag; -+extern int ssl_active_flag; -+extern int ssl_verify_flag; -+extern int ssl_secure_flag; -+extern int ssl_enabled; -+ -+extern int ssl_encrypt_data; -+extern SSL *ssl_data_con; -+extern int ssl_data_active_flag; -+ -+extern char *my_ssl_cert_file; -+extern char *my_ssl_key_file; -+extern int ssl_certsok_flag; -+ -+extern int set_ssl_trace(SSL *s); -+ -+extern FILE *cin, *cout; -+ -+#define is_ssl_fd(X,Y) ( (SSL_get_fd((X))==0) || \ -+ (SSL_get_fd((X))==1) || \ -+ (SSL_get_fd((X))==pdata) || \ -+ (SSL_get_fd((X))==(Y)) \ -+ ) -+ -+#define is_ssl_fp(X,Y) ( ( (SSL_get_fd((X))==0) && (fileno((Y))==0) ) || \ -+ ( (SSL_get_fd((X))==1) && (fileno((Y))==1) ) || \ -+ ( (SSL_get_fd((X))==pdata) && \ -+ (fileno((Y))==pdata) ) || \ -+ (SSL_get_fd((X))==fileno(Y)) \ -+ ) -+ -+/* these macros make things much easier to handle ... */ -+ -+#define FFLUSH(X) (ssl_active_flag && (((X)==cin)||((X)==cout)) ? 1 : fflush((X)) ) -+ -+#define GETC(X) (ssl_active_flag && (((X)==cin)||((X)==cout)) ? ssl_getc(ssl_con) : getc((X)) ) -+ -+#define DATAGETC(X) (ssl_data_active_flag && ((fileno(X)==data)||(fileno(X)==pdata)) ? ssl_getc(ssl_data_con) : getc((X)) ) -+#define DATAPUTC(X,Y) (ssl_data_active_flag && ((fileno(Y)==data)||(fileno(Y)==pdata)) ? ssl_putc(ssl_data_con,(X)) : putc((X),(Y)) ) -+#define DATAFLUSH(X) (ssl_data_active_flag && ((fileno(X)==data)||(fileno(X)==pdata)) ? ssl_putc_flush(ssl_data_con) : fflush((X)) ) -+ -+#else -+ -+#define GETC(X) getc((X)) -+#define DATAGETC(X) getc((X)) -+#define DATAPUTC(X,Y) putc((X),(Y)) -+#define DATAFLUSH(X) fflush((X)) -+#define FFLUSH(X) fflush((X)) -+ -+#endif /* USE_SSL */ -+ -+#endif /* HEADER_SSL_PORT_H */ -diff -u -r -N netkit-ftp-0.17/ftp/sslapp.c netkit-ftp-0.17+ssl-0.2/ftp/sslapp.c ---- netkit-ftp-0.17/ftp/sslapp.c Thu Jan 1 01:00:00 1970 -+++ netkit-ftp-0.17+ssl-0.2/ftp/sslapp.c Sun Sep 24 18:07:23 2000 -@@ -0,0 +1,186 @@ -+/* sslapp.c - ssl application code */ -+ -+/* -+ * The modifications to support SSLeay were done by Tim Hudson -+ * tjh@cryptsoft.com -+ * -+ * You can do whatever you like with these patches except pretend that -+ * you wrote them. -+ * -+ * Email ssl-users-request@lists.cryptsoft.com to get instructions on how to -+ * join the mailing list that discusses SSLeay and also these patches. -+ * -+ */ -+ -+#ifdef USE_SSL -+ -+#include "sslapp.h" -+ -+SSL_CTX *ssl_ctx; -+SSL *ssl_con; -+int ssl_debug_flag=0; -+int ssl_only_flag=0; -+int ssl_active_flag=0; -+int ssl_verify_flag=SSL_VERIFY_NONE; -+int ssl_secure_flag=0; -+int ssl_certsok_flag=0; -+int ssl_cert_required=0; -+int ssl_verbose_flag=0; -+int ssl_disabled_flag=0; -+char *ssl_cert_file=NULL; -+char *ssl_key_file=NULL; -+char *ssl_cipher_list=NULL; -+char *ssl_log_file=NULL; -+ -+/* fwd decl */ -+static void -+client_info_callback(SSL *s, int where, int ret); -+ -+int -+do_ssleay_init(int server) -+{ -+ char *p; -+ -+ /* make sure we have somewhere we can log errors to */ -+ if (bio_err==NULL) { -+ if ((bio_err=BIO_new(BIO_s_file()))!=NULL) { -+ if (ssl_log_file==NULL) -+ BIO_set_fp(bio_err,stderr,BIO_NOCLOSE); -+ else { -+ if (BIO_write_filename(bio_err,ssl_log_file)<=0) { -+ /* not a lot we can do */ -+ } -+ } -+ } -+ } -+ -+ /* rather simple things these days ... the old SSL_LOG and SSL_ERR -+ * vars are long gone now SSLeay8 has rolled around and we have -+ * a clean interface for doing things -+ */ -+ if (ssl_debug_flag) -+ BIO_printf(bio_err,"SSL_DEBUG_FLAG on\r\n"); -+ -+ -+ /* init things so we will get meaningful error messages -+ * rather than numbers -+ */ -+ SSL_load_error_strings(); -+ -+ SSLeay_add_ssl_algorithms(); -+ ssl_ctx=(SSL_CTX *)SSL_CTX_new(SSLv23_method()); -+ -+ /* we may require a temp 512 bit RSA key because of the -+ * wonderful way export things work ... if so we generate -+ * one now! -+ */ -+ if (server) { -+ if (SSL_CTX_need_tmp_RSA(ssl_ctx)) { -+ RSA *rsa; -+ -+ if (ssl_debug_flag) -+ BIO_printf(bio_err,"Generating temp (512 bit) RSA key ...\r\n"); -+ rsa=RSA_generate_key(512,RSA_F4,NULL,NULL); -+ if (ssl_debug_flag) -+ BIO_printf(bio_err,"Generation of temp (512 bit) RSA key done\r\n"); -+ -+ if (!SSL_CTX_set_tmp_rsa(ssl_ctx,rsa)) { -+ BIO_printf(bio_err,"Failed to assign generated temp RSA key!\r\n"); -+ } -+ RSA_free(rsa); -+ if (ssl_debug_flag) -+ BIO_printf(bio_err,"Assigned temp (512 bit) RSA key\r\n"); -+ } -+ } -+ -+ /* also switch on all the interoperability and bug -+ * workarounds so that we will communicate with people -+ * that cannot read poorly written specs :-) -+ */ -+ SSL_CTX_set_options(ssl_ctx,SSL_OP_ALL); -+ -+ /* the user can set whatever ciphers they want to use */ -+ if (ssl_cipher_list==NULL) { -+ p=getenv("SSL_CIPHER"); -+ if (p!=NULL) -+ SSL_CTX_set_cipher_list(ssl_ctx,p); -+ } else -+ SSL_CTX_set_cipher_list(ssl_ctx,ssl_cipher_list); -+ -+ /* for verbose we use the 0.6.x info callback that I got -+ * eric to finally add into the code :-) --tjh -+ */ -+ if (ssl_verbose_flag) { -+ SSL_CTX_set_info_callback(ssl_ctx,client_info_callback); -+ } -+ -+ /* Add in any certificates if you want to here ... */ -+ if (ssl_cert_file) { -+ if (!SSL_CTX_use_certificate_file(ssl_ctx, ssl_cert_file, -+ X509_FILETYPE_PEM)) { -+ BIO_printf(bio_err,"Error loading %s: ",ssl_cert_file); -+ ERR_print_errors(bio_err); -+ BIO_printf(bio_err,"\r\n"); -+ return(0); -+ } else { -+ if (!ssl_key_file) -+ ssl_key_file = ssl_cert_file; -+ if (!SSL_CTX_use_RSAPrivateKey_file(ssl_ctx, ssl_key_file, -+ X509_FILETYPE_PEM)) { -+ BIO_printf(bio_err,"Error loading %s: ",ssl_key_file); -+ ERR_print_errors(bio_err); -+ BIO_printf(bio_err,"\r\n"); -+ return(0); -+ } -+ } -+ } -+ -+ /* make sure we will find certificates in the standard -+ * location ... otherwise we don't look anywhere for -+ * these things which is going to make client certificate -+ * exchange rather useless :-) -+ */ -+ SSL_CTX_set_default_verify_paths(ssl_ctx); -+ -+ /* now create a connection */ -+ ssl_con=(SSL *)SSL_new(ssl_ctx); -+ SSL_set_verify(ssl_con,ssl_verify_flag,NULL); -+ -+#if 0 -+ SSL_set_verify(ssl_con,ssl_verify_flag,client_verify_callback); -+#endif -+ -+ return(1); -+} -+ -+ -+static void -+client_info_callback(SSL *s, int where, int ret) -+{ -+ if (where==SSL_CB_CONNECT_LOOP) { -+ BIO_printf(bio_err,"SSL_connect:%s %s\r\n", -+ SSL_state_string(s),SSL_state_string_long(s)); -+ } else if (where==SSL_CB_CONNECT_EXIT) { -+ if (ret == 0) { -+ BIO_printf(bio_err,"SSL_connect:failed in %s %s\r\n", -+ SSL_state_string(s),SSL_state_string_long(s)); -+ } else if (ret < 0) { -+ BIO_printf(bio_err,"SSL_connect:error in %s %s\r\n", -+ SSL_state_string(s),SSL_state_string_long(s)); -+ } -+ } -+} -+ -+ -+#else /* !USE_SSL */ -+ -+/* something here to stop warnings if we build without SSL support */ -+static int dummy_func() -+{ -+ int i; -+ -+ i++; -+} -+ -+#endif /* USE_SSL */ -+ -diff -u -r -N netkit-ftp-0.17/ftp/sslapp.h netkit-ftp-0.17+ssl-0.2/ftp/sslapp.h ---- netkit-ftp-0.17/ftp/sslapp.h Thu Jan 1 01:00:00 1970 -+++ netkit-ftp-0.17+ssl-0.2/ftp/sslapp.h Sun Sep 24 18:07:48 2000 -@@ -0,0 +1,63 @@ -+/* sslapp.h - ssl application code */ -+ -+/* -+ * The modifications to support SSLeay were done by Tim Hudson -+ * tjh@cryptsoft.com -+ * -+ * You can do whatever you like with these patches except pretend that -+ * you wrote them. -+ * -+ * Email ssl-users-request@mincom.oz.au to get instructions on how to -+ * join the mailing list that discusses SSLeay and also these patches. -+ * -+ */ -+ -+#ifdef USE_SSL -+ -+#include <stdio.h> -+ -+#include <openssl/crypto.h> -+ -+#define SSL_set_pref_cipher(c,n) SSL_set_cipher_list(c,n) -+#define ONELINE_NAME(X) X509_NAME_oneline(X,NULL,0) -+ -+#define OLDPROTO NOPROTO -+#define NOPROTO -+#include <openssl/bio.h> -+#undef NOPROTO -+#define NOPROTO OLDPROTO -+#undef OLDPROTO -+#include <openssl/buffer.h> -+ -+#include <openssl/x509.h> -+#include <openssl/ssl.h> -+#include <openssl/err.h> -+ -+extern BIO *bio_err; -+extern SSL *ssl_con; -+extern SSL_CTX *ssl_ctx; -+extern int ssl_debug_flag; -+extern int ssl_only_flag; -+extern int ssl_active_flag; -+extern int ssl_verify_flag; -+extern int ssl_secure_flag; -+extern int ssl_verbose_flag; -+extern int ssl_disabled_flag; -+extern int ssl_cert_required; -+extern int ssl_certsok_flag; -+ -+extern char *ssl_log_file; -+extern char *ssl_cert_file; -+extern char *ssl_key_file; -+extern char *ssl_cipher_list; -+ -+/* we hide all the initialisation code in a separate file now */ -+extern int do_ssleay_init(int server); -+ -+/*extern int display_connect_details(); -+extern int server_verify_callback(); -+extern int client_verify_callback();*/ -+ -+#endif /* USE_SSL */ -+ -+ diff --git a/net-ftp/ftp/ftp-0.17-r3.ebuild b/net-ftp/ftp/ftp-0.17-r3.ebuild deleted file mode 100644 index 1b9ef2fa0b15..000000000000 --- a/net-ftp/ftp/ftp-0.17-r3.ebuild +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-ftp/ftp/ftp-0.17-r3.ebuild,v 1.15 2005/02/12 00:18:41 vapier Exp $ - -inherit eutils - -MY_P=netkit-${P} -S=${WORKDIR}/${MY_P} -DESCRIPTION="Standard Linux FTP client with optional SSL support" -HOMEPAGE="http://www.hcs.harvard.edu/~dholland/computers/netkit.html" -SRC_URI="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/${MY_P}.tar.gz" - -LICENSE="as-is" -SLOT="0" -KEYWORDS="x86 ppc sparc mips alpha arm hppa amd64 ia64 ppc64" -IUSE="ssl" - -RDEPEND=">=sys-libs/ncurses-5.2 - ssl? ( dev-libs/openssl )" -DEPEND="${RDEPEND} - >=sys-apps/sed-4" - -src_unpack() { - unpack ${A} - cd ${S} - - use ssl \ - && epatch ${FILESDIR}/${MY_P}+ssl-0.2.diff \ - && epatch ${FILESDIR}/${MY_P}+ssl-0.2+auth.diff -} - -src_compile() { - ./configure --prefix=/usr || die - sed -i "s:-pipe -O2:${CFLAGS}:" MCONFIG - emake || die -} - -src_install() { - dobin ftp/ftp || die - doman ftp/ftp.1 ftp/netrc.5 - dodoc ChangeLog README BUGS -} diff --git a/net-ftp/ftp/ftp-0.17-r5.ebuild b/net-ftp/ftp/ftp-0.17-r5.ebuild deleted file mode 100644 index 5d595b09a5ae..000000000000 --- a/net-ftp/ftp/ftp-0.17-r5.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-ftp/ftp/ftp-0.17-r5.ebuild,v 1.2 2005/08/03 23:30:21 vapier Exp $ - -inherit eutils toolchain-funcs flag-o-matic - -MY_P=netkit-${P} -S=${WORKDIR}/${MY_P} -DESCRIPTION="Standard Linux FTP client" -HOMEPAGE="http://www.hcs.harvard.edu/~dholland/computers/netkit.html" -SRC_URI="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/${MY_P}.tar.gz" - -LICENSE="as-is" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="ssl ipv6" - -RDEPEND=">=sys-libs/ncurses-5.2 - ssl? ( dev-libs/openssl )" -DEPEND="${RDEPEND} - >=sys-apps/sed-4" - -src_unpack() { - unpack ${A} - cd "${S}" - epatch "${FILESDIR}"/${MY_P}-ssl-0.2.patch - epatch "${FILESDIR}"/${MY_P}-ipv6.patch #47507 - epatch "${FILESDIR}"/${MY_P}-acct.patch #fedora - epatch "${FILESDIR}"/${MY_P}-locale.patch #fedora - epatch "${FILESDIR}"/${MY_P}-runique_mget.patch #fedora - epatch "${FILESDIR}"/${MY_P}-security.patch #fedora - epatch "${FILESDIR}"/${MY_P}-custom-cflags.patch - append-lfs-flags #101038 -} - -src_compile() { - ./configure \ - --prefix=/usr \ - $(use_enable ssl) \ - $(use_enable ipv6) \ - ${EXTRA_ECONF} \ - || die "configure failed" - emake CC="$(tc-getCC)" || die "make failed" -} - -src_install() { - dobin ftp/ftp || die - doman ftp/ftp.1 ftp/netrc.5 - dodoc ChangeLog README BUGS -} |