Skip to content

Commit b7d7426

Browse files
committed
[net] Update perror error messages in ftp and ftpd
1 parent 9af5d63 commit b7d7426

File tree

2 files changed

+38
-50
lines changed

2 files changed

+38
-50
lines changed

elkscmd/inet/ftp.c

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ int dataconn(int fd) { /* wait for the actual data connection in PORT mode */
408408
int datafd, i = sizeof(myaddr);
409409

410410
if ((datafd = accept(fd, (struct sockaddr *)&myaddr, (unsigned int *)&i)) < 0) {
411-
perror("accept error");
411+
perror("accept");
412412
close(fd);
413413
return -1;
414414
}
@@ -823,27 +823,25 @@ int do_active(int cmdfd) {
823823
}
824824
#endif
825825
if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
826-
perror("socket error");
826+
perror("socket");
827827
return -1;
828828
}
829829

830830
int on = 1;
831-
if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0) {
832-
/* This should not happen */
831+
if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0)
833832
perror("SO_REUSEADDR");
834-
}
835833

836834
i = SO_LISTEN_BUFSIZ;
837835
if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &i, sizeof(i)) < 0)
838836
perror("SO_RCVBUF");
837+
839838
bzero(&myaddr, sizeof(myaddr));
840839
myaddr.sin_family = AF_INET;
841840
myaddr.sin_addr.s_addr = htonl(INADDR_ANY);
842841
myaddr.sin_port = htons(0); /* if 0, system picks a port */
843842
i = sizeof(myaddr);
844-
845843
if (bind(fd, (struct sockaddr *) &myaddr, i) < 0) {
846-
perror("bind error");
844+
perror("bind");
847845
return -1;
848846
}
849847

@@ -852,7 +850,7 @@ int do_active(int cmdfd) {
852850
p = (char *)&myport;
853851

854852
if (listen(fd, 1) < 0) {
855-
perror("Listen failed");
853+
perror("listen");
856854
close(fd);
857855
return -1;
858856
}
@@ -891,7 +889,7 @@ int do_passive(int cmdfd) {
891889
return -1;
892890
}
893891
if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
894-
perror("socket error");
892+
perror("socket");
895893
return -1;
896894
}
897895

@@ -900,7 +898,7 @@ int do_passive(int cmdfd) {
900898
srvaddr.sin_port = htons(0);
901899

902900
if (bind(fd, (struct sockaddr*) &srvaddr, sizeof(srvaddr)) < 0) {
903-
perror("bind error");
901+
perror("bind");
904902
return -1;
905903
}
906904

@@ -1031,7 +1029,7 @@ int connect_cmd(char *ip, unsigned int server_port) {
10311029
unsigned int myport;
10321030

10331031
if ((controlfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
1034-
printf("Can't open socket - check if ktcp is running.\n");
1032+
perror("ftp");
10351033
return -1;
10361034
}
10371035
//printf("CMD socket OK.\n");

elkscmd/inet/ftpd.c

Lines changed: 29 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -168,15 +168,13 @@ void clean(char *s) { /* chop off CRLF at end of string */
168168
}
169169

170170
void 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

Comments
 (0)