chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
execute: fix parsing of StandardError= setting
[elogind.git]
/
src
/
socket.c
diff --git
a/src/socket.c
b/src/socket.c
index 03d322ba00e59a64c191fa3742ef7c0589fd5565..909151752c7d3c9a035f1090e0b64e0d1b9c1eb9 100644
(file)
--- a/
src/socket.c
+++ b/
src/socket.c
@@
-58,7
+58,6
@@
static void socket_init(Unit *u) {
assert(u);
assert(u->meta.load_state == UNIT_STUB);
assert(u);
assert(u->meta.load_state == UNIT_STUB);
- s->timer_watch.type = WATCH_INVALID;
s->backlog = SOMAXCONN;
s->timeout_usec = DEFAULT_TIMEOUT_USEC;
s->directory_mode = 0755;
s->backlog = SOMAXCONN;
s->timeout_usec = DEFAULT_TIMEOUT_USEC;
s->directory_mode = 0755;
@@
-290,7
+289,7
@@
static void socket_dump(Unit *u, FILE *f, const char *prefix) {
"%sSocketMode: %04o\n"
"%sDirectoryMode: %04o\n",
prefix, socket_state_to_string(s->state),
"%sSocketMode: %04o\n"
"%sDirectoryMode: %04o\n",
prefix, socket_state_to_string(s->state),
- prefix,
yes_no
(s->bind_ipv6_only),
+ prefix,
socket_address_bind_ipv6_only_to_string
(s->bind_ipv6_only),
prefix, s->backlog,
prefix, kill_mode_to_string(s->kill_mode),
prefix, s->socket_mode,
prefix, s->backlog,
prefix, kill_mode_to_string(s->kill_mode),
prefix, s->socket_mode,
@@
-896,7
+895,7
@@
static void socket_enter_running(Socket *s, int cfd) {
Unit *u;
char *prefix, *instance, *name;
Unit *u;
char *prefix, *instance, *name;
- if ((r = instance_from_socket(cfd, s->n_accepted++, &instance)))
+ if ((r = instance_from_socket(cfd, s->n_accepted++, &instance))
< 0
)
goto fail;
if (!(prefix = unit_name_to_prefix(UNIT(s)->meta.id))) {
goto fail;
if (!(prefix = unit_name_to_prefix(UNIT(s)->meta.id))) {
@@
-909,8
+908,10
@@
static void socket_enter_running(Socket *s, int cfd) {
free(prefix);
free(instance);
free(prefix);
free(instance);
- if (!name)
+ if (!name)
{
r = -ENOMEM;
r = -ENOMEM;
+ goto fail;
+ }
r = manager_load_unit(UNIT(s)->meta.manager, name, NULL, &u);
free(name);
r = manager_load_unit(UNIT(s)->meta.manager, name, NULL, &u);
free(name);
@@
-918,7
+919,7
@@
static void socket_enter_running(Socket *s, int cfd) {
if (r < 0)
goto fail;
if (r < 0)
goto fail;
- if ((r = service_set_socket_fd(SERVICE(u), cfd)
< 0)
)
+ if ((r = service_set_socket_fd(SERVICE(u), cfd)
) < 0
)
goto fail;
cfd = -1;
goto fail;
cfd = -1;
@@
-1187,6
+1188,9
@@
static void socket_fd_event(Unit *u, int fd, uint32_t events, Watch *w) {
assert(s);
assert(fd >= 0);
assert(s);
assert(fd >= 0);
+ if (s->state != SOCKET_LISTENING)
+ return;
+
log_debug("Incoming traffic on %s", u->meta.id);
if (events != EPOLLIN) {
log_debug("Incoming traffic on %s", u->meta.id);
if (events != EPOLLIN) {