commit 63bcbc09cf32cd8d7485933bce79ede8f64a656c from: Stefan Sperling date: Tue Sep 26 13:40:59 2023 UTC only create nsh database in privileged mode Avoids noisy warnings on startup as a regular user when the database does not exist yet. commit - b617ed0565d621d5b12fd717d75dc24d23958046 commit + 63bcbc09cf32cd8d7485933bce79ede8f64a656c blob - 1ee7b665550a2e31deb6852b908d2c6b7beb8124 blob + 5ac4ac0033e7778afc6cfc5541952605609804d1 --- main.c +++ main.c @@ -148,6 +148,32 @@ load_userenv(void) fclose(f); } +static void +create_db(void) +{ + /* create temporal tables (if they aren't already there) */ + if (db_create_table_rtables() < 0) + printf("%% database rtables creation failed\n"); + if (db_create_table_flag_x("ctl") < 0) + printf("%% database ctl creation failed\n"); + if (db_create_table_flag_x("dhcrelay") < 0) + printf("%% database dhcrelay creation failed\n"); + if (db_create_table_flag_x("ipv6linklocal") < 0) + printf("%% database ipv6linklocal creation failed\n"); + if (db_create_table_flag_x("lladdr") < 0) + printf("%% database lladdr creation failed\n"); + if (db_create_table_flag_x("authkey") < 0) + printf("%% database authkey creation failed\n"); + if (db_create_table_flag_x("peerkey") < 0) + printf("%% database peerkey creation failed\n"); + if (db_create_table_nameservers() < 0) + printf("%% database nameservers creation failed\n"); + if (db_create_table_flag_x("pppoeipaddrmode") < 0) + printf("%% database pppoeipaddrmode creation failed\n"); + if (db_create_table_flag_x("pin") < 0) + printf("%% database pin creation failed\n"); +} + int main(int argc, char *argv[]) { @@ -223,34 +249,14 @@ main(int argc, char *argv[]) } } - /* create temporal tables (if they aren't already there) */ - if (db_create_table_rtables() < 0) - printf("%% database rtables creation failed\n"); - if (db_create_table_flag_x("ctl") < 0) - printf("%% database ctl creation failed\n"); - if (db_create_table_flag_x("dhcrelay") < 0) - printf("%% database dhcrelay creation failed\n"); - if (db_create_table_flag_x("ipv6linklocal") < 0) - printf("%% database ipv6linklocal creation failed\n"); - if (db_create_table_flag_x("lladdr") < 0) - printf("%% database lladdr creation failed\n"); - if (db_create_table_flag_x("authkey") < 0) - printf("%% database authkey creation failed\n"); - if (db_create_table_flag_x("peerkey") < 0) - printf("%% database peerkey creation failed\n"); - if (db_create_table_nameservers() < 0) - printf("%% database nameservers creation failed\n"); - if (db_create_table_flag_x("pppoeipaddrmode") < 0) - printf("%% database pppoeipaddrmode creation failed\n"); - if (db_create_table_flag_x("pin") < 0) - printf("%% database pin creation failed\n"); - if (iflag) { /* * Interpret config file and exit */ priv = 1; + create_db(); + /* * Set carp group carpdemote to 128 during initialization */ @@ -271,6 +277,8 @@ main(int argc, char *argv[]) */ priv = 1; + create_db(); + cmdrc(rc); exit(0); @@ -294,6 +302,9 @@ main(int argc, char *argv[]) priv = 1; } + if (priv) + create_db(); + load_userenv(); top = setjmp(toplevel) == 0;