X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=afs.c;h=7f27b7dd2653d79a0a7679da3e80d2d9c55e37ac;hp=0accc45108f7c6ba0c2a3a89595d957d8a566920;hb=4d067435b1167dbf5217c875ac9fd7ac69ad91bd;hpb=048c921d16110d350572698c22033d51b091ce1b diff --git a/afs.c b/afs.c index 0accc451..7f27b7dd 100644 --- a/afs.c +++ b/afs.c @@ -649,15 +649,10 @@ static int setup_command_socket_or_die(void) char *socket_name = conf.afs_socket_arg; unlink(socket_name); - ret = create_local_socket(socket_name, 0); + ret = create_local_socket(socket_name); if (ret < 0) { - ret = create_local_socket(socket_name, - S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IROTH); - if (ret < 0) { - PARA_EMERG_LOG("%s: %s\n", para_strerror(-ret), - socket_name); - exit(EXIT_FAILURE); - } + PARA_EMERG_LOG("%s: %s\n", para_strerror(-ret), socket_name); + exit(EXIT_FAILURE); } socket_fd = ret; PARA_INFO_LOG("listening on socket %s (fd %d)\n", socket_name, @@ -706,7 +701,7 @@ static int open_afs_tables(void) int i, ret; get_database_dir(); - PARA_NOTICE_LOG("opening %u osl tables in %s\n", NUM_AFS_TABLES, + PARA_NOTICE_LOG("opening %d osl tables in %s\n", NUM_AFS_TABLES, database_dir); for (i = 0; i < NUM_AFS_TABLES; i++) { ret = afs_tables[i].open(database_dir); @@ -1024,6 +1019,13 @@ __noreturn void afs_init(uint32_t cookie, int socket_fd) register_command_task(cookie, &s); s.default_timeout.tv_sec = 0; s.default_timeout.tv_usec = 999 * 1000; + ret = write(socket_fd, "\0", 1); + if (ret != 1) { + if (ret == 0) + errno = EINVAL; + ret = -ERRNO_TO_PARA_ERROR(errno); + goto out_close; + } ret = schedule(&s); sched_shutdown(&s); out_close: @@ -1195,7 +1197,7 @@ __must_check int afs_event(enum afs_events event, struct para_buffer *pb, continue; ret = t->event_handler(event, pb, data); if (ret < 0) { - PARA_CRIT_LOG("table %s, event %d: %s\n", t->name, + PARA_CRIT_LOG("table %s, event %u: %s\n", t->name, event, para_strerror(-ret)); return ret; }