wget: yet another contortion for proftpd's PASV response.
authorDenis Vlasenko <vda.linux@googlemail.com>
Tue, 21 Nov 2006 19:10:26 +0000 (19:10 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Tue, 21 Nov 2006 19:10:26 +0000 (19:10 -0000)
networking/wget.c

index abc011c7d5569266cb8f70c35fc1217b1812250f..0c547c651cb63981c51296e0e53bf8373b3525d8 100644 (file)
@@ -414,18 +414,18 @@ int wget_main(int argc, char **argv)
  pasv_error:
                        bb_error_msg_and_die("bad response to %s: %s", "PASV", buf);
                }
-               // Response is "227 garbageN1,N2,N3,N4,P1,P2[)]
+               // Response is "227 garbageN1,N2,N3,N4,P1,P2[)garbage]
                // Server's IP is N1.N2.N3.N4 (we ignore it)
                // Server's port for data connection is P1*256+P2
                s = strrchr(buf, ')');
-               if (s && !s[1]) s[0] = '\0';
+               if (s) s[0] = '\0';
                s = strrchr(buf, ',');
                if (!s) goto pasv_error;
-               port = xatol_range(s+1, 0, 255);
+               port = xatou_range(s+1, 0, 255);
                *s = '\0';
                s = strrchr(buf, ',');
                if (!s) goto pasv_error;
-               port += xatol_range(s+1, 0, 255) * 256;
+               port += xatou_range(s+1, 0, 255) * 256;
                s_in.sin_port = htons(port);
                dfp = open_socket(&s_in);