Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/external/bsd/dhcpcd/dist sync
details: https://anonhg.NetBSD.org/src/rev/a6bdcf1123ac
branches: trunk
changeset: 787515:a6bdcf1123ac
user: roy <roy%NetBSD.org@localhost>
date: Fri Jun 21 19:40:20 2013 +0000
description:
sync
diffstat:
external/bsd/dhcpcd/dist/bind.c | 237 --
external/bsd/dhcpcd/dist/bind.h | 39 -
external/bsd/dhcpcd/dist/bpf-filter.h | 2 +
external/bsd/dhcpcd/dist/configure.c | 834 ---------
external/bsd/dhcpcd/dist/configure.h | 40 -
external/bsd/dhcpcd/dist/dhcp.c | 2187 ++++++++++++++++++-----
external/bsd/dhcpcd/dist/dhcpcd-run-hooks.8.in | 25 +-
external/bsd/dhcpcd/dist/dhcpcd.8.in | 33 +-
external/bsd/dhcpcd/dist/dhcpcd.conf | 29 +-
external/bsd/dhcpcd/dist/signals.c | 124 -
external/bsd/dhcpcd/dist/signals.h | 36 -
11 files changed, 1753 insertions(+), 1833 deletions(-)
diffs (truncated from 4226 to 300 lines):
diff -r 70aea25b8770 -r a6bdcf1123ac external/bsd/dhcpcd/dist/bind.c
--- a/external/bsd/dhcpcd/dist/bind.c Fri Jun 21 19:33:06 2013 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,237 +0,0 @@
-/*
- * dhcpcd - DHCP client daemon
- * Copyright (c) 2006-2010 Roy Marples <roy%marples.name@localhost>
- * All rights reserved
-
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/param.h>
-#include <sys/time.h>
-
-#include <fcntl.h>
-#ifdef BSD
-# include <paths.h>
-#endif
-#include <signal.h>
-#include <stdlib.h>
-#include <syslog.h>
-#include <unistd.h>
-
-#include "arp.h"
-#include "bind.h"
-#include "common.h"
-#include "configure.h"
-#include "dhcpcd.h"
-#include "eloop.h"
-#include "if-options.h"
-#include "net.h"
-#include "signals.h"
-
-#ifndef _PATH_DEVNULL
-# define _PATH_DEVNULL "/dev/null"
-#endif
-
-/* We do things after aquiring the lease, so ensure we have enough time for them */
-#define DHCP_MIN_LEASE 20
-
-#ifndef THERE_IS_NO_FORK
-pid_t
-daemonise(void)
-{
- pid_t pid;
- sigset_t full;
- sigset_t old;
- char buf = '\0';
- int sidpipe[2], fd;
-
- if (options & DHCPCD_DAEMONISED || !(options & DHCPCD_DAEMONISE))
- return 0;
- sigfillset(&full);
- sigprocmask(SIG_SETMASK, &full, &old);
- /* Setup a signal pipe so parent knows when to exit. */
- if (pipe(sidpipe) == -1) {
- syslog(LOG_ERR, "pipe: %m");
- return -1;
- }
- syslog(LOG_DEBUG, "forking to background");
- switch (pid = fork()) {
- case -1:
- syslog(LOG_ERR, "fork: %m");
- exit(EXIT_FAILURE);
- /* NOTREACHED */
- case 0:
- setsid();
- /* Notify parent it's safe to exit as we've detached. */
- close(sidpipe[0]);
- if (write(sidpipe[1], &buf, 1) == -1)
- syslog(LOG_ERR, "failed to notify parent: %m");
- close(sidpipe[1]);
- if ((fd = open(_PATH_DEVNULL, O_RDWR, 0)) != -1) {
- dup2(fd, STDIN_FILENO);
- dup2(fd, STDOUT_FILENO);
- dup2(fd, STDERR_FILENO);
- close(fd);
- }
- break;
- default:
- signal_reset();
- /* Wait for child to detach */
- close(sidpipe[1]);
- if (read(sidpipe[0], &buf, 1) == -1)
- syslog(LOG_ERR, "failed to read child: %m");
- close(sidpipe[0]);
- break;
- }
- /* Done with the fd now */
- if (pid != 0) {
- syslog(LOG_INFO, "forked to background, child pid %d",pid);
- writepid(pidfd, pid);
- close(pidfd);
- pidfd = -1;
- options |= DHCPCD_FORKED;
- exit(EXIT_SUCCESS);
- }
- options |= DHCPCD_DAEMONISED;
- sigprocmask(SIG_SETMASK, &old, NULL);
- return pid;
-}
-#endif
-
-void
-bind_interface(void *arg)
-{
- struct interface *iface = arg;
- struct if_state *state = iface->state;
- struct if_options *ifo = state->options;
- struct dhcp_lease *lease = &state->lease;
- struct timeval tv;
-
- /* We're binding an address now - ensure that sockets are closed */
- close_sockets(iface);
- state->reason = NULL;
- delete_timeout(handle_exit_timeout, NULL);
- if (clock_monotonic)
- get_monotonic(&lease->boundtime);
- state->xid = 0;
- free(state->old);
- state->old = state->new;
- state->new = state->offer;
- state->offer = NULL;
- get_lease(lease, state->new);
- if (ifo->options & DHCPCD_STATIC) {
- syslog(LOG_INFO, "%s: using static address %s",
- iface->name, inet_ntoa(lease->addr));
- lease->leasetime = ~0U;
- lease->net.s_addr = ifo->req_mask.s_addr;
- state->reason = "STATIC";
- } else if (state->new->cookie != htonl(MAGIC_COOKIE)) {
- syslog(LOG_INFO, "%s: using IPv4LL address %s",
- iface->name, inet_ntoa(lease->addr));
- lease->leasetime = ~0U;
- state->reason = "IPV4LL";
- } else if (ifo->options & DHCPCD_INFORM) {
- if (ifo->req_addr.s_addr != 0)
- lease->addr.s_addr = ifo->req_addr.s_addr;
- else
- lease->addr.s_addr = iface->addr.s_addr;
- syslog(LOG_INFO, "%s: received approval for %s", iface->name,
- inet_ntoa(lease->addr));
- lease->leasetime = ~0U;
- state->reason = "INFORM";
- } else {
- if (gettimeofday(&tv, NULL) == 0)
- lease->leasedfrom = tv.tv_sec;
- else if (lease->frominfo)
- state->reason = "TIMEOUT";
- if (lease->leasetime == ~0U) {
- lease->renewaltime =
- lease->rebindtime =
- lease->leasetime;
- syslog(LOG_INFO, "%s: leased %s for infinity",
- iface->name, inet_ntoa(lease->addr));
- } else {
- if (lease->leasetime < DHCP_MIN_LEASE) {
- syslog(LOG_WARNING,
- "%s: minimum lease is %d seconds",
- iface->name, DHCP_MIN_LEASE);
- lease->leasetime = DHCP_MIN_LEASE;
- }
- if (lease->rebindtime == 0)
- lease->rebindtime = lease->leasetime * T2;
- else if (lease->rebindtime >= lease->leasetime) {
- lease->rebindtime = lease->leasetime * T2;
- syslog(LOG_ERR,
- "%s: rebind time greater than lease "
- "time, forcing to %u seconds",
- iface->name, lease->rebindtime);
- }
- if (lease->renewaltime == 0)
- lease->renewaltime = lease->leasetime * T1;
- else if (lease->renewaltime > lease->rebindtime) {
- lease->renewaltime = lease->leasetime * T1;
- syslog(LOG_ERR,
- "%s: renewal time greater than rebind "
- "time, forcing to %u seconds",
- iface->name, lease->renewaltime);
- }
- syslog(LOG_INFO,
- "%s: leased %s for %u seconds", iface->name,
- inet_ntoa(lease->addr), lease->leasetime);
- }
- }
- if (options & DHCPCD_TEST) {
- state->reason = "TEST";
- run_script(iface);
- exit(EXIT_SUCCESS);
- }
- if (state->reason == NULL) {
- if (state->old) {
- if (state->old->yiaddr == state->new->yiaddr &&
- lease->server.s_addr)
- state->reason = "RENEW";
- else
- state->reason = "REBIND";
- } else if (state->state == DHS_REBOOT)
- state->reason = "REBOOT";
- else
- state->reason = "BOUND";
- }
- if (lease->leasetime == ~0U)
- lease->renewaltime = lease->rebindtime = lease->leasetime;
- else {
- add_timeout_sec(lease->renewaltime, start_renew, iface);
- add_timeout_sec(lease->rebindtime, start_rebind, iface);
- add_timeout_sec(lease->leasetime, start_expire, iface);
- syslog(LOG_DEBUG,
- "%s: renew in %u seconds, rebind in %u seconds",
- iface->name, lease->renewaltime, lease->rebindtime);
- }
- ifo->options &= ~ DHCPCD_CSR_WARNED;
- configure(iface);
- daemonise();
- state->state = DHS_BOUND;
- if (ifo->options & DHCPCD_ARP) {
- state->claims = 0;
- send_arp_announce(iface);
- }
-}
diff -r 70aea25b8770 -r a6bdcf1123ac external/bsd/dhcpcd/dist/bind.h
--- a/external/bsd/dhcpcd/dist/bind.h Fri Jun 21 19:33:06 2013 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
- * dhcpcd - DHCP client daemon
- * Copyright (c) 2006-2008 Roy Marples <roy%marples.name@localhost>
- * All rights reserved
-
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef BIND_H
-#define BIND_H
-
-#include "config.h"
-#ifdef THERE_IS_NO_FORK
-# define daemonise() {}
-#else
-pid_t daemonise(void);
-#endif
-
-void bind_interface(void *);
-#endif
diff -r 70aea25b8770 -r a6bdcf1123ac external/bsd/dhcpcd/dist/bpf-filter.h
--- a/external/bsd/dhcpcd/dist/bpf-filter.h Fri Jun 21 19:33:06 2013 +0000
+++ b/external/bsd/dhcpcd/dist/bpf-filter.h Fri Jun 21 19:40:20 2013 +0000
@@ -1,3 +1,5 @@
+/* $NetBSD: bpf-filter.h,v 1.3 2013/06/21 19:40:20 roy Exp $ */
+
/*
* dhcpcd - DHCP client daemon
* Copyright (c) 2006-2008 Roy Marples <roy%marples.name@localhost>
diff -r 70aea25b8770 -r a6bdcf1123ac external/bsd/dhcpcd/dist/configure.c
--- a/external/bsd/dhcpcd/dist/configure.c Fri Jun 21 19:33:06 2013 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,834 +0,0 @@
-/*
- * dhcpcd - DHCP client daemon
- * Copyright (c) 2006-2012 Roy Marples <roy%marples.name@localhost>
Home |
Main Index |
Thread Index |
Old Index