]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - server.c
Merge branch 'refs/heads/t/format-signedness'
[paraslash.git] / server.c
index ae8848b6856732ae7d1d7fb034953f64b682aad1..1f93194474374e7450fec6a4895309c4529c5226 100644 (file)
--- a/server.c
+++ b/server.c
@@ -411,8 +411,9 @@ static int init_afs(int argc, char **argv)
 {
        int ret, afs_server_socket[2];
        pid_t afs_pid;
+       char c;
 
-       ret = socketpair(PF_UNIX, SOCK_DGRAM, 0, afs_server_socket);
+       ret = socketpair(PF_UNIX, SOCK_STREAM, 0, afs_server_socket);
        if (ret < 0)
                exit(EXIT_FAILURE);
        get_random_bytes_or_die((unsigned char *)&afs_socket_cookie,
@@ -422,6 +423,7 @@ static int init_afs(int argc, char **argv)
                exit(EXIT_FAILURE);
        if (afs_pid == 0) { /* child (afs) */
                int i;
+
                for (i = argc - 1; i >= 0; i--)
                        memset(argv[i], 0, strlen(argv[i]));
                sprintf(argv[0], "para_server (afs)");
@@ -430,6 +432,10 @@ static int init_afs(int argc, char **argv)
        }
        mmd->afs_pid = afs_pid;
        close(afs_server_socket[1]);
+       if (read(afs_server_socket[0], &c, 1) <= 0) {
+               PARA_EMERG_LOG("early afs exit\n");
+               exit(EXIT_FAILURE);
+       }
        ret = mark_fd_nonblocking(afs_server_socket[0]);
        if (ret < 0)
                exit(EXIT_FAILURE);
@@ -531,7 +537,7 @@ out:
        prev_uptime = uptime;
        prev_events = mmd->events;
        mmd->vss_status_flags = mmd->new_vss_status_flags;
-       PARA_DEBUG_LOG("%d events, forcing status update\n", mmd->events);
+       PARA_DEBUG_LOG("%u events, forcing status update\n", mmd->events);
        killpg(0, SIGUSR1);
 }