activate: export make_socket_fd
Also improve logging to print out the parsed address on error.
This commit is contained in:
parent
6cf487afad
commit
e0aa372610
|
@ -59,25 +59,6 @@ static int add_epoll(int epoll_fd, int fd) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int make_socket_fd(const char* address, int flags) {
|
||||
SocketAddress a;
|
||||
int fd, r;
|
||||
|
||||
r = socket_address_parse(&a, address);
|
||||
if (r < 0) {
|
||||
log_error("Failed to parse socket: %s", strerror(-r));
|
||||
return r;
|
||||
}
|
||||
|
||||
fd = socket_address_listen(&a, flags, SOMAXCONN, SOCKET_ADDRESS_DEFAULT, NULL, false, false, 0755, 0644, NULL);
|
||||
if (fd < 0) {
|
||||
log_error("Failed to listen: %s", strerror(-r));
|
||||
return fd;
|
||||
}
|
||||
|
||||
return fd;
|
||||
}
|
||||
|
||||
static int open_sockets(int *epoll_fd, bool accept) {
|
||||
char **address;
|
||||
int n, fd, r;
|
||||
|
@ -119,7 +100,7 @@ static int open_sockets(int *epoll_fd, bool accept) {
|
|||
|
||||
STRV_FOREACH(address, arg_listen) {
|
||||
|
||||
fd = make_socket_fd(*address, SOCK_STREAM | (arg_accept*SOCK_CLOEXEC));
|
||||
fd = make_socket_fd(LOG_DEBUG, *address, SOCK_STREAM | (arg_accept*SOCK_CLOEXEC));
|
||||
if (fd < 0) {
|
||||
log_open();
|
||||
log_error("Failed to open '%s': %s", *address, strerror(-fd));
|
||||
|
|
|
@ -143,3 +143,33 @@ int socket_address_listen(
|
|||
|
||||
return r;
|
||||
}
|
||||
|
||||
int make_socket_fd(int log_level, const char* address, int flags) {
|
||||
SocketAddress a;
|
||||
int fd, r;
|
||||
|
||||
r = socket_address_parse(&a, address);
|
||||
if (r < 0) {
|
||||
log_error("Failed to parse socket: %s", strerror(-r));
|
||||
return r;
|
||||
}
|
||||
|
||||
fd = socket_address_listen(&a, flags, SOMAXCONN, SOCKET_ADDRESS_DEFAULT,
|
||||
NULL, false, false, 0755, 0644, NULL);
|
||||
if (fd < 0 || log_get_max_level() >= log_level) {
|
||||
char _cleanup_free_ *p = NULL;
|
||||
|
||||
r = socket_address_print(&a, &p);
|
||||
if (r < 0) {
|
||||
log_error("socket_address_print(): %s", strerror(-r));
|
||||
return r;
|
||||
}
|
||||
|
||||
if (fd < 0)
|
||||
log_error("Failed to listen on %s: %s", p, strerror(-r));
|
||||
else
|
||||
log_full(log_level, "Listening on %s", p);
|
||||
}
|
||||
|
||||
return fd;
|
||||
}
|
||||
|
|
|
@ -84,6 +84,7 @@ int socket_address_listen(
|
|||
mode_t directory_mode,
|
||||
mode_t socket_mode,
|
||||
const char *label);
|
||||
int make_socket_fd(int log_level, const char* address, int flags);
|
||||
|
||||
bool socket_address_is(const SocketAddress *a, const char *s, int type);
|
||||
bool socket_address_is_netlink(const SocketAddress *a, const char *s);
|
||||
|
|
Loading…
Reference in New Issue