Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 2fdcf7e0fee03462def41aab17427fee > files > 32

dhcp-4.2.3-3.fc16.src.rpm

diff -up dhcp-4.2.3/server/dhcpd.c.paranoia dhcp-4.2.3/server/dhcpd.c
--- dhcp-4.2.3/server/dhcpd.c.paranoia	2011-10-26 19:10:08.162925489 +0200
+++ dhcp-4.2.3/server/dhcpd.c	2011-10-26 19:12:34.541095509 +0200
@@ -699,11 +699,11 @@ main(int argc, char **argv) {
 
 	group_write_hook = group_writer;
 
-	/* Start up the database... */
-	db_startup (lftest);
-
-	if (lftest)
+	if (lftest) {
+		/* Start up the database... */
+		db_startup (lftest);
 		exit (0);
+	}
 
 	/* Discover all the network interfaces and initialize them. */
 	discover_interfaces(DISCOVER_SERVER);
@@ -743,24 +743,6 @@ main(int argc, char **argv) {
 #if defined (TRACING)
 	trace_seed_stash (trace_srandom, seed + cur_time);
 #endif
-	postdb_startup ();
-
-#ifdef DHCPv6
-	/*
-	 * Set server DHCPv6 identifier.
-	 * See dhcpv6.c for discussion of setting DUID.
-	 */
-	if (set_server_duid_from_option() == ISC_R_SUCCESS) {
-		write_server_duid();
-	} else {
-		if (!server_duid_isset()) {
-			if (generate_new_server_duid() != ISC_R_SUCCESS) {
-				log_fatal("Unable to set server identifier.");
-			}
-			write_server_duid();
-		}
-	}
-#endif /* DHCPv6 */
 
 #ifndef DEBUG
 	if (daemon) {
@@ -771,22 +753,6 @@ main(int argc, char **argv) {
 			exit (0);
 	}
  
-#if defined (PARANOIA)
-	/* change uid to the specified one */
-
-	if (set_gid) {
-		if (setgroups (0, (void *)0))
-			log_fatal ("setgroups: %m");
-		if (setgid (set_gid))
-			log_fatal ("setgid(%d): %m", (int) set_gid);
-	}	
-
-	if (set_uid) {
-		if (setuid (set_uid))
-			log_fatal ("setuid(%d): %m", (int) set_uid);
-	}
-#endif /* PARANOIA */
-
 	/*
 	 * Deal with pid files.  If the user told us
 	 * not to write a file we don't read one either
@@ -823,6 +789,42 @@ main(int argc, char **argv) {
 		}
 	}
 
+#if defined (PARANOIA)
+	/* change uid to the specified one */
+
+	if (set_gid) {
+		if (setgroups (0, (void *)0))
+			log_fatal ("setgroups: %m");
+		if (setgid (set_gid))
+			log_fatal ("setgid(%d): %m", (int) set_gid);
+	}	
+
+	if (set_uid) {
+		if (setuid (set_uid))
+			log_fatal ("setuid(%d): %m", (int) set_uid);
+	}
+#endif /* PARANOIA */
+
+	db_startup(lftest);
+	postdb_startup ();
+
+#ifdef DHCPv6
+	/*
+	 * Set server DHCPv6 identifier.
+	 * See dhcpv6.c for discussion of setting DUID.
+	 */
+	if (set_server_duid_from_option() == ISC_R_SUCCESS) {
+		write_server_duid();
+	} else {
+		if (!server_duid_isset()) {
+			if (generate_new_server_duid() != ISC_R_SUCCESS) {
+				log_fatal("Unable to set server identifier.");
+			}
+			write_server_duid();
+		}
+	}
+#endif /* DHCPv6 */
+
 	/* If we were requested to log to stdout on the command line,
 	   keep doing so; otherwise, stop. */
 	if (log_perror == -1)