@@ -168,15 +168,13 @@ void clean(char *s) { /* chop off CRLF at end of string */
168168}
169169
170170void net_close (int fd , int errflag ) {
171- int ret ;
172171 struct linger l ;
173172
174173 if (errflag ) {
175174 l .l_onoff = 1 ; /* Force RST on close */
176175 l .l_linger = 0 ;
177- ret = setsockopt (fd , SOL_SOCKET , SO_LINGER , & l , sizeof (l ));
178- if (ret < 0 )
179- perror ("setsockopt FIN" );
176+ if (setsockopt (fd , SOL_SOCKET , SO_LINGER , & l , sizeof (l )) < 0 )
177+ perror ("SO_LINGER" );
180178 }
181179 close (fd );
182180}
@@ -205,9 +203,9 @@ int do_active(char *client_ip, unsigned int client_port, unsigned int server_por
205203 int fd , sockwait = 0 ;
206204 char * ip = client_ip ;
207205
208- if ( (fd = socket (AF_INET , SOCK_STREAM , 0 )) < 0 ){
209- perror ("socket error " );
210- return -1 ;
206+ if ( (fd = socket (AF_INET , SOCK_STREAM , 0 )) < 0 ) {
207+ perror ("socket" );
208+ return -1 ;
211209 }
212210#if 1
213211 int on = 1 ;
@@ -223,11 +221,9 @@ int do_active(char *client_ip, unsigned int client_port, unsigned int server_por
223221 tempaddr .sin_family = AF_INET ;
224222 tempaddr .sin_addr .s_addr = htonl (INADDR_ANY );
225223 tempaddr .sin_port = htons (server_port - 1 );
226-
227224 while ((bind (fd , (struct sockaddr * ) & tempaddr , sizeof (tempaddr ))) < 0 ) {
228225 if (sockwait ++ > 10 || errno != EADDRINUSE ) {
229226 printf ("Bind: Could not connect on port %d\n" , server_port - 1 );
230- perror ("bind error" );
231227 return -1 ;
232228 }
233229 sleep (1 );
@@ -242,9 +238,8 @@ int do_active(char *client_ip, unsigned int client_port, unsigned int server_por
242238 cliaddr .sin_family = AF_INET ;
243239 cliaddr .sin_port = htons (client_port );
244240 cliaddr .sin_addr .s_addr = in_aton (ip );
245-
246241 if (in_connect (fd , (struct sockaddr * ) & cliaddr , sizeof (cliaddr ), 10 ) < 0 ) {
247- perror ("connect error " );
242+ perror ("connect" );
248243 return -1 ;
249244 }
250245
@@ -375,7 +370,7 @@ int do_list(int datafd, char *input) {
375370 iobuf [len - 1 ] = '\r' ; /* Change to FTP ASCII-style line endings */
376371 iobuf [len ++ ] = '\n' ;
377372 if (write (datafd , iobuf , len ) != len ) {
378- perror ("LIST: Data socket write error " );
373+ perror ("LIST: Data socket write" );
379374 status = -1 ;
380375 break ;
381376 }
@@ -497,15 +492,15 @@ int do_pasv(int *datafd) {
497492
498493 if ((fd = socket (AF_INET , SOCK_STREAM , 0 )) < 0 ) {
499494 write (controlfd , pasv_err , strlen (pasv_err ));
500- perror ("PASV: Socket open failed " );
495+ perror ("PASV socket " );
501496 return -1 ;
502497 }
503498
504499 if (setsockopt (fd , SOL_SOCKET , SO_REUSEADDR , & i , sizeof (i )) < 0 )
505- perror ("SO_REUSEADDR" );
500+ perror ("PASV SO_REUSEADDR" );
506501 i = SO_LISTEN_BUFSIZ ;
507502 if (setsockopt (fd , SOL_SOCKET , SO_RCVBUF , & i , sizeof (i )) < 0 )
508- perror ("SO_RCVBUF" );
503+ perror ("PASV SO_RCVBUF" );
509504
510505 pasv .sin_family = AF_INET ;
511506 pasv .sin_addr .s_addr = htonl (INADDR_ANY );
@@ -514,10 +509,9 @@ int do_pasv(int *datafd) {
514509 i = 0 ;
515510 while (bind (fd , (struct sockaddr * )& pasv , sizeof (pasv )) < 0 ) {
516511 if (debug ) printf ("PASV bind failed: host %s port %u\n" , in_ntoa (pasv .sin_addr .s_addr ), ntohs (pasv .sin_port ));
517- perror ("PASV bind failure " );
512+ perror ("PASV bind" );
518513 if (i ++ > 10 || errno != EADDRINUSE ) {
519514 if (debug ) printf ("Bind: Could not connect on port %u\n" , port );
520- perror ("bind error" );
521515 write (controlfd , pasv_err , strlen (pasv_err ));
522516 close (fd );
523517 return -1 ;
@@ -528,14 +522,13 @@ int do_pasv(int *datafd) {
528522 pasv .sin_port = htons (port );
529523 }
530524 i = sizeof (pasv );
531- if (getsockname (fd , (struct sockaddr * ) & pasv , (unsigned int * )& i ) < 0 ) {
532- perror ("getsockname" );
533- //return -1;
534- }
535- if (debug ) printf ("getsockname: adr %s, port %u\n" , in_ntoa (pasv .sin_addr .s_addr ), ntohs (pasv .sin_port ));
525+ if (getsockname (fd , (struct sockaddr * ) & pasv , (unsigned int * )& i ) < 0 )
526+ perror ("PASV getsockname" );
527+ if (debug ) printf ("getsockname: adr %s, port %u\n" ,
528+ in_ntoa (pasv .sin_addr .s_addr ), ntohs (pasv .sin_port ));
536529 if (listen (fd , 1 ) < 0 ) {
537530 write (controlfd , pasv_err , strlen (pasv_err ));
538- if (debug ) perror ("PASV" );
531+ if (debug ) perror ("PASV listen " );
539532 close (fd );
540533 return -1 ;
541534 }
@@ -556,7 +549,7 @@ int do_pasv(int *datafd) {
556549 //FIXME: The accept() will block forever - this will happen in QEMU if an external client
557550 // requests a passive mode connection.
558551 if ((* datafd = accept (fd , (struct sockaddr * )& pasv , (unsigned int * )& i )) < 0 ) {
559- perror ("accept error " );
552+ perror ("accept" );
560553 close (fd );
561554 return -1 ;
562555 }
@@ -584,7 +577,7 @@ int do_retr(int datafd, char *input){
584577 write (controlfd , iobuf , strlen (iobuf ));
585578 while ((len = read (fd , iobuf , sizeof (iobuf ))) > 0 )
586579 if (write (datafd , iobuf , len ) != len ) {
587- perror ("Data write error " );
580+ perror ("write data " );
588581 break ;
589582 }
590583 close (fd );
@@ -620,8 +613,8 @@ int do_stor(int datafd, char *input) {
620613 /* FIXME - should query protection mode for the source file and use that */
621614 //trim(cmd_buf);
622615 if ((fp = open (cmd_buf , O_CREAT |O_RDWR |O_TRUNC , 0644 )) < 1 ) {
623- perror ("File create failure" );
624616 send_reply (552 , "File create error, transfer aborted" );
617+ perror ("create" );
625618 return -1 ;
626619 }
627620
@@ -630,7 +623,7 @@ int do_stor(int datafd, char *input) {
630623 while ((n = read (datafd , iobuf , sizeof (iobuf ))) > 0 ) {
631624 if ((len = write (fp , iobuf , n )) != n ) {
632625 if (len < 0 )
633- perror ("File write error " );
626+ perror ("write file " );
634627 else
635628 printf ("File write error: %s\n" , cmd_buf );
636629 close (fp );
@@ -675,12 +668,11 @@ int main(int argc, char **argv) {
675668 }
676669 if ((cp = getenv ("QEMU" )) != NULL )
677670 qemu = atoi (cp );
678- if (qemu && debug ) {
671+ if (qemu && debug )
679672 printf ("QEMU mode\n" );
680- }
681-
673+
682674 if ((listenfd = socket (AF_INET , SOCK_STREAM , 0 )) < 0 ) {
683- perror ("socket error " );
675+ perror ("ftpd " );
684676 exit (1 );
685677 }
686678
@@ -697,25 +689,23 @@ int main(int argc, char **argv) {
697689 servaddr .sin_family = AF_INET ;
698690 servaddr .sin_addr .s_addr = htonl (INADDR_ANY );
699691 servaddr .sin_port = htons (myport );
700-
701692 if (bind (listenfd , (struct sockaddr * ) & servaddr , sizeof (servaddr )) < 0 ) {
702- perror ("Cannot bind socket " );
693+ perror ("bind" );
703694 exit (2 );
704695 }
705696
706697 if (listen (listenfd , 1 ) < 0 ) {
707- perror ("Error in listen" );
698+ perror ("listen" );
708699 exit (3 );
709700 }
710701 ret = sizeof (myaddr ); /* save my own address for later use */
711- if (getsockname (listenfd , (struct sockaddr * ) & myaddr , (unsigned int * )& ret ) < 0 ) {
702+ if (getsockname (listenfd , (struct sockaddr * ) & myaddr , (unsigned int * )& ret ) < 0 )
712703 perror ("getsockname" );
713- //return -1;
714- }
704+
715705 if (!nofork ) {
716706 /* become daemon, debug output on 1 and 2*/
717707 if ((pid = fork ()) == -1 ) {
718- perror ("ftpd " );
708+ perror ("No more processes " );
719709 exit (1 );
720710 }
721711 if (pid ) exit (0 );
@@ -747,7 +737,7 @@ int main(int argc, char **argv) {
747737 in_ntoa (client .sin_addr .s_addr ), ntohs (client .sin_port ));
748738
749739 if ((pid = fork ()) == -1 )
750- perror ("ftpd " );
740+ perror ("No more processes " );
751741 if (pid )
752742 close (controlfd );
753743 else { /* child process for accept */
0 commit comments