X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fclient.c;h=fc2776b7e599fef28654c90f8cee5096e0f68b82;hb=5ec60e4217863b0e2d6a86ba3f60f60c68608227;hp=7cdfbe33b43971dfc51df123766e5f619cca9c60;hpb=5c851d430732bd833615350cca963f9482b1af24;p=doldaconnect.git diff --git a/daemon/client.c b/daemon/client.c index 7cdfbe3..fc2776b 100644 --- a/daemon/client.c +++ b/daemon/client.c @@ -408,7 +408,7 @@ static void writehashcache(int now) fclose(stream); } -static void hashread(struct socket *sk, void *uudata) +static int hashread(struct socket *sk, void *uudata) { static char *hashbuf; static size_t hashbufsize = 0, hashbufdata = 0; @@ -422,7 +422,7 @@ static void hashread(struct socket *sk, void *uudata) struct hashcache *hc; if((buf = sockgetinbuf(sk, &bufsize)) == NULL) - return; + return(0); bufcat(hashbuf, buf, bufsize); free(buf); while((lp = memchr(hashbuf, '\n', hashbufdata)) != NULL) @@ -464,6 +464,7 @@ static void hashread(struct socket *sk, void *uudata) } memmove(hashbuf, lp, hashbufdata -= (lp - hashbuf)); } + return(0); } static void hashexit(pid_t pid, int status, struct socket *outsock) @@ -542,7 +543,7 @@ static int hashfile(char *path) close(fd); close(pfd[1]); outsock = wrapsock(pfd[0]); - outsock->readcb = hashread; + CBREG(outsock, socket_read, hashread, NULL, NULL); childcallback(hashjob, (void (*)(pid_t, int, void *))hashexit, outsock); return(0); }