06_Unix-Domain-Sockets.diff
[paraslash.git] / afs.c
diff --git a/afs.c b/afs.c
index b9243a4169b16addf95a010ba580ea8170acd24c..ac7884c7e4e4c959a3ce3b1c17d050705a70b394 100644 (file)
--- a/afs.c
+++ b/afs.c
@@ -164,7 +164,6 @@ int send_callback_request(callback_function *f, struct osl_object *query,
        int ret, fd = -1, query_shmid, result_shmid;
        void *query_shm, *result_shm;
        char buf[sizeof(afs_socket_cookie) + sizeof(int)];
-       struct sockaddr_un unix_addr;
        size_t query_shm_size = sizeof(*cq);
 
        if (query)
@@ -189,16 +188,10 @@ int send_callback_request(callback_function *f, struct osl_object *query,
        *(uint32_t *) buf = afs_socket_cookie;
        *(int *) (buf + sizeof(afs_socket_cookie)) = query_shmid;
 
-       ret = get_stream_socket(PF_UNIX);
+       ret = create_remote_socket(conf.afs_socket_arg);
        if (ret < 0)
                goto out;
        fd = ret;
-       ret = init_unix_addr(&unix_addr, conf.afs_socket_arg);
-       if (ret < 0)
-               goto out;
-       ret = PARA_CONNECT(fd, &unix_addr);
-       if (ret < 0)
-               goto out;
        ret = send_bin_buffer(fd, buf, sizeof(buf));
        if (ret < 0)
                goto out;
@@ -206,7 +199,7 @@ int send_callback_request(callback_function *f, struct osl_object *query,
        if (ret < 0)
                goto out;
        if (ret != sizeof(int)) {
-               ret = -E_RECV;
+               ret = -E_AFS_SHORT_READ;
                goto out;
        }
        ret = *(int *) buf;
@@ -641,7 +634,7 @@ static int setup_command_socket_or_die(void)
                PARA_EMERG_LOG("can not listen on socket\n");
                exit(EXIT_FAILURE);
        }
-       ret = mark_fd_nonblock(socket_fd);
+       ret = mark_fd_nonblocking(socket_fd);
        if (ret < 0) {
                close(socket_fd);
                return ret;
@@ -936,7 +929,7 @@ static void command_post_select(struct sched *s, struct task *t)
                goto out;
        }
        fd = t->ret;
-       t->ret = mark_fd_nonblock(fd);
+       t->ret = mark_fd_nonblocking(fd);
        if (t->ret < 0) {
                PARA_NOTICE_LOG("%s\n", PARA_STRERROR(-t->ret));
                close(fd);
@@ -990,7 +983,7 @@ __noreturn void afs_init(uint32_t cookie, int socket_fd)
                exit(EXIT_FAILURE);
        }
        server_socket = socket_fd;
-       ret = mark_fd_nonblock(server_socket);
+       ret = mark_fd_nonblocking(server_socket);
        if (ret < 0)
                exit(EXIT_FAILURE);
        PARA_INFO_LOG("server_socket: %d, afs_socket_cookie: %u\n",