aboutsummaryrefslogtreecommitdiffstats
path: root/dhcpcd.c
diff options
context:
space:
mode:
Diffstat (limited to 'dhcpcd.c')
-rw-r--r--dhcpcd.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/dhcpcd.c b/dhcpcd.c
index 15c087b..155c07b 100644
--- a/dhcpcd.c
+++ b/dhcpcd.c
@@ -1751,6 +1751,8 @@ main(int argc, char **argv)
struct timespec ts;
#ifdef ANDROID
+ /* Reuse system properties for a p2p interface */
+ char p2p_interface[PROPERTY_KEY_MAX];
switchUser();
#endif
closefrom(3);
@@ -1915,9 +1917,15 @@ main(int argc, char **argv)
exit(EXIT_FAILURE);
}
+ if (strncmp(argv[optind], "p2p", 3) == 0) {
+ strncpy(p2p_interface, "p2p", sizeof(p2p_interface));
+ } else {
+ strncpy(p2p_interface, argv[optind], sizeof(p2p_interface));
+ }
+
if (snprintf(pidpropname,
sizeof(pidpropname),
- "dhcp.%s.pid", argv[optind]) >= PROPERTY_KEY_MAX)
+ "dhcp.%s.pid", p2p_interface) >= PROPERTY_KEY_MAX)
exit(EXIT_FAILURE);
property_get(pidpropname, pidpropval, NULL);
if (strlen(pidpropval) == 0)
@@ -2000,9 +2008,15 @@ main(int argc, char **argv)
exit(EXIT_FAILURE);
}
+ if (strncmp(argv[optind], "p2p", 3) == 0) {
+ strncpy(p2p_interface, "p2p", sizeof(p2p_interface));
+ } else {
+ strncpy(p2p_interface, argv[optind], sizeof(p2p_interface));
+ }
+
if (snprintf(pidpropname,
sizeof(pidpropname),
- "dhcp.%s.pid", argv[optind]) >= PROPERTY_KEY_MAX)
+ "dhcp.%s.pid", p2p_interface) >= PROPERTY_KEY_MAX)
exit(EXIT_FAILURE);
if (snprintf(pidpropval, sizeof(pidpropval), "%d", getpid()) >= PROPERTY_VALUE_MAX)
exit(EXIT_FAILURE);