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)