Firewall has kernel 2.2.16-22 (Redhat Linux 7.0) with ip_masq_ftp loaded, and both FTP ports open for client use. RPM --query of kernel shows 2.2.16-22. The platform used for the ftp mget has Redhat Linux 6.2 out of the box in a default server configuration. RPM --query shows ftp version 0.16-3, and kernel 2.2.14-5.0. Logging in to a remote site and doing an mget of 22 files in non-passive mode ends with ftp hanging after 10 or 11 files and not even responding to a control-C. Running the same mget in passive mode works fine. Doing the same test from a Redhat 7.0 box (not the firewall box) works OK in both passive and non-passive modes (ftp 0.17-6). Most important, running the same test without the firewall works OK on the 6.2 machine. We are running an old program which uses an ftp API lib which doesn't support passive mode. If there is an ftp library around which supports passive mode, this will solve our problem, if no other solution is evident. Thank you.
Does installing the ftp version from 7 on 6.2 fix your problem? (Get the source RPM and rpm --rebuild)? Other than that, you might want to take a look at the lynx source code, it has the files you'll need to build an ftp library that handles both active and passive mode.