static char *sock_file = NULL;
static char *sock_group = NULL;
static int sock_perms = S_IRWXU | S_IRWXG;
-static _Bool delete_socket = 0;
+static bool delete_socket;
static pthread_t listen_thread = (pthread_t)0;
sock_fd = socket(PF_UNIX, SOCK_STREAM, 0);
if (sock_fd < 0) {
- char errbuf[1024];
- ERROR("unixsock plugin: socket failed: %s",
- sstrerror(errno, errbuf, sizeof(errbuf)));
+ ERROR("unixsock plugin: socket failed: %s", STRERRNO);
return -1;
}
errno = 0;
status = unlink(sa.sun_path);
if ((status != 0) && (errno != ENOENT)) {
- char errbuf[1024];
WARNING("unixsock plugin: Deleting socket file \"%s\" failed: %s",
- sa.sun_path, sstrerror(errno, errbuf, sizeof(errbuf)));
+ sa.sun_path, STRERRNO);
} else if (status == 0) {
INFO("unixsock plugin: Successfully deleted socket file \"%s\".",
sa.sun_path);
status = bind(sock_fd, (struct sockaddr *)&sa, sizeof(sa));
if (status != 0) {
- char errbuf[1024];
- sstrerror(errno, errbuf, sizeof(errbuf));
- ERROR("unixsock plugin: bind failed: %s", errbuf);
+ ERROR("unixsock plugin: bind failed: %s", STRERRNO);
close(sock_fd);
sock_fd = -1;
return -1;
status = chmod(sa.sun_path, sock_perms);
if (status == -1) {
- char errbuf[1024];
- ERROR("unixsock plugin: chmod failed: %s",
- sstrerror(errno, errbuf, sizeof(errbuf)));
+ ERROR("unixsock plugin: chmod failed: %s", STRERRNO);
close(sock_fd);
sock_fd = -1;
return -1;
status = listen(sock_fd, 8);
if (status != 0) {
- char errbuf[1024];
- ERROR("unixsock plugin: listen failed: %s",
- sstrerror(errno, errbuf, sizeof(errbuf)));
+ ERROR("unixsock plugin: listen failed: %s", STRERRNO);
close(sock_fd);
sock_fd = -1;
return -1;
status = getgrnam_r(grpname, &sg, grbuf, sizeof(grbuf), &g);
if (status != 0) {
- char errbuf[1024];
WARNING("unixsock plugin: getgrnam_r (%s) failed: %s", grpname,
- sstrerror(status, errbuf, sizeof(errbuf)));
+ STRERROR(status));
break;
}
if (g == NULL) {
if (chown((sock_file != NULL) ? sock_file : US_DEFAULT_PATH, (uid_t)-1,
g->gr_gid) != 0) {
- char errbuf[1024];
WARNING("unixsock plugin: chown (%s, -1, %i) failed: %s",
(sock_file != NULL) ? sock_file : US_DEFAULT_PATH, (int)g->gr_gid,
- sstrerror(errno, errbuf, sizeof(errbuf)));
+ STRERRNO);
}
} while (0);
fdout = dup(fdin);
if (fdout < 0) {
- char errbuf[1024];
- ERROR("unixsock plugin: dup failed: %s",
- sstrerror(errno, errbuf, sizeof(errbuf)));
+ ERROR("unixsock plugin: dup failed: %s", STRERRNO);
close(fdin);
pthread_exit((void *)1);
}
fhin = fdopen(fdin, "r");
if (fhin == NULL) {
- char errbuf[1024];
- ERROR("unixsock plugin: fdopen failed: %s",
- sstrerror(errno, errbuf, sizeof(errbuf)));
+ ERROR("unixsock plugin: fdopen failed: %s", STRERRNO);
close(fdin);
close(fdout);
pthread_exit((void *)1);
fhout = fdopen(fdout, "w");
if (fhout == NULL) {
- char errbuf[1024];
- ERROR("unixsock plugin: fdopen failed: %s",
- sstrerror(errno, errbuf, sizeof(errbuf)));
+ ERROR("unixsock plugin: fdopen failed: %s", STRERRNO);
fclose(fhin); /* this closes fdin as well */
close(fdout);
pthread_exit((void *)1);
/* change output buffer to line buffered mode */
if (setvbuf(fhout, NULL, _IOLBF, 0) != 0) {
- char errbuf[1024];
- ERROR("unixsock plugin: setvbuf failed: %s",
- sstrerror(errno, errbuf, sizeof(errbuf)));
+ ERROR("unixsock plugin: setvbuf failed: %s", STRERRNO);
fclose(fhin);
fclose(fhout);
pthread_exit((void *)1);
continue;
if (errno != 0) {
- char errbuf[1024];
WARNING("unixsock plugin: failed to read from socket #%i: %s",
- fileno(fhin), sstrerror(errno, errbuf, sizeof(errbuf)));
+ fileno(fhin), STRERRNO);
}
break;
}
cmd_handle_flush(fhout, buffer);
} else {
if (fprintf(fhout, "-1 Unknown command: %s\n", fields[0]) < 0) {
- char errbuf[1024];
WARNING("unixsock plugin: failed to write to socket #%i: %s",
- fileno(fhout), sstrerror(errno, errbuf, sizeof(errbuf)));
+ fileno(fhout), STRERRNO);
break;
}
}
DEBUG("unixsock plugin: Calling accept..");
status = accept(sock_fd, NULL, NULL);
if (status < 0) {
- char errbuf[1024];
if (errno == EINTR)
continue;
- ERROR("unixsock plugin: accept failed: %s",
- sstrerror(errno, errbuf, sizeof(errbuf)));
+ ERROR("unixsock plugin: accept failed: %s", STRERRNO);
close(sock_fd);
sock_fd = -1;
pthread_attr_destroy(&th_attr);
remote_fd = malloc(sizeof(*remote_fd));
if (remote_fd == NULL) {
- char errbuf[1024];
- WARNING("unixsock plugin: malloc failed: %s",
- sstrerror(errno, errbuf, sizeof(errbuf)));
+ WARNING("unixsock plugin: malloc failed: %s", STRERRNO);
close(status);
continue;
}
status = plugin_thread_create(&th, &th_attr, us_handle_client,
(void *)remote_fd, "unixsock conn");
if (status != 0) {
- char errbuf[1024];
- WARNING("unixsock plugin: pthread_create failed: %s",
- sstrerror(errno, errbuf, sizeof(errbuf)));
+ WARNING("unixsock plugin: pthread_create failed: %s", STRERRNO);
close(*remote_fd);
free(remote_fd);
continue;
status = unlink((sock_file != NULL) ? sock_file : US_DEFAULT_PATH);
if (status != 0) {
- char errbuf[1024];
NOTICE("unixsock plugin: unlink (%s) failed: %s",
- (sock_file != NULL) ? sock_file : US_DEFAULT_PATH,
- sstrerror(errno, errbuf, sizeof(errbuf)));
+ (sock_file != NULL) ? sock_file : US_DEFAULT_PATH, STRERRNO);
}
return (void *)0;
sock_perms = (int)strtol(val, NULL, 8);
} else if (strcasecmp(key, "DeleteSocket") == 0) {
if (IS_TRUE(val))
- delete_socket = 1;
+ delete_socket = true;
else
- delete_socket = 0;
+ delete_socket = false;
} else {
return -1;
}
status = plugin_thread_create(&listen_thread, NULL, us_server_thread, NULL,
"unixsock listen");
if (status != 0) {
- char errbuf[1024];
- ERROR("unixsock plugin: pthread_create failed: %s",
- sstrerror(errno, errbuf, sizeof(errbuf)));
+ ERROR("unixsock plugin: pthread_create failed: %s", STRERRNO);
return -1;
}