X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fftpsbr.c;h=f82f51b9965129bb165b5dd6e655c05fc15f1a9f;hp=7d6d72b4722281bd21c9f49c5c343eaea4623f5b;hb=5b792c4424571f05bc2008e3109797d18d7d00d1;hpb=8e5be81f784682822f5e868c1bf3c8624682bd23 diff --git a/uip/ftpsbr.c b/uip/ftpsbr.c index 7d6d72b..f82f51b 100644 --- a/uip/ftpsbr.c +++ b/uip/ftpsbr.c @@ -305,57 +305,54 @@ bad: ; close_tcp_socket(data_fd), data_fd = NOTOK; } - } else { - if (ascii) { - int c; - FILE *in; - - if (!(in = fdopen(data_fd, "r"))) { - perror("fdopen"); - goto bad; - } + } else if (ascii) { + int c; + FILE *in; - while ((c = getc(in)) != EOF) { - if (c == '\r') - switch (c = getc(in)) { - case EOF: - case '\0': - c = '\r'; - break; + if (!(in = fdopen(data_fd, "r"))) { + perror("fdopen"); + goto bad; + } - case '\n': - break; + while ((c = getc(in)) != EOF) { + if (c == '\r') + switch (c = getc(in)) { + case EOF: + case '\0': + c = '\r'; + break; - default: - putc('\r', fp); - break; - } + case '\n': + break; - if (putc(c, fp) == EOF) { - perror("putc"); - fclose(in); - data_fd = NOTOK; - goto bad; + default: + putc('\r', fp); + break; } - } - fclose(in); - data_fd = NOTOK; - } else { - while ((cc = read_tcp_socket(data_fd, buffer, - sizeof buffer)) > 0) - if (fwrite(buffer, sizeof *buffer, cc, fp) - == 0) { - perror("fwrite"); - goto bad; - } - if (cc < 0) { - perror("read_tcp_socket"); + if (putc(c, fp) == EOF) { + perror("putc"); + fclose(in); + data_fd = NOTOK; goto bad; } + } - close_tcp_socket(data_fd), data_fd = NOTOK; + fclose(in); + data_fd = NOTOK; + } else { + while ((cc = read_tcp_socket(data_fd, buffer, + sizeof buffer)) > 0) + if (fwrite(buffer, sizeof *buffer, cc, fp) == 0) { + perror("fwrite"); + goto bad; + } + if (cc < 0) { + perror("read_tcp_socket"); + goto bad; } + + close_tcp_socket(data_fd), data_fd = NOTOK; } if (!istdio)