--- netkit-ftp-0.17/ftp/ftp.c.multiipv6 2006-08-02 15:03:26.000000000 +0200
netkit-ftp-0.17/ftp/ftp.c 2006-08-02 15:06:19.000000000 +0200 @@ -78,9 +78,7 @@ #include <netinet/in.h> #include <netinet/ip.h> #include <arpa/ftp.h> -#include <arpa/inet.h> #include <arpa/telnet.h> - #include <stdio.h> #include <signal.h> #include <string.h> @@ -132,7 +130,7 @@ static sigjmp_buf ptabort; static int ptabflg = 0; static int abrtflag = 0; -struct sockaddr_in source; struct sockaddr_storage source; void lostpeer(int); extern int connected; @@ -154,8 +152,8 @@ char * hookup(const char *host, const char *port) { - int s, tos, error, alen; - socklen_t len; int s, tos, error; socklen_t len, alen; static char hostnamebuf[256]; struct addrinfo hints, *res, *res0; char hbuf[MAXHOSTNAMELEN], pbuf[NI_MAXSERV]; @@ -281,7 +279,15 @@ printf("Connected to %s (%s).\n", hostname, hbuf); alen = sizeof(source); getsockname(s,(struct sockaddr*)&source, &alen); - source.sin_port = 0; /* We just want the addr, not the port */ switch (source.ss_family) { /* We just want the addr, not the port */ case AF_INET: ((struct sockaddr_in *) &source)->sin_port = 0; break; case AF_INET6: ((struct sockaddr_in6 *) &source)->sin6_port = 0; break; } if (getreply(0) > 2) { /* read startup message from server */ if (cin) @@ -1260,11 +1266,11 @@ return(1); } if((multihome) && - bind(data, (struct sockaddr*)&source, sizeof(source)) == -1) { - close(data); - data = -1; - perror("ftp multihome bind"); - return(1); bind(data, (struct sockaddr *)&source, sizeof(source)) == -1) { close(data); data = -1; perror("ftp multihome bind"); return(1); } if (options & SO_DEBUG && setsockopt(data, SOL_SOCKET, SO_DEBUG, (char *)&on
This commit is contained in:
parent
b46df69741
commit
0a498631ce
11
ftp.spec
11
ftp.spec
@ -1,7 +1,7 @@
|
|||||||
Summary: The standard UNIX FTP (File Transfer Protocol) client.
|
Summary: The standard UNIX FTP (File Transfer Protocol) client.
|
||||||
Name: ftp
|
Name: ftp
|
||||||
Version: 0.17
|
Version: 0.17
|
||||||
Release: 32.1.2.2
|
Release: 32.1.2.4
|
||||||
License: BSD
|
License: BSD
|
||||||
Group: Applications/Internet
|
Group: Applications/Internet
|
||||||
Source0: ftp://ftp.uk.linux.org/pub/linux/Networking/netkit-devel/netkit-ftp-%{version}.tar.bz2
|
Source0: ftp://ftp.uk.linux.org/pub/linux/Networking/netkit-devel/netkit-ftp-%{version}.tar.bz2
|
||||||
@ -19,6 +19,7 @@ Patch11: netkit-ftp-0.17-C-Frame121.patch
|
|||||||
Patch12: netkit-ftp-0.17-data.patch
|
Patch12: netkit-ftp-0.17-data.patch
|
||||||
Patch13: netkit-ftp-0.17-multihome.patch
|
Patch13: netkit-ftp-0.17-multihome.patch
|
||||||
Patch14: netkit-ftp-0.17-longnames.patch
|
Patch14: netkit-ftp-0.17-longnames.patch
|
||||||
|
Patch15: netkit-ftp-0.17-multiipv6.patch
|
||||||
|
|
||||||
BuildRoot: /var/tmp/%{name}-root
|
BuildRoot: /var/tmp/%{name}-root
|
||||||
BuildRequires: gcc, glibc-devel, readline-devel, ncurses-devel, perl
|
BuildRequires: gcc, glibc-devel, readline-devel, ncurses-devel, perl
|
||||||
@ -46,7 +47,8 @@ file transfers.
|
|||||||
%patch11 -p1 -b .C-Frame121
|
%patch11 -p1 -b .C-Frame121
|
||||||
%patch12 -p1 -b .data
|
%patch12 -p1 -b .data
|
||||||
%patch13 -p1 -b .multihome
|
%patch13 -p1 -b .multihome
|
||||||
%patch14 -p1 -b .longnames
|
%patch14 -p1 -b .patch
|
||||||
|
%patch15 -p1 -b .multiipv6
|
||||||
|
|
||||||
%build
|
%build
|
||||||
sh configure --with-c-compiler=gcc --enable-ipv6
|
sh configure --with-c-compiler=gcc --enable-ipv6
|
||||||
@ -80,7 +82,10 @@ rm -rf ${RPM_BUILD_ROOT}
|
|||||||
%{_mandir}/man5/netrc.*
|
%{_mandir}/man5/netrc.*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Thu Jul 25 2006 Marcela Maslanova <mmaslano@redhat.com> - 0.17-32.1.2.2
|
* Wed Aug 2 2006 Marcela Maslanova <mmaslano@redhat.com> - 0.17-32.1.2.4
|
||||||
|
- fix (#199145) patch for IPv6 multihome
|
||||||
|
|
||||||
|
* Thu Jul 25 2006 Marcela Maslanova <mmaslano@redhat.com> - 0.17-32.1.2.3
|
||||||
- fix (#196103) patch for long filenames
|
- fix (#196103) patch for long filenames
|
||||||
|
|
||||||
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 0.17-32.1.2.1
|
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 0.17-32.1.2.1
|
||||||
|
66
netkit-ftp-0.17-multiipv6.patch
Normal file
66
netkit-ftp-0.17-multiipv6.patch
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
--- netkit-ftp-0.17/ftp/ftp.c.multiipv6 2006-08-02 15:03:26.000000000 +0200
|
||||||
|
+++ netkit-ftp-0.17/ftp/ftp.c 2006-08-02 15:06:19.000000000 +0200
|
||||||
|
@@ -78,9 +78,7 @@
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <netinet/ip.h>
|
||||||
|
#include <arpa/ftp.h>
|
||||||
|
-#include <arpa/inet.h>
|
||||||
|
#include <arpa/telnet.h>
|
||||||
|
-
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <signal.h>
|
||||||
|
#include <string.h>
|
||||||
|
@@ -132,7 +130,7 @@
|
||||||
|
static sigjmp_buf ptabort;
|
||||||
|
static int ptabflg = 0;
|
||||||
|
static int abrtflag = 0;
|
||||||
|
-struct sockaddr_in source;
|
||||||
|
+struct sockaddr_storage source;
|
||||||
|
|
||||||
|
void lostpeer(int);
|
||||||
|
extern int connected;
|
||||||
|
@@ -154,8 +152,8 @@
|
||||||
|
char *
|
||||||
|
hookup(const char *host, const char *port)
|
||||||
|
{
|
||||||
|
- int s, tos, error, alen;
|
||||||
|
- socklen_t len;
|
||||||
|
+ int s, tos, error;
|
||||||
|
+ socklen_t len, alen;
|
||||||
|
static char hostnamebuf[256];
|
||||||
|
struct addrinfo hints, *res, *res0;
|
||||||
|
char hbuf[MAXHOSTNAMELEN], pbuf[NI_MAXSERV];
|
||||||
|
@@ -281,7 +279,15 @@
|
||||||
|
printf("Connected to %s (%s).\n", hostname, hbuf);
|
||||||
|
alen = sizeof(source);
|
||||||
|
getsockname(s,(struct sockaddr*)&source, &alen);
|
||||||
|
- source.sin_port = 0; /* We just want the addr, not the port */
|
||||||
|
+ switch (source.ss_family) {
|
||||||
|
+ /* We just want the addr, not the port */
|
||||||
|
+ case AF_INET:
|
||||||
|
+ ((struct sockaddr_in *) &source)->sin_port = 0;
|
||||||
|
+ break;
|
||||||
|
+ case AF_INET6:
|
||||||
|
+ ((struct sockaddr_in6 *) &source)->sin6_port = 0;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (getreply(0) > 2) { /* read startup message from server */
|
||||||
|
if (cin)
|
||||||
|
@@ -1260,11 +1266,11 @@
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
if((multihome) &&
|
||||||
|
- bind(data, (struct sockaddr*)&source, sizeof(source)) == -1) {
|
||||||
|
- close(data);
|
||||||
|
- data = -1;
|
||||||
|
- perror("ftp multihome bind");
|
||||||
|
- return(1);
|
||||||
|
+ bind(data, (struct sockaddr *)&source, sizeof(source)) == -1) {
|
||||||
|
+ close(data);
|
||||||
|
+ data = -1;
|
||||||
|
+ perror("ftp multihome bind");
|
||||||
|
+ return(1);
|
||||||
|
}
|
||||||
|
if (options & SO_DEBUG &&
|
||||||
|
setsockopt(data, SOL_SOCKET, SO_DEBUG, (char *)&on,
|
Loading…
Reference in New Issue
Block a user