diff --git a/src/server/slavefuncs.c b/src/server/slavefuncs.c --- a/src/server/slavefuncs.c +++ b/src/server/slavefuncs.c @@ -47,14 +47,20 @@ int sendSignal(struct remoteio *rem, int _distren_asprintf(&ssignal, "%d", signal); towrite = strlen(ssignal); - while( !remoteio_write(rem, ssignal, towrite, &written) - && towrite - && written) + while( towrite + && !remoteio_write(rem, ssignal, towrite, &written)) { printf(stderr, "Writing..."); towrite -= written; } - return 0; + if(written) + return 0; + + /** + if remoteio_write returned 1, the connection + is probably dead or there was a real error + */ + return 1; } /** utility function for XPath-ish stuff: