Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(311)

Unified Diff: dhcpcd.c

Issue 2428004: Overhaul dhcpcd for chrome os use (Closed) Base URL: ssh://git@chromiumos-git//dhcpcd.git
Patch Set: purge hooks from configure to silence complaint Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « dbus-dict.c ('k') | dhcpcd.conf » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dhcpcd.c
diff --git a/dhcpcd.c b/dhcpcd.c
index 4e095e05c81f656563aca91d246ac59ea59ccf24..112002ce96817d963dbf94b8d1dd42a440d462ae 100644
--- a/dhcpcd.c
+++ b/dhcpcd.c
@@ -61,6 +61,7 @@ const char copyright[] = "Copyright (c) 2006-2009 Roy Marples";
#include "configure.h"
#include "control.h"
#include "dhcpcd.h"
+#include "dhcpcd-dbus.h"
#include "duid.h"
#include "eloop.h"
#include "if-options.h"
@@ -1298,7 +1299,6 @@ handle_ifa(int type, const char *ifname,
i, *dst);
}
ifp->state->reason = "STATIC";
- build_routes();
run_script(ifp);
if (ifo->options & DHCPCD_INFORM) {
ifp->state->state = DHS_INFORM;
@@ -1323,7 +1323,7 @@ handle_link(_unused void *arg)
}
/* ARGSUSED */
-static void
+void
handle_signal(_unused void *arg)
{
struct interface *iface, *ifl;
@@ -1420,64 +1420,6 @@ handle_args(struct fd_list *fd, int argc, char **argv)
struct iovec iov[2];
char *tmp, *p;
- if (fd != NULL) {
- /* Special commands for our control socket */
- if (strcmp(*argv, "--version") == 0) {
- len = strlen(VERSION) + 1;
- iov[0].iov_base = &len;
- iov[0].iov_len = sizeof(ssize_t);
- iov[1].iov_base = UNCONST(VERSION);
- iov[1].iov_len = len;
- if (writev(fd->fd, iov, 2) == -1) {
- syslog(LOG_ERR, "writev: %m");
- return -1;
- }
- return 0;
- } else if (strcmp(*argv, "--getconfigfile") == 0) {
- len = strlen(cffile ? cffile : CONFIG) + 1;
- iov[0].iov_base = &len;
- iov[0].iov_len = sizeof(ssize_t);
- iov[1].iov_base = cffile ? cffile : UNCONST(CONFIG);
- iov[1].iov_len = len;
- if (writev(fd->fd, iov, 2) == -1) {
- syslog(LOG_ERR, "writev: %m");
- return -1;
- }
- return 0;
- } else if (strcmp(*argv, "--getinterfaces") == 0) {
- len = 0;
- if (argc == 1) {
- for (ifp = ifaces; ifp; ifp = ifp->next)
- len++;
- len = write(fd->fd, &len, sizeof(len));
- if (len != sizeof(len))
- return -1;
- for (ifp = ifaces; ifp; ifp = ifp->next)
- send_interface(fd->fd, ifp);
- return 0;
- }
- opt = 0;
- while (argv[++opt] != NULL) {
- for (ifp = ifaces; ifp; ifp = ifp->next)
- if (strcmp(argv[opt], ifp->name) == 0)
- len++;
- }
- len = write(fd->fd, &len, sizeof(len));
- if (len != sizeof(len))
- return -1;
- opt = 0;
- while (argv[++opt] != NULL) {
- for (ifp = ifaces; ifp; ifp = ifp->next)
- if (strcmp(argv[opt], ifp->name) == 0)
- send_interface(fd->fd, ifp);
- }
- return 0;
- } else if (strcmp(*argv, "--listen") == 0) {
- fd->listener = 1;
- return 0;
- }
- }
-
/* Log the command */
len = 0;
for (opt = 0; opt < argc; opt++)
@@ -1575,7 +1517,7 @@ main(int argc, char **argv)
struct timespec ts;
closefrom(3);
- openlog(PACKAGE, LOG_PERROR, LOG_DAEMON);
+ openlog(PACKAGE, LOG_PID | LOG_PERROR, LOG_DAEMON);
setlogmask(LOG_UPTO(LOG_INFO));
/* Test for --help and --version */
@@ -1634,7 +1576,7 @@ main(int argc, char **argv)
options |= DHCPCD_TEST | DHCPCD_PERSISTENT;
options &= ~DHCPCD_DAEMONISE;
}
-
+
#ifdef THERE_IS_NO_FORK
options &= ~DHCPCD_DAEMONISE;
#endif
@@ -1717,9 +1659,7 @@ main(int argc, char **argv)
}
if (!(options & DHCPCD_TEST)) {
- if ((pid = read_pid()) > 0 &&
- kill(pid, 0) == 0)
- {
+ if ((pid = read_pid()) > 0 && kill(pid, 0) == 0) {
syslog(LOG_ERR, ""PACKAGE
" already running on pid %d (%s)",
pid, pidfile);
@@ -1771,6 +1711,10 @@ main(int argc, char **argv)
syslog(LOG_ERR, "init_socket: %m");
exit(EXIT_FAILURE);
}
+ if (dhcpcd_dbus_init() == -1) {
+ /* NB: dhcpcd_dbus_init generates a syslog msg */
+ exit(EXIT_FAILURE);
+ }
if (ifo->options & DHCPCD_LINK) {
linkfd = open_link_socket();
if (linkfd == -1)
« no previous file with comments | « dbus-dict.c ('k') | dhcpcd.conf » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698