-static int socket_init(Name *n) {
- Socket *s = SOCKET(n);
- char *t;
- int r;
-
- /* First, reset everything to the defaults, in case this is a
- * reload */
-
- s->bind_ipv6_only = false;
- s->backlog = SOMAXCONN;
- s->timeout_usec = DEFAULT_TIMEOUT_USEC;
- exec_context_init(&s->exec_context);
-
- if ((r = name_load_fragment_and_dropin(n)) < 0)
- return r;
-
- if (!(t = name_change_suffix(name_id(n), ".service")))
- return -ENOMEM;
-
- r = manager_load_name(n->meta.manager, t, (Name**) &s->service);
- free(t);
-
- if (r < 0)
- return r;
-
- if ((r = set_ensure_allocated(n->meta.dependencies + NAME_BEFORE, trivial_hash_func, trivial_compare_func)) < 0)
- return r;
-
- if ((r = set_put(n->meta.dependencies[NAME_BEFORE], s->service)) < 0)
- return r;
-
- return 0;
-}
-