Skip to content

Commit afc0785

Browse files
committed
Correct handle the value return from mgmt socket read and write (apache#6220)
1 parent a6e66df commit afc0785

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

mgmt/utils/MgmtUtils.cc

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,7 @@ mgmt_readline(int soc, char *buf, int maxlen)
7070
break;
7171
}
7272
} else if (rc == 0) {
73-
if (n == 1) { /* EOF */
74-
return 0;
75-
} else {
76-
break;
77-
}
73+
return n;
7874
} else { /* Error */
7975
if (errno == ECONNRESET || errno == EPIPE) {
8076
return n ? n : 0;
@@ -112,7 +108,7 @@ mgmt_writeline(int soc, const char *data, int nbytes)
112108
while (nleft > 0) {
113109
int nwritten = write_socket(soc, tmp, nleft);
114110
if (nwritten <= 0) { /* Error or nothing written */
115-
return nwritten;
111+
return nleft;
116112
}
117113
nleft -= nwritten;
118114
tmp += nwritten;
@@ -147,7 +143,7 @@ mgmt_read_pipe(int fd, char *buf, int bytes_to_read)
147143
while (bytes_to_read > 0) {
148144
int err = read_socket(fd, p, bytes_to_read);
149145
if (err == 0) {
150-
return err;
146+
return bytes_read;
151147
} else if (err < 0) {
152148
// Turn ECONNRESET into EOF.
153149
if (errno == ECONNRESET || errno == EPIPE) {
@@ -188,7 +184,7 @@ mgmt_write_pipe(int fd, char *buf, int bytes_to_write)
188184
while (bytes_to_write > 0) {
189185
int err = write_socket(fd, p, bytes_to_write);
190186
if (err == 0) {
191-
return err;
187+
return bytes_written;
192188
} else if (err < 0) {
193189
if (mgmt_transient_error()) {
194190
mgmt_sleep_msec(1);

0 commit comments

Comments
 (0)