aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Hogben <curl@pythontech.co.uk>2012-01-04 11:21:38 +0000
committerDaniel Stenberg <daniel@haxx.se>2012-01-18 22:17:10 +0100
commit4563eeb9f43621f137c51c80e3335a3d281b845a (patch)
treee50ecee57267f996d9325a2efee7f507259ae4f8
parent2cafb0e97c288d2e942a50e964e1604c692871db (diff)
Use correct file descriptor for telnet upload.
Fix a bug where input was read from stdin even when a different FILE * had been configured via CURLOPT_READDATA
-rw-r--r--lib/telnet.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/telnet.c b/lib/telnet.c
index 54977fbf4..e7cb295d8 100644
--- a/lib/telnet.c
+++ b/lib/telnet.c
@@ -1569,12 +1569,13 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done)
pfd[0].fd = sockfd;
pfd[0].events = POLLIN;
- if(data->set.is_fread_set) {
+ if(conn->fread_func != (curl_read_callback)fread) {
poll_cnt = 1;
interval_ms = 100; /* poll user-supplied read function */
}
else {
- pfd[1].fd = 0;
+ /* really using fread, so infile is a FILE* */
+ pfd[1].fd = fileno((FILE *)conn->fread_in);
pfd[1].events = POLLIN;
poll_cnt = 2;
interval_ms = 1 * 1000;
@@ -1627,8 +1628,8 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done)
nread = 0;
if(poll_cnt == 2) {
- if(pfd[1].revents & POLLIN) { /* read from stdin */
- nread = read(0, buf, BUFSIZE - 1);
+ if(pfd[1].revents & POLLIN) { /* read from in file */
+ nread = read(pfd[1].fd, buf, BUFSIZE - 1);
}
}
else {