+/*
+ * This file is part of secnet.
+ * See README for full list of copyright holders.
+ *
+ * secnet is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * secnet is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * version 3 along with secnet; if not, see
+ * https://www.gnu.org/licenses/gpl.html.
+ */
+
#include "secnet.h"
#include <stdio.h>
#include <assert.h>
exit(0);
break;
+ case 'd':
+ message_level|=M_DEBUG_CONFIG|M_DEBUG_PHASE|M_DEBUG;
+ /* fall through */
case 'v':
message_level|=M_INFO|M_NOTICE|M_WARNING|M_ERR|M_SECURITY|
M_FATAL;
message_level&=(~M_WARNING);
break;
- case 'd':
- message_level|=M_DEBUG_CONFIG|M_DEBUG_PHASE|M_DEBUG;
- break;
-
case 'f':
message_level=M_FATAL;
break;
{
struct poll_interest *i;
- i=safe_malloc(sizeof(*i),"register_for_poll");
+ NEW(i);
i->before=before;
i->after=after;
i->state=st;
if (shortfall) {
allocdfds *= 2;
allocdfds += shortfall;
- fds=safe_realloc_ary(fds,sizeof(*fds),allocdfds, "run");
+ REALLOC_ARY(fds,allocdfds);
}
shortfall=0;
idx=0;
free(fds);
}
+bool_t will_droppriv(void)
+{
+ assert(current_phase >= PHASE_SETUP);
+ return !!uid;
+}
+
/* Surrender privileges, if necessary */
static void droppriv(void)
{
{
dict_t *config;
+ phase_hooks_init();
+
enter_phase(PHASE_GETOPTS);
parse_options(argc,argv);