From 4563eeb9f43621f137c51c80e3335a3d281b845a Mon Sep 17 00:00:00 2001 From: Colin Hogben Date: Wed, 4 Jan 2012 11:21:38 +0000 Subject: 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 --- lib/telnet.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'lib/telnet.c') 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 { -- cgit v1.2.3