X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Ftincd.c;h=566031a3ddeb170645e1a17736ae467fb023963e;hp=443301e083f178a501926dd0d383315463c2409b;hb=c4940a5c888d85b4c477b6face5e9a618e64718d;hpb=4712d8f92e63e86e835ffb624d6399343ee568ea diff --git a/src/tincd.c b/src/tincd.c index 443301e0..566031a3 100644 --- a/src/tincd.c +++ b/src/tincd.c @@ -337,16 +337,9 @@ static void indicator(int a, int b, void *p) { static bool keygen(int bits) { RSA *rsa_key; FILE *f; - char *name = NULL; + char *name = get_name(); char *filename; - get_config_string(lookup_config(config_tree, "Name"), &name); - - if(name && !check_id(name)) { - fprintf(stderr, "Invalid name for myself!\n"); - return false; - } - fprintf(stderr, "Generating %d bits keys:\n", bits); rsa_key = RSA_generate_key(bits, 0x10001, indicator, NULL); @@ -386,8 +379,7 @@ static bool keygen(int bits) { PEM_write_RSAPublicKey(f, rsa_key); fclose(f); free(filename); - if(name) - free(name); + free(name); return true; } @@ -475,8 +467,11 @@ static bool drop_privs() { "initgroups", strerror(errno)); return false; } +#ifndef __ANDROID__ +// Not supported in android NDK endgrent(); endpwent(); +#endif } if (do_chroot) { tzset(); /* for proper timestamps in logs */ @@ -539,6 +534,12 @@ int main(int argc, char **argv) { g_argv = argv; + if(getenv("LISTEN_PID") && atoi(getenv("LISTEN_PID")) == getpid()) + do_detach = false; +#ifdef HAVE_UNSETENV + unsetenv("LISTEN_PID"); +#endif + init_configuration(&config_tree); /* Slllluuuuuuurrrrp! */