Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37580287
en ru br
ALT Linux repositórios
S:4.4.3.P1-alt1
5.0: 3.0.7-alt1
4.1: 3.0.6-alt2.M41.1
4.0: 3.0.6-alt1
3.0: 3.0.2-alt1

Group :: Sistema/Servidores
RPM: dhcp

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: 0022-dhcpd-and-dhcrelay-Override-default-user-jail-dir-an.patch
Download


From 0 Mon Sep 17 00:00:00 2001
From: Mikhail Efremov <sem@altlinux.org>
Date: Fri, 23 Nov 2012 18:11:14 +0400
Subject: [PATCH 22] dhcpd and dhcrelay: Override default user, jail dir and
 config for DHCPv6.
diff --git a/dhcp/relay/dhcrelay.c b/dhcp/relay/dhcrelay.c
index defaced..defaced 100644
--- a/dhcp/relay/dhcrelay.c
+++ b/dhcp/relay/dhcrelay.c
@@ -297,6 +297,9 @@ main(int argc, char **argv) {
 #endif
 	char *server_user = "dhcrelay";
 	char *server_jail = "/var/empty";
+	/* DHCPv6 defaults */
+	char *server_user_6 = "dhcrelay6";
+	int no_server_user = 0;
 #ifdef DHCPv6
 	struct stream_list *sl = NULL;
 	int local_family_set = 0;
@@ -510,6 +513,7 @@ main(int argc, char **argv) {
 			if (++i == argc)
 				usage(use_noarg, argv[i-1]);
 			server_user = argv[i];
+			no_server_user = 1;
 		} else if (!strcmp (argv [i], "-j")) {
 			if (++i == argc)
 				usage(use_noarg, argv[i-1]);
@@ -708,6 +712,12 @@ main(int argc, char **argv) {
 	} else
 		log_perror = 0;
 
+#ifdef DHCPv6
+	/* DHCPv6: Override default user */
+	if (local_family == AF_INET6 && !no_server_user)
+		server_user = server_user_6;
+#endif
+
 	/* Set default port */
 	if (local_family == AF_INET) {
  		service_local = "bootps";
diff --git a/dhcp/server/dhcpd.c b/dhcp/server/dhcpd.c
index defaced..defaced 100644
--- a/dhcp/server/dhcpd.c
+++ b/dhcp/server/dhcpd.c
@@ -288,6 +288,12 @@ main(int argc, char **argv) {
 #endif
 	char *server_user = "dhcpd";
 	char *server_jail = "/var/lib/dhcp/dhcpd";
+	/* IPv6 defaults */
+	char *server_user_6 = "dhcpd6";
+	char *server_jail_6  = "/var/lib/dhcp/dhcpd6";
+	char *path_dhcpd_conf_6 = "/etc/dhcpd6.conf";
+	int no_server_user = 0;
+	int no_server_jail = 0;
 
 #if defined (PARANOIA)
 	char *set_user   = 0;
@@ -533,10 +539,12 @@ main(int argc, char **argv) {
 			if (++i == argc)
 				usage(use_noarg, argv[i-1]);
 			server_user = argv[i];
+			no_server_user = 1;
 		} else if (!strcmp (argv [i], "-j")) {
 			if (++i == argc)
 				usage(use_noarg, argv[i-1]);
 			server_jail = argv[i];
+			no_server_jail = 1;
 #if defined (TRACING)
 		} else if (!strcmp (argv [i], "-tf")) {
 			if (++i == argc)
@@ -585,8 +593,13 @@ main(int argc, char **argv) {
 	}
 #endif /* DHCPv6 && DHCP4o6 */
 
-	if (!have_dhcpd_conf && (s = getenv ("PATH_DHCPD_CONF"))) {
-		path_dhcpd_conf = s;
+	if (!have_dhcpd_conf) {
+		if ((s = getenv ("PATH_DHCPD_CONF")))
+			path_dhcpd_conf = s;
+#ifdef DHCPv6
+		else if (local_family == AF_INET6)
+			path_dhcpd_conf = path_dhcpd_conf_6;
+#endif /* DHCPv6 */
 	}
 
 #ifdef DHCPv6
@@ -604,6 +617,11 @@ main(int argc, char **argv) {
                         else
 		                path_dhcpd_pid = _PATH_DHCPD6_PID;
 	        }
+			/* DHCPv6: Override default user and jail dir */
+			if (!no_server_user)
+				server_user = server_user_6;
+			if (!no_server_jail)
+				server_jail = server_jail_6;
         } else
 #endif /* DHCPv6 */
         {
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009