# HG changeset patch # User Binki # Date 2009-12-12 17:45:38 # Node ID 262e6275036bf5647d9973eef546aa3f027f4f1f # Parent 50619baaac4df1a0499c420a9c4963cb42dc74fc fix sendSignal() use of remoteio, config diff --git a/etc/distrenslave.conf.in b/etc/distrenslave.conf.in --- a/etc/distrenslave.conf.in +++ b/etc/distrenslave.conf.in @@ -2,7 +2,7 @@ slave { username = "!username" datadir = "@LOCALSTATEDIR@/@PACKAGE@" - hostname = "protofusion.org" + server = "protofusion" } include("distrencommon.conf") diff --git a/src/common/remoteio.h b/src/common/remoteio.h --- a/src/common/remoteio.h +++ b/src/common/remoteio.h @@ -38,7 +38,9 @@ int remoteio_open(struct remoteio **rem, /** non-blocking I/O. - @return 0 on success, 1 on failure + @param len must be greater than 0 + + @return 0 on success, 1 on failure. */ int remoteio_read(struct remoteio *rem, void *buf, size_t len, size_t *bytesread); int remoteio_write(struct remoteio *rem, void *buf, size_t len, size_t *byteswritten); 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: