Loading CHANGES +4 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,10 @@ Changelog Yang Tse (11 Mar 2009) - Added missing TELNET timeout support for Windows builds. This issue was reported by Pierre Brico. Daniel Stenberg (9 Mar 2009) - Frank Hempel found out a bug and provided the fix: Loading RELEASE-NOTES +2 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ This release includes the following bugfixes: o fixed the GnuTLS-using code to do correct return code checks o an alloc-related call in the OpenSSL-using code didn't check the return value o curl_easy_duphandle() failed to duplicate cookies at times o missing TELNET timeout support in Windows builds This release includes the following known bugs: Loading @@ -27,6 +28,6 @@ This release would not have looked like this without help, code, reports and advice from friends like these: Daniel Fandrich, Yang Tse, David James, Chris Deidun, Bill Egert, Andre Guibert de Bruet, Andreas Farber, Frank Hempel Andre Guibert de Bruet, Andreas Farber, Frank Hempel, Pierre Brico Thanks! (and sorry if I forgot to mention someone) lib/telnet.c +38 −22 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms Loading Loading @@ -1195,11 +1195,13 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done) DWORD wait_timeout; DWORD waitret; DWORD readfile_read; int err; #else int interval_ms; struct pollfd pfd[2]; #endif ssize_t nread; struct timeval now; bool keepon = TRUE; char *buf = data->state.buffer; struct TELNET *tn; Loading Loading @@ -1305,7 +1307,7 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done) wait_timeout = 100; } else { obj_count = 2; wait_timeout = INFINITE; wait_timeout = 1000; } /* Keep on listening and act on events */ Loading Loading @@ -1358,8 +1360,15 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done) break; case WAIT_OBJECT_0: if(enum_netevents_func(sockfd, event_handle, &events) != SOCKET_ERROR) { if(SOCKET_ERROR == enum_netevents_func(sockfd, event_handle, &events)) { if((err = SOCKERRNO) != EINPROGRESS) { infof(data,"WSAEnumNetworkEvents failed (%d)", err); keepon = FALSE; code = CURLE_READ_ERROR; break; } } if(events.lNetworkEvents & FD_READ) { /* This reallu OUGHT to check its return code. */ (void)Curl_read(conn, sockfd, buf, BUFSIZE - 1, &nread); Loading @@ -1376,12 +1385,20 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done) tn->already_negotiated = 1; } } if(events.lNetworkEvents & FD_CLOSE) { keepon = FALSE; } } break; } if(data->set.timeout) { now = Curl_tvnow(); if(Curl_tvdiff(now, conn->created) >= data->set.timeout) { failf(data, "Time-out"); code = CURLE_OPERATION_TIMEDOUT; keepon = FALSE; } } } Loading Loading @@ -1446,7 +1463,6 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done) } } if(data->set.timeout) { struct timeval now; /* current time */ now = Curl_tvnow(); if(Curl_tvdiff(now, conn->created) >= data->set.timeout) { failf(data, "Time-out"); Loading Loading
CHANGES +4 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,10 @@ Changelog Yang Tse (11 Mar 2009) - Added missing TELNET timeout support for Windows builds. This issue was reported by Pierre Brico. Daniel Stenberg (9 Mar 2009) - Frank Hempel found out a bug and provided the fix: Loading
RELEASE-NOTES +2 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ This release includes the following bugfixes: o fixed the GnuTLS-using code to do correct return code checks o an alloc-related call in the OpenSSL-using code didn't check the return value o curl_easy_duphandle() failed to duplicate cookies at times o missing TELNET timeout support in Windows builds This release includes the following known bugs: Loading @@ -27,6 +28,6 @@ This release would not have looked like this without help, code, reports and advice from friends like these: Daniel Fandrich, Yang Tse, David James, Chris Deidun, Bill Egert, Andre Guibert de Bruet, Andreas Farber, Frank Hempel Andre Guibert de Bruet, Andreas Farber, Frank Hempel, Pierre Brico Thanks! (and sorry if I forgot to mention someone)
lib/telnet.c +38 −22 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms Loading Loading @@ -1195,11 +1195,13 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done) DWORD wait_timeout; DWORD waitret; DWORD readfile_read; int err; #else int interval_ms; struct pollfd pfd[2]; #endif ssize_t nread; struct timeval now; bool keepon = TRUE; char *buf = data->state.buffer; struct TELNET *tn; Loading Loading @@ -1305,7 +1307,7 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done) wait_timeout = 100; } else { obj_count = 2; wait_timeout = INFINITE; wait_timeout = 1000; } /* Keep on listening and act on events */ Loading Loading @@ -1358,8 +1360,15 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done) break; case WAIT_OBJECT_0: if(enum_netevents_func(sockfd, event_handle, &events) != SOCKET_ERROR) { if(SOCKET_ERROR == enum_netevents_func(sockfd, event_handle, &events)) { if((err = SOCKERRNO) != EINPROGRESS) { infof(data,"WSAEnumNetworkEvents failed (%d)", err); keepon = FALSE; code = CURLE_READ_ERROR; break; } } if(events.lNetworkEvents & FD_READ) { /* This reallu OUGHT to check its return code. */ (void)Curl_read(conn, sockfd, buf, BUFSIZE - 1, &nread); Loading @@ -1376,12 +1385,20 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done) tn->already_negotiated = 1; } } if(events.lNetworkEvents & FD_CLOSE) { keepon = FALSE; } } break; } if(data->set.timeout) { now = Curl_tvnow(); if(Curl_tvdiff(now, conn->created) >= data->set.timeout) { failf(data, "Time-out"); code = CURLE_OPERATION_TIMEDOUT; keepon = FALSE; } } } Loading Loading @@ -1446,7 +1463,6 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done) } } if(data->set.timeout) { struct timeval now; /* current time */ now = Curl_tvnow(); if(Curl_tvdiff(now, conn->created) >= data->set.timeout) { failf(data, "Time-out"); Loading