You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.7 KiB

Index: nanoftp.c
--- nanoftp.c.orig 2003-10-29 14:27:37.000000000 +0100
+++ nanoftp.c 2003-12-10 21:09:52.000000000 +0100
@@ -1553,7 +1553,7 @@
memset (&dataAddr, 0, sizeof(dataAddr));
#ifdef SUPPORT_IP6
- if ((ctxt->ftpAddr).ss_family == AF_INET6) {
+ if (((struct sockaddr *)&ctxt->ftpAddr)->sa_family == AF_INET6) {
ctxt->dataFd = socket (AF_INET6, SOCK_STREAM, IPPROTO_TCP);
((struct sockaddr_in6 *)&dataAddr)->sin6_family = AF_INET6;
dataAddrLen = sizeof(struct sockaddr_in6);
@@ -1572,7 +1572,7 @@
if (ctxt->passive) {
#ifdef SUPPORT_IP6
- if ((ctxt->ftpAddr).ss_family == AF_INET6)
+ if (((struct sockaddr *)&ctxt->ftpAddr)->sa_family == AF_INET6)
snprintf (buf, sizeof(buf), "EPSV\r\n");
else
#endif
@@ -1603,7 +1603,7 @@
cur = &ctxt->controlBuf[ctxt->controlBufAnswer];
while (((*cur < '0') || (*cur > '9')) && *cur != '\0') cur++;
#ifdef SUPPORT_IP6
- if ((ctxt->ftpAddr).ss_family == AF_INET6) {
+ if (((struct sockaddr *)&ctxt->ftpAddr)->sa_family == AF_INET6) {
if (sscanf (cur, "%u", &temp[0]) != 1) {
__xmlIOErr(XML_FROM_FTP, XML_FTP_EPSV_ANSWER,
"Invalid answer to EPSV\n");
@@ -1640,7 +1640,7 @@
} else {
getsockname(ctxt->dataFd, (struct sockaddr *) &dataAddr, &dataAddrLen);
#ifdef SUPPORT_IP6
- if ((ctxt->ftpAddr).ss_family == AF_INET6)
+ if (((struct sockaddr *)&ctxt->ftpAddr)->sa_family == AF_INET6)
((struct sockaddr_in6 *)&dataAddr)->sin6_port = 0;
else
#endif
@@ -1659,7 +1659,7 @@
return (-1);
}
#ifdef SUPPORT_IP6
- if ((ctxt->ftpAddr).ss_family == AF_INET6) {
+ if (((struct sockaddr *)&ctxt->ftpAddr)->sa_family == AF_INET6) {
char buf6[INET6_ADDRSTRLEN];
inet_ntop (AF_INET6, &((struct sockaddr_in6 *)&dataAddr)->sin6_addr,
buf6, INET6_ADDRSTRLEN);