Blob Blame History Raw
diff --git a/radvd.c b/radvd.c
index 07a64a1..9f86cf6 100644
--- a/radvd.c
+++ b/radvd.c
@@ -346,6 +346,15 @@ int main(int argc, char *argv[])
 		flog(LOG_WARNING, "IPv6 forwarding seems to be disabled, but continuing anyway");
 	}
 
+	if (username) {
+		if (drop_root_privileges(username) < 0) {
+			perror("drop_root_privileges");
+			flog(LOG_ERR, "unable to drop root privileges");
+			exit(1);
+		}
+		dlog(LOG_DEBUG, 3, "running as user: %s", username);
+	}
+
 	int const pidfd = open_and_lock_pid_file(daemon_pid_file_ident);
 
 	/*
@@ -421,15 +430,6 @@ int main(int argc, char *argv[])
 	}
 #endif
 
-	if (username) {
-		if (drop_root_privileges(username) < 0) {
-			perror("drop_root_privileges");
-			flog(LOG_ERR, "unable to drop root privileges");
-			exit(1);
-		}
-		dlog(LOG_DEBUG, 3, "running as user: %s", username);
-	}
-
 	setup_ifaces(sock, ifaces);
 	ifaces = main_loop(sock, ifaces, conf_path);
 	stop_adverts(sock, ifaces);