Put back the outsock from hashjob.
authorfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Wed, 25 Oct 2006 03:31:25 +0000 (03:31 +0000)
committerfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Wed, 25 Oct 2006 03:31:25 +0000 (03:31 +0000)
git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/doldaconnect@705 959494ce-11ee-0310-bf91-de5d638817bd

daemon/client.c

index 50da10d..45aa7be 100644 (file)
@@ -449,7 +449,7 @@ static void hashread(struct socket *sk, void *uudata)
     }
 }
 
-static void hashexit(pid_t pid, int status, void *uudata)
+static void hashexit(pid_t pid, int status, struct socket *outsock)
 {
     if(pid != hashjob)
        flog(LOG_ERR, "BUG: hashing process changed PID?! old: %i new %i", hashjob, pid);
@@ -457,6 +457,7 @@ static void hashexit(pid_t pid, int status, void *uudata)
        flog(LOG_WARNING, "hashing process exited with non-zero status: %i", status);
     hashjob = 0;
     checkhashes();
+    putsock(outsock);
 }
 
 static int hashfile(char *path)
@@ -525,7 +526,7 @@ static int hashfile(char *path)
     close(pfd[1]);
     outsock = wrapsock(pfd[0]);
     outsock->readcb = hashread;
-    childcallback(hashjob, hashexit, NULL);
+    childcallback(hashjob, (void (*)(pid_t, int, void *))hashexit, outsock);
     return(0);
 }