- Appended to comment:
anonymous claiming to be silov.e added on 2008-12-03 06:31:42:
Thank you for fix problemsBy the way, on many OSes, recv(2) (or read(2)) returns zero if peer unexpected or expected shutdown is normal behavior. It meanings no more data or end of stream. This behavior is not win32 quirks.
- Appended to comment:
drh added on 2008-11-27 13:51:22:
Fixed by check-in c12e5b102ee6079715da0fa4eff7fb502b68b111 - Change resolution to "Fixed"
- Change status to "Fixed"
- Change comment to "win32 client receive data function 'socket_read_blob()' (declared in "http.c") call 'recv()' and test return value is negative or else. but if peer unexpected shutdown 'recv()' returns zero. so this functon enters infinite-loop. to fix it, return value is negative or equal to zero as error. <verbatim> while ( i<nToRead ){ read = recv(pSockId, rbuf, 50, 0); i += read; - if( read<0 ){ + if( read<=0 ){ return 0; } blob_append(pBlob, rbuf, read); }</verbatim>"
- Change foundin to "a8c3a7ea92 2008-11-22T19:32:44"
- Change private_contact to "6b7d8d19b3584e0b0b59ee79d0f778ecd9f60111"
- Change severity to "Minor"
- Change status to "Open"
- Change title to "win32 'fossil pull' or other client side commands hang up if peer unexpected shutdown."
- Change type to "Code_Defect"