вот тут полный исходник исходник... http://www.codase.com/search/display?file=L2dlbnRvbzIvdmFyL3RtcC9yZXBvcy9jb2Rhc 2UuYy9mcm94LTAuNy4xOC93b3JrL2Zyb3gtMC43LjE4L3NyYy9udHAuYw==&lang=c
Подскажите что в переменной faking, рыл рыл, если тут в первом ифе сделать !faking, то ломается на
| Код | static void connect_to_server(void) if(faking && !config.fakentp) return; working = TRUE; // почему он мне постоянно вот это строчку выбрасывает? send_cmessage(220, faking ? "Frox. Please login." : "Frox transparent ftp proxy. Login with username[@host[:port]]"); info->greeting = FAKED; do { get_command(&cmd, &arg); if(!sstr_casecmp2(cmd, "QUIT")) die(INFO, "Client closed connecton", 0, 0, 0); if(sstr_casecmp2(cmd, "USER")) send_cmessage(530, "Please login with USER first"); } while(sstr_casecmp2(cmd, "USER"));
if(!faking) parseuser(arg); else sstr_cpy(info->username, arg);
if(sstr_casecmp2(info->username, "ftp") && sstr_casecmp2(info->username, "anonymous")) info->anonymous = 0; else info->anonymous = 1; }
|
этом...
| Код | { /*Check for loops. Won't work if Listen undefined */ if(info->server_control.address.sin_addr.s_addr == config.listen_address.sin_addr.s_addr && info->server_control.address.sin_port == config.listen_address.sin_port) die(ERROR, "Attempt to connect to self. " "Do you need to set DoNTP to yes?", 421, "Proxy tried to loop. Closing connection", 0);
|
ну или вот так сократить, что-бы просто юзера отдавал определенного, тоже на 421 Proxy tried to loop. Closing connection
| Код | if(faking && !config.fakentp) return; working = TRUE; if(sstr_casecmp2(info->username, "anonymous")) info->anonymous = 0; else send_cmessage(220, faking ? "Frox. Please login." : "Frox transparent ftp proxy. Login with username[@host[:port]]"); info->greeting = FAKED;
|
p.s. Ломается не на сборке, а при работе, т.е. у меня на клиенте сообщение 421 Proxy tried to loop. Closing connection или 220 Frox transparent ftp proxy. Login with username[@host[:port]]
|