in reply to is 0 bytes read EOF ?

As the docs indicate, a return of zero means EOF, and a return of undef means error.