old
authorMike Frysinger <vapier@gentoo.org>
Sat, 11 Mar 2006 03:26:56 +0000 (03:26 +0000)
committerMike Frysinger <vapier@gentoo.org>
Sat, 11 Mar 2006 03:26:56 +0000 (03:26 +0000)
Package-Manager: portage-2.1_pre5-r4

net-ftp/ftp/Manifest
net-ftp/ftp/files/digest-ftp-0.17-r3 [deleted file]
net-ftp/ftp/files/digest-ftp-0.17-r5 [deleted file]
net-ftp/ftp/files/netkit-ftp-0.17+ssl-0.2+auth.diff [deleted file]
net-ftp/ftp/files/netkit-ftp-0.17+ssl-0.2.diff [deleted file]
net-ftp/ftp/ftp-0.17-r3.ebuild [deleted file]
net-ftp/ftp/ftp-0.17-r5.ebuild [deleted file]

index 582f7dbe73f38110abc6a5eeca9e8c651e8c31fb..9176d82f974a7c014dba55d454062ebc89fb7d55 100644 (file)
@@ -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 (file)
index d98bdd2..0000000
+++ /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 (file)
index d98bdd2..0000000
+++ /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 (file)
index 8bbf23a..0000000
+++ /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 (file)
index 33fd798..0000000
+++ /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 (file)
index 1b9ef2f..0000000
+++ /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 (file)
index 5d595b0..0000000
+++ /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
-}