udhcp: cosmetic cleanups; one case of s/full_read/xread/
function old new delta dumpleases_main 632 623 -9 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
968951fd0c
commit
385b4562e3
@ -1,7 +1,5 @@
|
|||||||
/* vi: set sw=4 ts=4: */
|
/* vi: set sw=4 ts=4: */
|
||||||
/*
|
/*
|
||||||
* arpping.c
|
|
||||||
*
|
|
||||||
* Mostly stolen from: dhcpcd - DHCP client daemon
|
* Mostly stolen from: dhcpcd - DHCP client daemon
|
||||||
* by Yoichi Hariguchi <yoichi@fore.com>
|
* by Yoichi Hariguchi <yoichi@fore.com>
|
||||||
*
|
*
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
/* vi: set sw=4 ts=4: */
|
/* vi: set sw=4 ts=4: */
|
||||||
/* common.h
|
/*
|
||||||
*
|
|
||||||
* Russ Dill <Russ.Dill@asu.edu> September 2001
|
* Russ Dill <Russ.Dill@asu.edu> September 2001
|
||||||
* Rewritten by Vladimir Oleynik <dzo@simtreas.ru> (C) 2003
|
* Rewritten by Vladimir Oleynik <dzo@simtreas.ru> (C) 2003
|
||||||
*
|
*
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* vi: set sw=4 ts=4: */
|
/* vi: set sw=4 ts=4: */
|
||||||
/*
|
/*
|
||||||
* udhcp DHCP client
|
* udhcp client
|
||||||
*
|
*
|
||||||
* Russ Dill <Russ.Dill@asu.edu> July 2001
|
* Russ Dill <Russ.Dill@asu.edu> July 2001
|
||||||
*
|
*
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
/* vi: set sw=4 ts=4: */
|
/* vi: set sw=4 ts=4: */
|
||||||
|
/*
|
||||||
|
* Licensed under GPLv2, see file LICENSE in this tarball for details.
|
||||||
|
*/
|
||||||
#ifndef UDHCP_DHCPC_H
|
#ifndef UDHCP_DHCPC_H
|
||||||
#define UDHCP_DHCPC_H 1
|
#define UDHCP_DHCPC_H 1
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* vi: set sw=4 ts=4: */
|
/* vi: set sw=4 ts=4: */
|
||||||
/*
|
/*
|
||||||
* udhcp Server
|
* udhcp server
|
||||||
* Copyright (C) 1999 Matthew Ramsay <matthewr@moreton.com.au>
|
* Copyright (C) 1999 Matthew Ramsay <matthewr@moreton.com.au>
|
||||||
* Chris Trew <ctrew@moreton.com.au>
|
* Chris Trew <ctrew@moreton.com.au>
|
||||||
*
|
*
|
||||||
@ -20,7 +20,6 @@
|
|||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <syslog.h>
|
#include <syslog.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "dhcpc.h"
|
#include "dhcpc.h"
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
/* vi: set sw=4 ts=4: */
|
/* vi: set sw=4 ts=4: */
|
||||||
/* dhcpd.h */
|
/*
|
||||||
|
* Licensed under GPLv2, see file LICENSE in this tarball for details.
|
||||||
|
*/
|
||||||
#ifndef UDHCP_DHCPD_H
|
#ifndef UDHCP_DHCPD_H
|
||||||
#define UDHCP_DHCPD_H 1
|
#define UDHCP_DHCPD_H 1
|
||||||
|
|
||||||
@ -65,8 +67,6 @@ struct server_config_t {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*** leases.h ***/
|
|
||||||
|
|
||||||
typedef uint32_t leasetime_t;
|
typedef uint32_t leasetime_t;
|
||||||
typedef int32_t signed_leasetime_t;
|
typedef int32_t signed_leasetime_t;
|
||||||
|
|
||||||
@ -101,8 +101,6 @@ struct dyn_lease *find_lease_by_nip(uint32_t nip) FAST_FUNC;
|
|||||||
uint32_t find_free_or_expired_nip(const uint8_t *safe_mac) FAST_FUNC;
|
uint32_t find_free_or_expired_nip(const uint8_t *safe_mac) FAST_FUNC;
|
||||||
|
|
||||||
|
|
||||||
/*** static_leases.h ***/
|
|
||||||
|
|
||||||
/* Config file parser will pass static lease info to this function
|
/* Config file parser will pass static lease info to this function
|
||||||
* which will add it to a data structure that can be searched later */
|
* which will add it to a data structure that can be searched later */
|
||||||
void add_static_lease(struct static_lease **st_lease_pp, uint8_t *mac, uint32_t nip) FAST_FUNC;
|
void add_static_lease(struct static_lease **st_lease_pp, uint8_t *mac, uint32_t nip) FAST_FUNC;
|
||||||
@ -118,8 +116,6 @@ void log_static_leases(struct static_lease **st_lease_pp) FAST_FUNC;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*** files.h ***/
|
|
||||||
|
|
||||||
void read_config(const char *file) FAST_FUNC;
|
void read_config(const char *file) FAST_FUNC;
|
||||||
void write_leases(void) FAST_FUNC;
|
void write_leases(void) FAST_FUNC;
|
||||||
void read_leases(const char *file) FAST_FUNC;
|
void read_leases(const char *file) FAST_FUNC;
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
* Netbeat AG
|
* Netbeat AG
|
||||||
* Upstream has GPL v2 or later
|
* Upstream has GPL v2 or later
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#define SERVER_PORT 67
|
#define SERVER_PORT 67
|
||||||
@ -146,7 +145,6 @@ static char **get_client_devices(char *dev_list, int *client_number)
|
|||||||
return client_dev;
|
return client_dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Creates listen sockets (in fds) bound to client and server ifaces,
|
/* Creates listen sockets (in fds) bound to client and server ifaces,
|
||||||
* and returns numerically max fd.
|
* and returns numerically max fd.
|
||||||
*/
|
*/
|
||||||
@ -168,7 +166,6 @@ static int init_sockets(char **client_ifaces, int num_clients,
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pass_to_server() - forwards dhcp packets from client to server
|
* pass_to_server() - forwards dhcp packets from client to server
|
||||||
* p - packet to send
|
* p - packet to send
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
#define NS_CMPRSFLGS 0xc0 /* name compression pointer flag */
|
#define NS_CMPRSFLGS 0xc0 /* name compression pointer flag */
|
||||||
|
|
||||||
|
|
||||||
/* expand a RFC1035-compressed list of domain names "cstr", of length "clen";
|
/* Expand a RFC1035-compressed list of domain names "cstr", of length "clen";
|
||||||
* returns a newly allocated string containing the space-separated domains,
|
* returns a newly allocated string containing the space-separated domains,
|
||||||
* prefixed with the contents of string pre, or NULL if an error occurs.
|
* prefixed with the contents of string pre, or NULL if an error occurs.
|
||||||
*/
|
*/
|
||||||
@ -149,8 +149,7 @@ static uint8_t *convert_dname(const char *src)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* returns the offset within cstr at which dname can be found, or -1
|
/* Returns the offset within cstr at which dname can be found, or -1 */
|
||||||
*/
|
|
||||||
static int find_offset(const uint8_t *cstr, int clen, const uint8_t *dname)
|
static int find_offset(const uint8_t *cstr, int clen, const uint8_t *dname)
|
||||||
{
|
{
|
||||||
const uint8_t *c, *d;
|
const uint8_t *c, *d;
|
||||||
@ -188,7 +187,7 @@ static int find_offset(const uint8_t *cstr, int clen, const uint8_t *dname)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* computes string to be appended to cstr so that src would be added to
|
/* Computes string to be appended to cstr so that src would be added to
|
||||||
* the compression (best case, it's a 2-byte pointer to some offset within
|
* the compression (best case, it's a 2-byte pointer to some offset within
|
||||||
* cstr; worst case, it's all of src, converted to <4>host<3>com<0> format).
|
* cstr; worst case, it's all of src, converted to <4>host<3>com<0> format).
|
||||||
* The computed string is returned directly; its length is returned via retlen;
|
* The computed string is returned directly; its length is returned via retlen;
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
/*
|
/*
|
||||||
* Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
|
* Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "dhcpd.h"
|
#include "dhcpd.h"
|
||||||
#include "unicode.h"
|
#include "unicode.h"
|
||||||
@ -54,8 +53,7 @@ int dumpleases_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
/* "00:00:00:00:00:00 255.255.255.255 ABCDEFGHIJKLMNOPQRS Wed Jun 30 21:49:08 1993" */
|
/* "00:00:00:00:00:00 255.255.255.255 ABCDEFGHIJKLMNOPQRS Wed Jun 30 21:49:08 1993" */
|
||||||
/* "123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 */
|
/* "123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 */
|
||||||
|
|
||||||
if (full_read(fd, &written_at, sizeof(written_at)) != sizeof(written_at))
|
xread(fd, &written_at, sizeof(written_at));
|
||||||
return 0;
|
|
||||||
written_at = ntoh64(written_at);
|
written_at = ntoh64(written_at);
|
||||||
curr = time(NULL);
|
curr = time(NULL);
|
||||||
if (curr < written_at)
|
if (curr < written_at)
|
||||||
@ -68,15 +66,15 @@ int dumpleases_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
fmt = ":%02x";
|
fmt = ":%02x";
|
||||||
}
|
}
|
||||||
addr.s_addr = lease.lease_nip;
|
addr.s_addr = lease.lease_nip;
|
||||||
/* actually, 15+1 and 19+1, +1 is a space between columns */
|
|
||||||
/* lease.hostname is char[20] and is always NUL terminated */
|
|
||||||
#if ENABLE_FEATURE_ASSUME_UNICODE
|
#if ENABLE_FEATURE_ASSUME_UNICODE
|
||||||
{
|
{
|
||||||
char *uni_name = unicode_conv_to_printable_fixedwidth(NULL, lease.hostname, 20);
|
char *uni_name = unicode_conv_to_printable_fixedwidth(NULL, lease.hostname, 19);
|
||||||
printf(" %-16s%s", inet_ntoa(addr), uni_name);
|
printf(" %-16s%s ", inet_ntoa(addr), uni_name);
|
||||||
free(uni_name);
|
free(uni_name);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
/* actually, 15+1 and 19+1, +1 is a space between columns */
|
||||||
|
/* lease.hostname is char[20] and is always NUL terminated */
|
||||||
printf(" %-16s%-20s", inet_ntoa(addr), lease.hostname);
|
printf(" %-16s%-20s", inet_ntoa(addr), lease.hostname);
|
||||||
#endif
|
#endif
|
||||||
expires_abs = ntohl(lease.expires) + written_at;
|
expires_abs = ntohl(lease.expires) + written_at;
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
/* vi: set sw=4 ts=4: */
|
/* vi: set sw=4 ts=4: */
|
||||||
/*
|
/*
|
||||||
* files.c -- DHCP server file manipulation *
|
* DHCP server config and lease file manipulation
|
||||||
|
*
|
||||||
* Rewrite by Russ Dill <Russ.Dill@asu.edu> July 2001
|
* Rewrite by Russ Dill <Russ.Dill@asu.edu> July 2001
|
||||||
*
|
*
|
||||||
* Licensed under GPLv2, see file LICENSE in this tarball for details.
|
* Licensed under GPLv2, see file LICENSE in this tarball for details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <netinet/ether.h>
|
#include <netinet/ether.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
@ -72,28 +72,28 @@ struct config_keyword {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const struct config_keyword keywords[] = {
|
static const struct config_keyword keywords[] = {
|
||||||
/* keyword handler variable address default */
|
/* keyword handler variable address default */
|
||||||
{"start", udhcp_str2nip, &(server_config.start_ip), "192.168.0.20"},
|
{"start" , udhcp_str2nip , &server_config.start_ip , "192.168.0.20"},
|
||||||
{"end", udhcp_str2nip, &(server_config.end_ip), "192.168.0.254"},
|
{"end" , udhcp_str2nip , &server_config.end_ip , "192.168.0.254"},
|
||||||
{"interface", read_str, &(server_config.interface), "eth0"},
|
{"interface" , read_str , &server_config.interface , "eth0"},
|
||||||
/* Avoid "max_leases value not sane" warning by setting default
|
/* Avoid "max_leases value not sane" warning by setting default
|
||||||
* to default_end_ip - default_start_ip + 1: */
|
* to default_end_ip - default_start_ip + 1: */
|
||||||
{"max_leases", read_u32, &(server_config.max_leases), "235"},
|
{"max_leases" , read_u32 , &server_config.max_leases , "235"},
|
||||||
{"auto_time", read_u32, &(server_config.auto_time), "7200"},
|
{"auto_time" , read_u32 , &server_config.auto_time , "7200"},
|
||||||
{"decline_time", read_u32, &(server_config.decline_time), "3600"},
|
{"decline_time" , read_u32 , &server_config.decline_time , "3600"},
|
||||||
{"conflict_time",read_u32, &(server_config.conflict_time),"3600"},
|
{"conflict_time", read_u32 , &server_config.conflict_time, "3600"},
|
||||||
{"offer_time", read_u32, &(server_config.offer_time), "60"},
|
{"offer_time" , read_u32 , &server_config.offer_time , "60"},
|
||||||
{"min_lease", read_u32, &(server_config.min_lease_sec),"60"},
|
{"min_lease" , read_u32 , &server_config.min_lease_sec, "60"},
|
||||||
{"lease_file", read_str, &(server_config.lease_file), LEASES_FILE},
|
{"lease_file" , read_str , &server_config.lease_file , LEASES_FILE},
|
||||||
{"pidfile", read_str, &(server_config.pidfile), "/var/run/udhcpd.pid"},
|
{"pidfile" , read_str , &server_config.pidfile , "/var/run/udhcpd.pid"},
|
||||||
{"siaddr", udhcp_str2nip, &(server_config.siaddr_nip), "0.0.0.0"},
|
{"siaddr" , udhcp_str2nip , &server_config.siaddr_nip , "0.0.0.0"},
|
||||||
/* keywords with no defaults must be last! */
|
/* keywords with no defaults must be last! */
|
||||||
{"option", udhcp_str2optset, &(server_config.options), ""},
|
{"option" , udhcp_str2optset, &server_config.options , ""},
|
||||||
{"opt", udhcp_str2optset, &(server_config.options), ""},
|
{"opt" , udhcp_str2optset, &server_config.options , ""},
|
||||||
{"notify_file", read_str, &(server_config.notify_file), ""},
|
{"notify_file" , read_str , &server_config.notify_file , ""},
|
||||||
{"sname", read_str, &(server_config.sname), ""},
|
{"sname" , read_str , &server_config.sname , ""},
|
||||||
{"boot_file", read_str, &(server_config.boot_file), ""},
|
{"boot_file" , read_str , &server_config.boot_file , ""},
|
||||||
{"static_lease", read_staticlease, &(server_config.static_leases), ""},
|
{"static_lease" , read_staticlease, &server_config.static_leases, ""},
|
||||||
};
|
};
|
||||||
enum { KWS_WITH_DEFAULTS = ARRAY_SIZE(keywords) - 6 };
|
enum { KWS_WITH_DEFAULTS = ARRAY_SIZE(keywords) - 6 };
|
||||||
|
|
||||||
|
@ -1,15 +1,12 @@
|
|||||||
/* vi: set sw=4 ts=4: */
|
/* vi: set sw=4 ts=4: */
|
||||||
/*
|
/*
|
||||||
* leases.c -- tools to manage DHCP leases
|
|
||||||
* Russ Dill <Russ.Dill@asu.edu> July 2001
|
* Russ Dill <Russ.Dill@asu.edu> July 2001
|
||||||
*
|
*
|
||||||
* Licensed under GPLv2, see file LICENSE in this tarball for details.
|
* Licensed under GPLv2, see file LICENSE in this tarball for details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "dhcpd.h"
|
#include "dhcpd.h"
|
||||||
|
|
||||||
|
|
||||||
/* Find the oldest expired lease, NULL if there are no expired leases */
|
/* Find the oldest expired lease, NULL if there are no expired leases */
|
||||||
static struct dyn_lease *oldest_expired_lease(void)
|
static struct dyn_lease *oldest_expired_lease(void)
|
||||||
{
|
{
|
||||||
@ -28,7 +25,6 @@ static struct dyn_lease *oldest_expired_lease(void)
|
|||||||
return oldest_lease;
|
return oldest_lease;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Clear out all leases with matching nonzero chaddr OR yiaddr.
|
/* Clear out all leases with matching nonzero chaddr OR yiaddr.
|
||||||
* If chaddr == NULL, this is a conflict lease.
|
* If chaddr == NULL, this is a conflict lease.
|
||||||
*/
|
*/
|
||||||
@ -45,8 +41,7 @@ static void clear_leases(const uint8_t *chaddr, uint32_t yiaddr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Add a lease into the table, clearing out any old ones.
|
||||||
/* Add a lease into the table, clearing out any old ones
|
|
||||||
* If chaddr == NULL, this is a conflict lease.
|
* If chaddr == NULL, this is a conflict lease.
|
||||||
*/
|
*/
|
||||||
struct dyn_lease* FAST_FUNC add_lease(
|
struct dyn_lease* FAST_FUNC add_lease(
|
||||||
@ -84,14 +79,12 @@ struct dyn_lease* FAST_FUNC add_lease(
|
|||||||
return oldest;
|
return oldest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* True if a lease has expired */
|
/* True if a lease has expired */
|
||||||
int FAST_FUNC is_expired_lease(struct dyn_lease *lease)
|
int FAST_FUNC is_expired_lease(struct dyn_lease *lease)
|
||||||
{
|
{
|
||||||
return (lease->expires < (leasetime_t) time(NULL));
|
return (lease->expires < (leasetime_t) time(NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Find the first lease that matches MAC, NULL if no match */
|
/* Find the first lease that matches MAC, NULL if no match */
|
||||||
struct dyn_lease* FAST_FUNC find_lease_by_mac(const uint8_t *mac)
|
struct dyn_lease* FAST_FUNC find_lease_by_mac(const uint8_t *mac)
|
||||||
{
|
{
|
||||||
@ -104,7 +97,6 @@ struct dyn_lease* FAST_FUNC find_lease_by_mac(const uint8_t *mac)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Find the first lease that matches IP, NULL is no match */
|
/* Find the first lease that matches IP, NULL is no match */
|
||||||
struct dyn_lease* FAST_FUNC find_lease_by_nip(uint32_t nip)
|
struct dyn_lease* FAST_FUNC find_lease_by_nip(uint32_t nip)
|
||||||
{
|
{
|
||||||
@ -117,7 +109,6 @@ struct dyn_lease* FAST_FUNC find_lease_by_nip(uint32_t nip)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Check if the IP is taken; if it is, add it to the lease table */
|
/* Check if the IP is taken; if it is, add it to the lease table */
|
||||||
static int nobody_responds_to_arp(uint32_t nip, const uint8_t *safe_mac)
|
static int nobody_responds_to_arp(uint32_t nip, const uint8_t *safe_mac)
|
||||||
{
|
{
|
||||||
@ -138,7 +129,6 @@ static int nobody_responds_to_arp(uint32_t nip, const uint8_t *safe_mac)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Find a new usable (we think) address */
|
/* Find a new usable (we think) address */
|
||||||
uint32_t FAST_FUNC find_free_or_expired_nip(const uint8_t *safe_mac)
|
uint32_t FAST_FUNC find_free_or_expired_nip(const uint8_t *safe_mac)
|
||||||
{
|
{
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
/* vi: set sw=4 ts=4: */
|
/* vi: set sw=4 ts=4: */
|
||||||
/*
|
/*
|
||||||
* packet.c -- packet ops
|
* Packet ops
|
||||||
|
*
|
||||||
* Rewrite by Russ Dill <Russ.Dill@asu.edu> July 2001
|
* Rewrite by Russ Dill <Russ.Dill@asu.edu> July 2001
|
||||||
*
|
*
|
||||||
* Licensed under GPLv2, see file LICENSE in this tarball for details.
|
* Licensed under GPLv2, see file LICENSE in this tarball for details.
|
||||||
*/
|
*/
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#if (defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1) || defined _NEWLIB_VERSION
|
#if (defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1) || defined _NEWLIB_VERSION
|
||||||
#include <netpacket/packet.h>
|
# include <netpacket/packet.h>
|
||||||
#include <net/ethernet.h>
|
# include <net/ethernet.h>
|
||||||
#else
|
#else
|
||||||
#include <asm/types.h>
|
# include <asm/types.h>
|
||||||
#include <linux/if_packet.h>
|
# include <linux/if_packet.h>
|
||||||
#include <linux/if_ether.h>
|
# include <linux/if_ether.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
/* vi: set sw=4 ts=4: */
|
/* vi: set sw=4 ts=4: */
|
||||||
/* signalpipe.c
|
/*
|
||||||
*
|
|
||||||
* Signal pipe infrastructure. A reliable way of delivering signals.
|
* Signal pipe infrastructure. A reliable way of delivering signals.
|
||||||
*
|
*
|
||||||
* Russ Dill <Russ.Dill@asu.edu> December 2003
|
* Russ Dill <Russ.Dill@asu.edu> December 2003
|
||||||
@ -19,10 +18,9 @@
|
|||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
/* Global variable: we access it from signal handler */
|
||||||
static struct fd_pair signal_pipe;
|
static struct fd_pair signal_pipe;
|
||||||
|
|
||||||
static void signal_handler(int sig)
|
static void signal_handler(int sig)
|
||||||
@ -32,7 +30,6 @@ static void signal_handler(int sig)
|
|||||||
bb_perror_msg("can't send signal");
|
bb_perror_msg("can't send signal");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Call this before doing anything else. Sets up the socket pair
|
/* Call this before doing anything else. Sets up the socket pair
|
||||||
* and installs the signal handler */
|
* and installs the signal handler */
|
||||||
void FAST_FUNC udhcp_sp_setup(void)
|
void FAST_FUNC udhcp_sp_setup(void)
|
||||||
@ -49,7 +46,6 @@ void FAST_FUNC udhcp_sp_setup(void)
|
|||||||
, signal_handler);
|
, signal_handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Quick little function to setup the rfds. Will return the
|
/* Quick little function to setup the rfds. Will return the
|
||||||
* max_fd for use with select. Limited in that you can only pass
|
* max_fd for use with select. Limited in that you can only pass
|
||||||
* one extra fd */
|
* one extra fd */
|
||||||
@ -64,7 +60,6 @@ int FAST_FUNC udhcp_sp_fd_set(fd_set *rfds, int extra_fd)
|
|||||||
return signal_pipe.rd > extra_fd ? signal_pipe.rd : extra_fd;
|
return signal_pipe.rd > extra_fd ? signal_pipe.rd : extra_fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Read a signal from the signal pipe. Returns 0 if there is
|
/* Read a signal from the signal pipe. Returns 0 if there is
|
||||||
* no signal, -1 on error (and sets errno appropriately), and
|
* no signal, -1 on error (and sets errno appropriately), and
|
||||||
* your signal on success */
|
* your signal on success */
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* vi: set sw=4 ts=4: */
|
/* vi: set sw=4 ts=4: */
|
||||||
/*
|
/*
|
||||||
* socket.c -- DHCP server client/server socket creation
|
* DHCP server client/server socket creation
|
||||||
*
|
*
|
||||||
* udhcp client/server
|
* udhcp client/server
|
||||||
* Copyright (C) 1999 Matthew Ramsay <matthewr@moreton.com.au>
|
* Copyright (C) 1999 Matthew Ramsay <matthewr@moreton.com.au>
|
||||||
@ -22,20 +22,18 @@
|
|||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <net/if.h>
|
#include <net/if.h>
|
||||||
#if (defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1) || defined _NEWLIB_VERSION
|
#if (defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1) || defined _NEWLIB_VERSION
|
||||||
#include <netpacket/packet.h>
|
# include <netpacket/packet.h>
|
||||||
#include <net/ethernet.h>
|
# include <net/ethernet.h>
|
||||||
#else
|
#else
|
||||||
#include <asm/types.h>
|
# include <asm/types.h>
|
||||||
#include <linux/if_packet.h>
|
# include <linux/if_packet.h>
|
||||||
#include <linux/if_ether.h>
|
# include <linux/if_ether.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
|
||||||
int FAST_FUNC udhcp_read_interface(const char *interface, int *ifindex, uint32_t *nip, uint8_t *mac)
|
int FAST_FUNC udhcp_read_interface(const char *interface, int *ifindex, uint32_t *nip, uint8_t *mac)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
|
@ -1,17 +1,14 @@
|
|||||||
/* vi: set sw=4 ts=4: */
|
/* vi: set sw=4 ts=4: */
|
||||||
/*
|
/*
|
||||||
* static_leases.c -- Couple of functions to assist with storing and
|
* Storing and retrieving data for static leases
|
||||||
* retrieving data for static leases
|
|
||||||
*
|
*
|
||||||
* Wade Berrier <wberrier@myrealbox.com> September 2004
|
* Wade Berrier <wberrier@myrealbox.com> September 2004
|
||||||
*
|
*
|
||||||
* Licensed under GPLv2, see file LICENSE in this tarball for details.
|
* Licensed under GPLv2, see file LICENSE in this tarball for details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "dhcpd.h"
|
#include "dhcpd.h"
|
||||||
|
|
||||||
|
|
||||||
/* Takes the address of the pointer to the static_leases linked list,
|
/* Takes the address of the pointer to the static_leases linked list,
|
||||||
* address to a 6 byte mac address,
|
* address to a 6 byte mac address,
|
||||||
* 4 byte IP address */
|
* 4 byte IP address */
|
||||||
|
Loading…
Reference in New Issue
Block a user