chiark
/
gitweb
/
~mdw
/
tripe
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
server/: Make initialization errors be non-fatal and restartable.
[tripe]
/
server
/
standalone.c
diff --git
a/server/standalone.c
b/server/standalone.c
index 9b4976cb298d3da593a6fec59051042a9173ae46..b6f348764eceac7030ea4b1ec976aaaa5a428ed6 100644
(file)
--- a/
server/standalone.c
+++ b/
server/standalone.c
@@
-287,22
+287,23
@@
int main(int argc, char *argv[])
p_init();
for (i = 0; i < N(tunnels); i++)
p_init();
for (i = 0; i < N(tunnels); i++)
-
p_addtun(tunnels[i]
);
+
if (p_addtun(tunnels[i])) exit(EXIT_FAILURE
);
if (dflt) p_setdflttun(dflt);
if (dflt) p_setdflttun(dflt);
- p_bind(ailist); freeaddrinfo(ailist);
+ if (p_bind(ailist)) exit(EXIT_FAILURE);
+ freeaddrinfo(ailist);
for (i = 0; tunnels[i]; i++) {
if (tunnels[i]->flags&TUNF_PRIVOPEN) {
for (i = 0; tunnels[i]; i++) {
if (tunnels[i]->flags&TUNF_PRIVOPEN) {
-
ps_split(f & f_daemon
);
+
if (ps_split(f & f_daemon)) exit(EXIT_FAILURE
);
break;
}
}
break;
}
}
-
a_init(
);
+
if (a_init()) exit(EXIT_FAILURE
);
a_signals();
a_signals();
-
a_listen(csock, u, g, csockmode
);
+
if (a_listen(csock, u, g, csockmode)) exit(EXIT_FAILURE
);
u_setugid(u, g);
u_setugid(u, g);
-
km_init(kr_priv, kr_pub, tag_priv
);
+
if (km_init(kr_priv, kr_pub, tag_priv)) exit(EXIT_FAILURE
);
kx_init();
if (f & f_daemon) {
if (daemonize()) {
kx_init();
if (f & f_daemon) {
if (daemonize()) {