dhcp-agent-commits Mailing List for dhcp-agent (Page 9)
Status: Alpha
Brought to you by:
actmodern
You can subscribe to this list here.
2002 |
Jan
|
Feb
(33) |
Mar
|
Apr
|
May
(19) |
Jun
(61) |
Jul
(12) |
Aug
|
Sep
(5) |
Oct
(31) |
Nov
(24) |
Dec
(56) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(9) |
Feb
|
Mar
(16) |
Apr
(4) |
May
(68) |
Jun
(70) |
Jul
(100) |
Aug
(54) |
Sep
|
Oct
|
Nov
|
Dec
|
2004 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
(7) |
Jun
(12) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
(4) |
May
(1) |
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(8) |
Oct
(5) |
Nov
(6) |
Dec
(4) |
2008 |
Jan
(9) |
Feb
(20) |
Mar
(32) |
Apr
(18) |
May
(19) |
Jun
(12) |
Jul
(23) |
Aug
(7) |
Sep
(15) |
Oct
(22) |
Nov
(50) |
Dec
(68) |
2009 |
Jan
(63) |
Feb
(23) |
Mar
(43) |
Apr
(50) |
May
(110) |
Jun
(103) |
Jul
(71) |
Aug
(26) |
Sep
(16) |
Oct
(31) |
Nov
(8) |
Dec
(13) |
2010 |
Jan
(6) |
Feb
(6) |
Mar
(36) |
Apr
(57) |
May
(67) |
Jun
(70) |
Jul
(44) |
Aug
(46) |
Sep
(27) |
Oct
(2) |
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
From: <act...@us...> - 2004-05-25 06:46:33
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27147 Modified Files: dhcp-net.c Log Message: now using SO_BINDTODEVICE if possible Index: dhcp-net.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-net.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** dhcp-net.c 5 Aug 2003 04:58:31 -0000 1.7 --- dhcp-net.c 25 May 2004 06:46:23 -0000 1.8 *************** *** 33,37 **** * * * * * * * * * * * * */ ! int udp_sock_create(uint16_t source_port, ip_addr_t local_addr) { struct sockaddr_in myaddr; --- 33,37 ---- * * * * * * * * * * * * */ ! int udp_sock_create(uint16_t source_port, ip_addr_t local_addr, const char *device) { struct sockaddr_in myaddr; *************** *** 57,60 **** --- 57,70 ---- } + #ifdef HAVE_SO_BINDTODEVICE + + len = (strlen(device) + 1); + if(setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, device, len) < 0) { + ERROR_MESSAGE("unable to set SO_BINDTODEVICE on socket: %s", strerror(errno)); + return -1; + } + + #endif /* HAVE_SO_BINDTODEVICE */ + if(fcntl(sd, F_SETFL, O_NONBLOCK) < 0) { ERROR_MESSAGE("unable to set O_NONBLOCK on socket: %s", strerror(errno)); |
From: <act...@us...> - 2004-05-25 06:45:10
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26851 Modified Files: dhcp-libutil.h Log Message: Updated prototype to udp_sock_create Index: dhcp-libutil.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-libutil.h,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** dhcp-libutil.h 26 Jul 2003 23:46:16 -0000 1.33 --- dhcp-libutil.h 25 May 2004 06:45:01 -0000 1.34 *************** *** 316,320 **** /* udp socket routines. */ ! extern int udp_sock_create(uint16_t source_port, ip_addr_t local_addr); extern void udp_sock_destroy(int sd); extern int udp_sock_recv(int sd, uint8_t *buff, size_t buffsize, ip_addr_t *src_addr); --- 316,320 ---- /* udp socket routines. */ ! extern int udp_sock_create(uint16_t source_port, ip_addr_t local_addr, const char *device); extern void udp_sock_destroy(int sd); extern int udp_sock_recv(int sd, uint8_t *buff, size_t buffsize, ip_addr_t *src_addr); *************** *** 336,340 **** /* Line length for messages before breaking into a new line. */ ! #define MESSAGE_LINE_LENGTH 70 /* timeout as per rfc2131 */ --- 336,340 ---- /* Line length for messages before breaking into a new line. */ ! #define MESSAGE_LINE_LENGTH 78 /* timeout as per rfc2131 */ |
From: <act...@us...> - 2004-05-25 06:44:04
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26706 Modified Files: dhcp-librawnet.h Log Message: Cosmetic fix to #defines Index: dhcp-librawnet.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-librawnet.h,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** dhcp-librawnet.h 18 Aug 2003 01:49:32 -0000 1.25 --- dhcp-librawnet.h 25 May 2004 06:43:55 -0000 1.26 *************** *** 254,264 **** /* DHCP Type messages */ ! # define DHCP_DISCOVER_TM 1 ! # define DHCP_OFFER_TM 2 ! # define DHCP_REQUEST_TM 3 ! # define DHCP_DECLINE_TM 4 ! # define DHCP_DHCPACK_TM 5 ! # define DHCP_DHCPNAK_TM 6 ! # define DHCP_RELEASE_TM 7 /* BOOTP Types */ --- 254,264 ---- /* DHCP Type messages */ ! #define DHCP_DISCOVER_TM 1 ! #define DHCP_OFFER_TM 2 ! #define DHCP_REQUEST_TM 3 ! #define DHCP_DECLINE_TM 4 ! #define DHCP_DHCPACK_TM 5 ! #define DHCP_DHCPNAK_TM 6 ! #define DHCP_RELEASE_TM 7 /* BOOTP Types */ *************** *** 277,356 **** */ ! # define TAG_DHCP_PAD 0 ! # define TAG_DHCP_SUBNET_MASK 1 ! # define TAG_DHCP_TIME_OFFSET 2 ! # define TAG_DHCP_ROUTER 3 ! # define TAG_DHCP_TIME_SERVER 4 ! # define TAG_DHCP_NAME_SERVER 5 ! # define TAG_DHCP_DOMAIN_NAME_SERVER 6 ! # define TAG_DHCP_LOG_SERVER 7 ! # define TAG_DHCP_COOKIE_SERVER 8 ! # define TAG_DHCP_LPR_SERVER 9 ! # define TAG_DHCP_IMPRESS_SERVER 10 ! # define TAG_DHCP_RESOURCE_LOCATION_SERVER 11 ! # define TAG_DHCP_HOST_NAME 12 ! # define TAG_DHCP_BOOT_FILE_SIZE 13 ! # define TAG_DHCP_MERIT_DUMP_FILE 14 ! # define TAG_DHCP_DOMAIN_NAME 15 ! # define TAG_DHCP_SWAP_SERVER 16 ! # define TAG_DHCP_ROOT_PATH 17 ! # define TAG_DHCP_EXTENSIONS_PATH 18 ! # define TAG_DHCP_IP_FORWARDING 19 ! # define TAG_DHCP_NON_LOCAL_SOURCE_ROUTING 20 ! # define TAG_DHCP_POLICY_FILTER 21 ! # define TAG_DHCP_MAX_DGRAM_REASSUMBLY_SIZE 22 ! # define TAG_DHCP_IP_TIME_TO_LIVE 23 ! # define TAG_DHCP_MTU_AGING_TIMEOUT 24 ! # define TAG_DHCP_MTU_PLATEAU_TABLE 25 ! # define TAG_DHCP_INTERFACE_MTU 26 ! # define TAG_DHCP_SUBNETS_ARE_LOCAL 27 ! # define TAG_DHCP_BROADCAST_ADDRESS 28 ! # define TAG_DHCP_MASK_DISCOVERY 29 ! # define TAG_DHCP_MASK_SUPPLIER 30 ! # define TAG_DHCP_ROUTER_DISCOVERY 31 ! # define TAG_DHCP_ROUTER_SOLICITATION 32 ! # define TAG_DHCP_STATIC_ROUTE 33 ! # define TAG_DHCP_TRAILER_ENCAPSULATION 34 ! # define TAG_DHCP_ARP_CACHE_TIMEOUT 35 ! # define TAG_DHCP_ETHERNET_ENCAPSULATION 36 ! # define TAG_DHCP_TCP_DEFAULT_TTL 37 ! # define TAG_DHCP_TCP_KEEPALIVE_INTERVAL 38 ! # define TAG_DHCP_TCP_KEEPALIVE_GARBAGE 39 ! # define TAG_DHCP_NIS_DOMAIN_NAME 40 ! # define TAG_DHCP_NIS_SERVERS 41 ! # define TAG_DHCP_NTP_SERVERS 42 ! # define TAG_DHCP_VENDOR_SPECIFIC 43 ! # define TAG_DHCP_NETBIOSOTCP_NAME_SERVER 44 ! # define TAG_DHCP_NETBIOSOTCP_DATAGRAM_SERVER 45 ! # define TAG_DHCP_NETBIOSOTCP_NODE_TYPE 46 ! # define TAG_DHCP_NETBIOSOTCP_SCOPE 47 ! # define TAG_DHCP_XWIN_FONT_SERVER 48 ! # define TAG_DHCP_XWIN_DISP_MANAGER_SERVER 49 ! # define TAG_DHCP_REQUESTED_IP_ADDRESS 50 ! # define TAG_DHCP_IP_ADDRESS_LEASE_TIME 51 ! # define TAG_DHCP_OVERLOAD 52 ! # define TAG_DHCP_MESSAGE_TYPE 53 ! # define TAG_DHCP_SERVER_IDENTIFIER 54 ! # define TAG_DHCP_PARAMETERS 55 ! # define TAG_DHCP_MESSAGE 56 ! # define TAG_DHCP_MAX_DHCP_SIZE 57 ! # define TAG_DHCP_RENEWAL_TIME 58 ! # define TAG_DHCP_REBINDING_TIME 59 ! # define TAG_DHCP_VENDOR_CLASS_ID 60 ! # define TAG_DHCP_CLIENT_ID 61 ! # define TAG_DHCP_NISPLUS_DOMAIN 64 ! # define TAG_DHCP_NISPLUS_SERVERS 65 ! # define TAG_DHCP_TFTP_SERVER 66 ! # define TAG_DHCP_BOOT_FILE_NAME 67 ! # define TAG_DHCP_IP_HOME_AGENT 68 ! # define TAG_DHCP_SMTP_SERVER 69 ! # define TAG_DHCP_POP_SERVER 70 ! # define TAG_DHCP_NNTP_SERVER 71 ! # define TAG_DHCP_DEFAULT_WWW_SERVER 72 ! # define TAG_DHCP_DEFAULT_FINGER_SERVER 73 ! # define TAG_DHCP_DEFAULT_IRC_SERVER 74 ! # define TAG_DHCP_DEFAULT_ST_SERVER 75 ! # define TAG_DHCP_DEFAULT_STDA_SERVER 76 ! # define TAG_DHCP_END 255 /* DHCP overload option values. */ --- 277,356 ---- */ ! #define TAG_DHCP_PAD 0 ! #define TAG_DHCP_SUBNET_MASK 1 ! #define TAG_DHCP_TIME_OFFSET 2 ! #define TAG_DHCP_ROUTER 3 ! #define TAG_DHCP_TIME_SERVER 4 ! #define TAG_DHCP_NAME_SERVER 5 ! #define TAG_DHCP_DOMAIN_NAME_SERVER 6 ! #define TAG_DHCP_LOG_SERVER 7 ! #define TAG_DHCP_COOKIE_SERVER 8 ! #define TAG_DHCP_LPR_SERVER 9 ! #define TAG_DHCP_IMPRESS_SERVER 10 ! #define TAG_DHCP_RESOURCE_LOCATION_SERVER 11 ! #define TAG_DHCP_HOST_NAME 12 ! #define TAG_DHCP_BOOT_FILE_SIZE 13 ! #define TAG_DHCP_MERIT_DUMP_FILE 14 ! #define TAG_DHCP_DOMAIN_NAME 15 ! #define TAG_DHCP_SWAP_SERVER 16 ! #define TAG_DHCP_ROOT_PATH 17 ! #define TAG_DHCP_EXTENSIONS_PATH 18 ! #define TAG_DHCP_IP_FORWARDING 19 ! #define TAG_DHCP_NON_LOCAL_SOURCE_ROUTING 20 ! #define TAG_DHCP_POLICY_FILTER 21 ! #define TAG_DHCP_MAX_DGRAM_REASSUMBLY_SIZE 22 ! #define TAG_DHCP_IP_TIME_TO_LIVE 23 ! #define TAG_DHCP_MTU_AGING_TIMEOUT 24 ! #define TAG_DHCP_MTU_PLATEAU_TABLE 25 ! #define TAG_DHCP_INTERFACE_MTU 26 ! #define TAG_DHCP_SUBNETS_ARE_LOCAL 27 ! #define TAG_DHCP_BROADCAST_ADDRESS 28 ! #define TAG_DHCP_MASK_DISCOVERY 29 ! #define TAG_DHCP_MASK_SUPPLIER 30 ! #define TAG_DHCP_ROUTER_DISCOVERY 31 ! #define TAG_DHCP_ROUTER_SOLICITATION 32 ! #define TAG_DHCP_STATIC_ROUTE 33 ! #define TAG_DHCP_TRAILER_ENCAPSULATION 34 ! #define TAG_DHCP_ARP_CACHE_TIMEOUT 35 ! #define TAG_DHCP_ETHERNET_ENCAPSULATION 36 ! #define TAG_DHCP_TCP_DEFAULT_TTL 37 ! #define TAG_DHCP_TCP_KEEPALIVE_INTERVAL 38 ! #define TAG_DHCP_TCP_KEEPALIVE_GARBAGE 39 ! #define TAG_DHCP_NIS_DOMAIN_NAME 40 ! #define TAG_DHCP_NIS_SERVERS 41 ! #define TAG_DHCP_NTP_SERVERS 42 ! #define TAG_DHCP_VENDOR_SPECIFIC 43 ! #define TAG_DHCP_NETBIOSOTCP_NAME_SERVER 44 ! #define TAG_DHCP_NETBIOSOTCP_DATAGRAM_SERVER 45 ! #define TAG_DHCP_NETBIOSOTCP_NODE_TYPE 46 ! #define TAG_DHCP_NETBIOSOTCP_SCOPE 47 ! #define TAG_DHCP_XWIN_FONT_SERVER 48 ! #define TAG_DHCP_XWIN_DISP_MANAGER_SERVER 49 ! #define TAG_DHCP_REQUESTED_IP_ADDRESS 50 ! #define TAG_DHCP_IP_ADDRESS_LEASE_TIME 51 ! #define TAG_DHCP_OVERLOAD 52 ! #define TAG_DHCP_MESSAGE_TYPE 53 ! #define TAG_DHCP_SERVER_IDENTIFIER 54 ! #define TAG_DHCP_PARAMETERS 55 ! #define TAG_DHCP_MESSAGE 56 ! #define TAG_DHCP_MAX_DHCP_SIZE 57 ! #define TAG_DHCP_RENEWAL_TIME 58 ! #define TAG_DHCP_REBINDING_TIME 59 ! #define TAG_DHCP_VENDOR_CLASS_ID 60 ! #define TAG_DHCP_CLIENT_ID 61 ! #define TAG_DHCP_NISPLUS_DOMAIN 64 ! #define TAG_DHCP_NISPLUS_SERVERS 65 ! #define TAG_DHCP_TFTP_SERVER 66 ! #define TAG_DHCP_BOOT_FILE_NAME 67 ! #define TAG_DHCP_IP_HOME_AGENT 68 ! #define TAG_DHCP_SMTP_SERVER 69 ! #define TAG_DHCP_POP_SERVER 70 ! #define TAG_DHCP_NNTP_SERVER 71 ! #define TAG_DHCP_DEFAULT_WWW_SERVER 72 ! #define TAG_DHCP_DEFAULT_FINGER_SERVER 73 ! #define TAG_DHCP_DEFAULT_IRC_SERVER 74 ! #define TAG_DHCP_DEFAULT_ST_SERVER 75 ! #define TAG_DHCP_DEFAULT_STDA_SERVER 76 ! #define TAG_DHCP_END 255 /* DHCP overload option values. */ *************** *** 362,369 **** /* NetBIOS Scope Node Types */ ! # define NETBIOS_B_NODE 0x01 ! # define NETBIOS_P_NODE 0x02 ! # define NETBIOS_M_NODE 0x04 ! # define NETBIOS_H_NODE 0x06 /* prototypes. */ --- 362,369 ---- /* NetBIOS Scope Node Types */ ! #define NETBIOS_B_NODE 0x01 ! #define NETBIOS_P_NODE 0x02 ! #define NETBIOS_M_NODE 0x04 ! #define NETBIOS_H_NODE 0x06 /* prototypes. */ |
From: <act...@us...> - 2004-02-11 02:20:07
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23244/src Modified Files: dhcp-client-states.c Log Message: fixed incorrect zapping of address before arp-reply Index: dhcp-client-states.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client-states.c,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** dhcp-client-states.c 28 Aug 2003 15:41:54 -0000 1.45 --- dhcp-client-states.c 11 Feb 2004 02:16:22 -0000 1.46 *************** *** 214,218 **** eth_addr_t client_hw_addr; - client_ip_addr = rawnet_get_ip_addr(dc->rawnet); rawnet_get_real_hw_addr(dc->rawnet, &client_hw_addr); --- 214,217 ---- |
From: <act...@us...> - 2003-08-31 16:09:35
|
Update of /cvsroot/dhcp-agent/dhcp-agent In directory sc8-pr-cvs1:/tmp/cvs-serv1184 Removed Files: acinclude.m4 Log Message: we no longer need acinclude.m4 --- acinclude.m4 DELETED --- |
From: <act...@us...> - 2003-08-31 16:09:19
|
Update of /cvsroot/dhcp-agent/dhcp-agent In directory sc8-pr-cvs1:/tmp/cvs-serv1153 Modified Files: configure.ac Log Message: better, clearer autoconf Index: configure.ac =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/configure.ac,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** configure.ac 27 Jul 2003 00:57:28 -0000 1.19 --- configure.ac 31 Aug 2003 16:09:14 -0000 1.20 *************** *** 1,5 **** dnl $Header$ dnl ! dnl Second try at writing a more coherent configure script. dnl We've layed it out per the gnu autoconf manual dnl Please look at: --- 1,5 ---- dnl $Header$ dnl ! dnl Third try at writing a more coherent configure script. dnl We've layed it out per the gnu autoconf manual dnl Please look at: *************** *** 9,15 **** dnl -- tm...@wh... ! dnl dnl init ! dnl AC_PREREQ(2.57) --- 9,15 ---- dnl -- tm...@wh... ! dnl --------------------------------------------------------------------------- dnl init ! dnl --------------------------------------------------------------------------- AC_PREREQ(2.57) *************** *** 20,30 **** AC_LIBTOOL_TAGS([]) ! dnl ! dnl command line options ! dnl dnl fail-on-warning option for strict compilation FAIL_ON_WARNING="no" AC_ARG_ENABLE(fail-on-warning, AC_HELP_STRING([--enable-fail-on-warning], --- 20,34 ---- AC_LIBTOOL_TAGS([]) ! dnl --------------------------------------------------------------------------- ! dnl preset constants ! dnl --------------------------------------------------------------------------- dnl fail-on-warning option for strict compilation FAIL_ON_WARNING="no" + dnl --------------------------------------------------------------------------- + dnl command line options + dnl --------------------------------------------------------------------------- + AC_ARG_ENABLE(fail-on-warning, AC_HELP_STRING([--enable-fail-on-warning], *************** *** 60,66 **** AM_CONDITIONAL(HTMLDOC, test x$htmldoc = xtrue) - dnl allow user to pick where dhcp-agent does its work dnl check for CC, INSTALL, and sane make AC_PROG_CC --- 64,71 ---- AM_CONDITIONAL(HTMLDOC, test x$htmldoc = xtrue) + dnl --------------------------------------------------------------------------- dnl check for CC, INSTALL, and sane make + dnl --------------------------------------------------------------------------- AC_PROG_CC *************** *** 69,80 **** AC_PROG_LIBTOOL dnl check header files we should have AC_HEADER_STDC AC_CHECK_HEADERS(inttypes.h signal.h varargs.h stdarg.h sys/utsname.h getopt.h) ! dnl dnl check for types ! dnl AC_CHECK_TYPE(sig_atomic_t, [AC_DEFINE(HAVE_SIG_ATOMIC_T, 1, [have sigatomic_t])], [], [#include <signal.h>]) --- 74,87 ---- AC_PROG_LIBTOOL + dnl --------------------------------------------------------------------------- dnl check header files we should have + dnl --------------------------------------------------------------------------- AC_HEADER_STDC AC_CHECK_HEADERS(inttypes.h signal.h varargs.h stdarg.h sys/utsname.h getopt.h) ! dnl --------------------------------------------------------------------------- dnl check for types ! dnl --------------------------------------------------------------------------- AC_CHECK_TYPE(sig_atomic_t, [AC_DEFINE(HAVE_SIG_ATOMIC_T, 1, [have sigatomic_t])], [], [#include <signal.h>]) *************** *** 87,95 **** #include <net/bpf.h> ]) dnl try finding or generating our own C99 stdint macros ! AC_WF_TRY_PRI_MACROS ! if test "x$have_primacros" = "x"; then dnl this ought to work -- i think :-) --- 94,113 ---- #include <net/bpf.h> ]) + AC_TYPE_SIGNAL + dnl try finding or generating our own C99 stdint macros ! AC_MSG_CHECKING(for stdint conversion macros) ! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h> ! #include <stdlib.h> ! #include <inttypes.h> ! ]],[[uint32_t t=1; printf("%"PRIu32, t);]])], ! [AC_MSG_RESULT(found); have_primacros="yes"], ! AC_MSG_RESULT(not found); have_primacros="no") ! ! if test "x$have_primacros" = "xno"; then ! ! echo "Generating our own stdint macros." dnl this ought to work -- i think :-) *************** *** 117,135 **** fi ! AC_TYPE_SIGNAL ! dnl check for functions AC_CHECK_FUNCS(strdup uname calloc daemon rename sysconf getrusage getprogname) dnl other checks ! dnl check if kill(pid, 0) can be used to detect a process ! ! AC_WF_CHECK_KILL_SIGNAL_DETECT ! dnl check for BPF_IMMEDIATE flag ! AC_WF_CHECK_BPF_IMMEDIATE dnl check for __progname --- 135,168 ---- fi ! dnl --------------------------------------------------------------------------- dnl check for functions + dnl --------------------------------------------------------------------------- AC_CHECK_FUNCS(strdup uname calloc daemon rename sysconf getrusage getprogname) + dnl --------------------------------------------------------------------------- dnl other checks + dnl --------------------------------------------------------------------------- ! dnl check for SO_BINDTODEVICE ! AC_MSG_CHECKING(SO_BINDTODEVICE) ! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h> ! #include <stdlib.h> ! #include <sys/types.h> ! #include <sys/socket.h> ! ]], [[ ! char *dev = "foo0"; ! socklen_t len; ! setsockopt(0, SOL_SOCKET, SO_BINDTODEVICE, dev, len); ! ]])], [AC_MSG_RESULT(found) AC_DEFINE(HAVE_SO_BINDTODEVICE, 1, [have SO_BINDTODEVICE])], ! [AC_MSG_RESULT(not found)]) ! AC_MSG_CHECKING(BIOCIMMEDIATE) ! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h> ! #include <stdlib.h> ! #include <pcap.h> ! ]], [[ ioctl(0, BIOCIMMEDIATE, NULL);]])],[AC_MSG_RESULT(found) ! AC_DEFINE(HAVE_BPF_IMMEDIATE, 1, [have BPF_IMMEDIATE])],[AC_MSG_RESULT(not found)]) dnl check for __progname *************** *** 149,153 **** --- 182,188 ---- fi + dnl --------------------------------------------------------------------------- dnl pcap sifting + dnl --------------------------------------------------------------------------- if test -z "$libpcap_prefix"; then *************** *** 155,159 **** dnl excessive pcap sifting ! AC_WF_CHECK_PCAP_LIB_DIR if test x$ac_pcap_lib_dir = "xnone"; then --- 190,212 ---- dnl excessive pcap sifting ! AC_MSG_CHECKING(for pcap header directory) ! ac_pcap_header_dir="none" ! for dir in $prefix/include /include /usr/include /usr/local/include /include/pcap /usr/include/pcap /usr/local/include/pcap ! do ! if test -f "$dir/pcap.h" ; then ! ac_pcap_header_dir=$dir ! fi ! done ! AC_MSG_RESULT($ac_pcap_header_dir) ! ! AC_MSG_CHECKING(for pcap library directory) ! ac_pcap_lib_dir="none" ! for dir in $prefix/lib /lib /usr/lib /usr/local/lib ! do ! if test -f "$dir/libpcap.a" ; then ! ac_pcap_lib_dir=$dir ! fi ! done ! AC_MSG_RESULT($ac_pcap_lib_dir) if test x$ac_pcap_lib_dir = "xnone"; then *************** *** 174,179 **** PCAP_LIB="-L$ac_pcap_lib_dir -lpcap" - - AC_WF_CHECK_PCAP_HEADER_DIR PCAP_INC="-I$ac_pcap_header_dir" --- 227,230 ---- *************** *** 187,191 **** --- 238,244 ---- fi + dnl --------------------------------------------------------------------------- dnl check for pcap_freecode + dnl --------------------------------------------------------------------------- AC_MSG_CHECKING([pcap_freecode in pcap]) *************** *** 205,209 **** --- 258,264 ---- fi + dnl --------------------------------------------------------------------------- dnl check for pcap_setnonblock + dnl --------------------------------------------------------------------------- AC_MSG_CHECKING([pcap_setnonblock in pcap]) *************** *** 219,238 **** fi ! dnl check for BIOCIMMEDIATE ! ! AC_MSG_CHECKING(BIOCIMMEDIATE) ! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h> ! #include <stdlib.h> ! #include <pcap.h> ! ]], [[ ioctl(0, BIOCIMMEDIATE, NULL);]])],[AC_MSG_RESULT(found) ! AC_DEFINE(HAVE_BPF_IMMEDIATE, 1, [have BPF_IMMEDIATE])],[AC_MSG_RESULT(not found)]) ! ! ! dnl dnl libdnet sifting; actually it's a lot more well behaved dnl than pcap. dnl begin by looking for dnet-config if we find it, then dnl just use it to get the include and lib dirs. ! dnl if test -z $libdnet_prefix; then --- 274,283 ---- fi ! dnl --------------------------------------------------------------------------- dnl libdnet sifting; actually it's a lot more well behaved dnl than pcap. dnl begin by looking for dnet-config if we find it, then dnl just use it to get the include and lib dirs. ! dnl --------------------------------------------------------------------------- if test -z $libdnet_prefix; then *************** *** 267,270 **** --- 312,318 ---- fi + dnl --------------------------------------------------------------------------- + dnl guile sifting + dnl --------------------------------------------------------------------------- if test -z $guile_prefix; then *************** *** 322,328 **** fi ! dnl dnl setup paths so they can be passed to the Makefile.in ! dnl dhcpsysconfdir="${sysconfdir}/${PACKAGE_NAME}" --- 370,376 ---- fi ! dnl --------------------------------------------------------------------------- dnl setup paths so they can be passed to the Makefile.in ! dnl --------------------------------------------------------------------------- dhcpsysconfdir="${sysconfdir}/${PACKAGE_NAME}" *************** *** 336,339 **** --- 384,391 ---- dhcpdocdir="/doc/dhcp-agent" + dnl --------------------------------------------------------------------------- + dnl do substitutions + dnl --------------------------------------------------------------------------- + AC_SUBST(PCAP_LIB) AC_SUBST(PCAP_INC) *************** *** 351,354 **** --- 403,409 ---- AC_SUBST(dhcpdocdir) + dnl --------------------------------------------------------------------------- + dnl fail on warning if argumetn passed + dnl --------------------------------------------------------------------------- if test x"${FAIL_ON_WARNING}" = "xyes"; then CFLAGS="${CFLAGS} -Werror" |
From: <act...@us...> - 2003-08-28 15:41:59
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv23351 Modified Files: dhcp-client-states.c Log Message: minor optimization when checking dhcp type. we're not longer walking through the options everytime where we can avoid it Index: dhcp-client-states.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client-states.c,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** dhcp-client-states.c 28 Jun 2003 17:50:06 -0000 1.44 --- dhcp-client-states.c 28 Aug 2003 15:41:54 -0000 1.45 *************** *** 549,557 **** static int client_check_request(void *arg) { dhcp_client_control_t *dc = arg; if(client_check_dhcp(dc) && ! (dhcp_is_type(dc->rawnet->dhcp_p, DHCP_DHCPACK_TM) || ! dhcp_is_type(dc->rawnet->dhcp_p, DHCP_DHCPNAK_TM))) return 1; else --- 549,560 ---- static int client_check_request(void *arg) { + int dhcp_type; dhcp_client_control_t *dc = arg; + dhcp_type = dhcp_get_type(dc->rawnet->dhcp_p); + if(client_check_dhcp(dc) && ! (dhcp_type == DHCP_DHCPACK_TM || ! dhcp_type == DHCP_DHCPACK_TM)) return 1; else *************** *** 860,864 **** return STATE_BOUND; ! } else if(dhcp_is_type(dc->rawnet->dhcp_p, DHCP_DHCPNAK_TM)) { /* we've been told our lease is no good. */ --- 863,867 ---- return STATE_BOUND; ! } else { /* we've been told our lease is no good. */ *************** *** 872,880 **** return STATE_INIT; - } else { - - ERROR_MESSAGE("received neither NACK nor ACK -- this should never happen because of higher filters."); - FATAL_MESSAGE("I shouldn't be here. this is a bug report me."); - exit(1); /* get rid of compiler warning. */ } } --- 875,878 ---- *************** *** 932,936 **** return STATE_BOUND; ! } else if(dhcp_is_type(dc->rawnet->dhcp_p, DHCP_DHCPNAK_TM)) { /* we've been told our lease is no good. */ --- 930,934 ---- return STATE_BOUND; ! } else { /* we've been told our lease is no good. */ *************** *** 944,952 **** return STATE_INIT; - } else { - - ERROR_MESSAGE("received neither NACK nor ACK -- this should never happen because of higher filters."); - FATAL_MESSAGE("I shouldn't be here. this is a bug report me."); - exit(1); /* get rid of compiler warning. */ } } --- 942,945 ---- |
From: <act...@us...> - 2003-08-18 16:41:21
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv25421/src Modified Files: dhcp-lease.c dhcp-server-conf.c dhcp-server-conf.h Log Message: now creating type-none constraint Index: dhcp-lease.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-lease.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** dhcp-lease.c 17 Aug 2003 00:57:33 -0000 1.9 --- dhcp-lease.c 18 Aug 2003 16:16:08 -0000 1.10 *************** *** 57,60 **** --- 57,63 ---- break; + case LEASE_CONSTRAINT_NONE: + break; + default: FATAL_MESSAGE("illegal constraint type passed. this is a bug report me."); Index: dhcp-server-conf.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-server-conf.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** dhcp-server-conf.c 18 Aug 2003 01:49:58 -0000 1.14 --- dhcp-server-conf.c 18 Aug 2003 16:16:08 -0000 1.15 *************** *** 237,240 **** --- 237,245 ---- } + list_t *server_conf_get_lease_defs(server_conf_t *sc) + { + return sc->lease_defs; + } + /* * * * * * * * * * * * utility routines. * *************** *** 438,441 **** --- 443,447 ---- static int directive_range_handler(server_conf_t *server_conf, directive_t *directive, int group_type, void *group_data) { + lease_constraint_t *constraint; lease_definition_t *lease_def; ip_addr_t bottom_address, top_address; *************** *** 475,483 **** list_add_to_end(address_pair, &bottom_address); /* create option handler by calling the general lease handler. */ option_list = list_create(); directive_lease_handler_proc(server_conf, directive, GROUP_LEASE_DEF, group_data, option_list); ! lease_def = lease_definition_create(NULL, subnet_address, subnet_mask, LEASE_RANGE_ADDRESS, address_pair, option_list, lease_expiry, renew_time, rebind_time); list_add(server_conf->lease_defs, lease_def); --- 481,492 ---- list_add_to_end(address_pair, &bottom_address); + /* create empty constraint. */ + constraint = lease_constraint_create(LEASE_CONSTRAINT_NONE, NULL); + /* create option handler by calling the general lease handler. */ option_list = list_create(); directive_lease_handler_proc(server_conf, directive, GROUP_LEASE_DEF, group_data, option_list); ! lease_def = lease_definition_create(constraint, subnet_address, subnet_mask, LEASE_RANGE_ADDRESS, address_pair, option_list, lease_expiry, renew_time, rebind_time); list_add(server_conf->lease_defs, lease_def); Index: dhcp-server-conf.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-server-conf.h,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** dhcp-server-conf.h 18 Aug 2003 01:49:58 -0000 1.11 --- dhcp-server-conf.h 18 Aug 2003 16:16:08 -0000 1.12 *************** *** 30,34 **** typedef struct { ! list_t *lease_defs; /* list of lease definitions. */ const char *interface; /* interface name: read only. */ --- 30,34 ---- typedef struct { ! list_t *lease_defs; /* list of lease definitions. */ const char *interface; /* interface name: read only. */ *************** *** 65,68 **** --- 65,69 ---- extern uint8_t server_conf_assume_interface_local_subnet(server_conf_t *sc); extern list_t *server_conf_get_local_subnets(server_conf_t *sc); + extern list_t *server_conf_get_lease_defs(server_conf_t *sc); #endif /* DHCP_SERVER_CONF_H */ |
From: <act...@us...> - 2003-08-18 16:19:54
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv25253/src Modified Files: dhcp-guile-util.c Log Message: fixed address pair conversion Index: dhcp-guile-util.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-guile-util.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** dhcp-guile-util.c 18 Aug 2003 01:48:17 -0000 1.4 --- dhcp-guile-util.c 18 Aug 2003 16:15:10 -0000 1.5 *************** *** 170,180 **** { SCM scm_address_list = SCM_EOL; ip_addr_t *first_ip, *second_ip; list_rewind(address_list); ! while((first_ip = list_next(address_list)) != NULL) { ! second_ip = list_next(address_list); ! if(second_ip == NULL) { FATAL_MESSAGE("passed uneven list as address pair"); } --- 170,182 ---- { SCM scm_address_list = SCM_EOL; + list_t *address_pair; ip_addr_t *first_ip, *second_ip; list_rewind(address_list); ! while((address_pair = list_next(address_list)) != NULL) { ! first_ip = list_first(address_pair); ! second_ip = list_second(address_pair); ! if(first_ip == NULL || second_ip == NULL) { FATAL_MESSAGE("passed uneven list as address pair"); } |
From: <act...@us...> - 2003-08-18 16:19:22
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv25706/src Modified Files: dhcp-server-guile.c Log Message: now defining lease definitions at top level; returning NULL on false Index: dhcp-server-guile.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-server-guile.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** dhcp-server-guile.c 18 Aug 2003 04:10:57 -0000 1.10 --- dhcp-server-guile.c 18 Aug 2003 16:17:43 -0000 1.11 *************** *** 231,234 **** --- 231,238 ---- void dhcp_guile_init(dhcp_server_control_t *sc) { + list_t *lease_defs; + lease_definition_t *lease_def; + SCM scm_lease_defs = SCM_EOL; + /* initialize the server control smob. */ init_server_control_smob(); *************** *** 250,256 **** lease_expire = scm_str2symbol("lease-expire"); - /* NOTE: defining at the top level should keep the garbage - * collector from swallowing these symbols up. */ - /* bind false to all the subroutines. */ --- 254,257 ---- *************** *** 267,270 **** --- 268,283 ---- scm_c_define_gsubr("server-fatal-error-message", 1, 0, 1, scm_fatal_error_message); + /* bind to a top level list of all the lease definitions. */ + lease_defs = server_conf_get_lease_defs(sc->server_conf); + + /* cons up the lease definitions. */ + list_rewind(lease_defs); + while((lease_def = list_next(lease_defs)) != NULL) { + scm_lease_defs = scm_cons(scm_lease_def_c2scm(lease_def), scm_lease_defs); + } + + /* do lease defs binding. */ + scm_c_define("lease-definitions", scm_lease_defs); + /* bind our server control object. */ scm_c_define("dhcp-server-control", *************** *** 293,296 **** --- 306,312 ---- scm_lease = scm_call_1(scm_variable_ref(lease_available), scm_client_info); + if(scm_lease == SCM_BOOL_F) + return NULL; + lease = scm_c_get_lease(scm_lease); return lease; *************** *** 307,310 **** --- 323,329 ---- scm_lease = scm_call_2(scm_variable_ref(lease_lookup), scm_ip_addr, scm_client_info); + + if(scm_lease == SCM_BOOL_F) + return NULL; lease = scm_c_get_lease(scm_lease); |
From: <act...@us...> - 2003-08-18 04:29:06
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv14570 Modified Files: dhcp-server.c Log Message: now hooked rest of code into the main server function Index: dhcp-server.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-server.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** dhcp-server.c 7 Aug 2003 01:14:27 -0000 1.12 --- dhcp-server.c 18 Aug 2003 04:12:00 -0000 1.13 *************** *** 35,38 **** --- 35,39 ---- #include "dhcp-guile-util.h" #include "dhcp-server-guile.h" + #include "dhcp-server-lease-manager.h" /* global vars affecting other code. */ *************** *** 101,104 **** --- 102,106 ---- server_conf_t *server_conf; dhcp_server_control_t *dhcp_server_control; + int state; INFO_MESSAGE("DHCP server starting"); *************** *** 125,129 **** } ! server_states[STATE_SHUTDOWN](dhcp_server_control); } --- 127,141 ---- } ! /* now initialize the guile backend. */ ! dhcp_guile_init(dhcp_server_control); ! ! /* initialize lease manager. */ ! lease_manager_initialize(); ! ! /* do the main loop. */ ! state = STATE_LISTEN; ! while(1) { ! server_states[state](dhcp_server_control); ! } } |
From: <act...@us...> - 2003-08-18 04:25:55
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv14542 Modified Files: dhcp-server-lease-manager.h Log Message: fixed prototype of lease_manager_initialize Index: dhcp-server-lease-manager.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-server-lease-manager.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** dhcp-server-lease-manager.h 7 Aug 2003 01:14:27 -0000 1.3 --- dhcp-server-lease-manager.h 18 Aug 2003 04:11:35 -0000 1.4 *************** *** 25,29 **** #define DHCP_SERVER_LEASE_MANAGER_H ! extern int initialize_lease_manager(void); extern lease_t *lease_manager_lease_available(client_info_t *client_info); extern lease_t *lease_manager_lookup_lease(ip_addr_t ip_addr, client_info_t *client_info); --- 25,29 ---- #define DHCP_SERVER_LEASE_MANAGER_H ! extern int lease_manager_initialize(void); extern lease_t *lease_manager_lease_available(client_info_t *client_info); extern lease_t *lease_manager_lookup_lease(ip_addr_t ip_addr, client_info_t *client_info); |
From: <act...@us...> - 2003-08-18 04:10:59
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv14467 Modified Files: dhcp-server-guile.c Log Message: fixed fatal to fatal_error Index: dhcp-server-guile.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-server-guile.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** dhcp-server-guile.c 18 Aug 2003 02:24:29 -0000 1.9 --- dhcp-server-guile.c 18 Aug 2003 04:10:57 -0000 1.10 *************** *** 40,43 **** --- 40,44 ---- #include "dhcp-client-info-guile.h" #include "dhcp-option-guile.h" + #include "dhcp-message-guile.h" static scm_t_bits server_control_tag; *************** *** 193,196 **** --- 194,200 ---- stringbuffer_t *sb; + if(getenv("DEBUG_SERVER_SCM")) + scm_shell(0, NULL); + sb = stringbuffer_create(); stringbuffer_aprintf(sb, "%s/default.backend", DHCPSYSCONF_SERVERDIR); *************** *** 261,265 **** scm_c_define_gsubr("server-info-message", 1, 0, 1, scm_info_message); scm_c_define_gsubr("server-error-message", 1, 0, 1, scm_error_message); ! scm_c_define_gsubr("server-fatal-error-message", 1, 0, 1, scm_fatal_message); /* bind our server control object. */ --- 265,269 ---- scm_c_define_gsubr("server-info-message", 1, 0, 1, scm_info_message); scm_c_define_gsubr("server-error-message", 1, 0, 1, scm_error_message); ! scm_c_define_gsubr("server-fatal-error-message", 1, 0, 1, scm_fatal_error_message); /* bind our server control object. */ |
From: <act...@us...> - 2003-08-18 02:50:33
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv473 Modified Files: dhcp-client-guile.c Makefile.am Log Message: moved message code to its own guile binding source Index: dhcp-client-guile.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client-guile.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** dhcp-client-guile.c 18 Aug 2003 01:48:51 -0000 1.13 --- dhcp-client-guile.c 18 Aug 2003 02:21:37 -0000 1.14 *************** *** 37,40 **** --- 37,41 ---- #include "dhcp-client.h" #include "dhcp-guile-util.h" + #include "dhcp-message-guile.h" #include "dhcp-client-guile.h" #include "dhcp-interface.h" *************** *** 404,444 **** } - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * info message, error message, and fatal message wrappers. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - static SCM dhcp_scm_client_info_message(SCM string) - { - char *str; - - str = x_scm_string2newstr(string); - INFO_MESSAGE(str); - xfree(str); - - return SCM_BOOL_T; - } - - static SCM dhcp_scm_client_error_message(SCM string) - { - char *str; - - str = x_scm_string2newstr(string); - ERROR_MESSAGE(str); - xfree(str); - - return SCM_BOOL_T; - } - - static SCM dhcp_scm_client_fatal_error_message(SCM string) - { - char *str; - - str = x_scm_string2newstr(string); - FATAL_MESSAGE(str); - xfree(str); - - return SCM_BOOL_T; - } - /* * * * * * * * * * * * * * * * * * * * * dhcp client control smob * --- 405,408 ---- *************** *** 727,733 **** scm_c_define_gsubr("client-do-discover-icmp-latency?", 1, 0, 0, dhcp_scm_client_do_discover_icmp_latency); scm_c_define_gsubr("client-configure?", 2, 0, 0, dhcp_scm_configurep); ! scm_c_define_gsubr("client-info-message", 1, 0, 0, dhcp_scm_client_info_message); ! scm_c_define_gsubr("client-error-message", 1, 0, 0, dhcp_scm_client_error_message); ! scm_c_define_gsubr("client-fatal-error-message", 1, 0, 0, dhcp_scm_client_fatal_error_message); scm_c_define_gsubr("client-shutdown", 1, 0, 0, dhcp_scm_client_shutdown); scm_c_define_gsubr("client-discover-icmp-latency", 2, 0, 0, dhcp_scm_client_discover_icmp_latency); --- 691,697 ---- scm_c_define_gsubr("client-do-discover-icmp-latency?", 1, 0, 0, dhcp_scm_client_do_discover_icmp_latency); scm_c_define_gsubr("client-configure?", 2, 0, 0, dhcp_scm_configurep); ! scm_c_define_gsubr("client-info-message", 1, 0, 0, scm_info_message); ! scm_c_define_gsubr("client-error-message", 1, 0, 0, scm_error_message); ! scm_c_define_gsubr("client-fatal-error-message", 1, 0, 0, scm_fatal_error_message); scm_c_define_gsubr("client-shutdown", 1, 0, 0, dhcp_scm_client_shutdown); scm_c_define_gsubr("client-discover-icmp-latency", 2, 0, 0, dhcp_scm_client_discover_icmp_latency); Index: Makefile.am =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/Makefile.am,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** Makefile.am 12 Aug 2003 12:07:42 -0000 1.37 --- Makefile.am 18 Aug 2003 02:21:37 -0000 1.38 *************** *** 72,76 **** dhcp-sysconf.c \ dhcp-client-guile.c \ ! dhcp-guile-util.c dhcp_server_SOURCES = dhcp-server.c \ --- 72,77 ---- dhcp-sysconf.c \ dhcp-client-guile.c \ ! dhcp-guile-util.c \ ! dhcp-message-guile.c dhcp_server_SOURCES = dhcp-server.c \ *************** *** 85,89 **** dhcp-server-client-info.c \ dhcp-client-info-guile.c \ ! dhcp-lease-guile.c dhcp_client_LDADD = -ldhcputil ${GUILE_LIB} --- 86,91 ---- dhcp-server-client-info.c \ dhcp-client-info-guile.c \ ! dhcp-lease-guile.c \ ! dhcp-message-guile.c dhcp_client_LDADD = -ldhcputil ${GUILE_LIB} |
From: <act...@us...> - 2003-08-18 02:42:07
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv842 Modified Files: dhcp-server-guile.c Log Message: server guile bindings now have bound to message code Index: dhcp-server-guile.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-server-guile.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** dhcp-server-guile.c 18 Aug 2003 01:50:32 -0000 1.8 --- dhcp-server-guile.c 18 Aug 2003 02:24:29 -0000 1.9 *************** *** 258,261 **** --- 258,266 ---- scm_define(lease_expire, SCM_BOOL_F); + /* bind some utility routines. */ + scm_c_define_gsubr("server-info-message", 1, 0, 1, scm_info_message); + scm_c_define_gsubr("server-error-message", 1, 0, 1, scm_error_message); + scm_c_define_gsubr("server-fatal-error-message", 1, 0, 1, scm_fatal_message); + /* bind our server control object. */ scm_c_define("dhcp-server-control", |
From: <act...@us...> - 2003-08-18 02:39:42
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv762 Modified Files: dhcp-client-guile.c Log Message: fixed up number of args on message bindings Index: dhcp-client-guile.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client-guile.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** dhcp-client-guile.c 18 Aug 2003 02:21:37 -0000 1.14 --- dhcp-client-guile.c 18 Aug 2003 02:24:02 -0000 1.15 *************** *** 691,697 **** scm_c_define_gsubr("client-do-discover-icmp-latency?", 1, 0, 0, dhcp_scm_client_do_discover_icmp_latency); scm_c_define_gsubr("client-configure?", 2, 0, 0, dhcp_scm_configurep); ! scm_c_define_gsubr("client-info-message", 1, 0, 0, scm_info_message); ! scm_c_define_gsubr("client-error-message", 1, 0, 0, scm_error_message); ! scm_c_define_gsubr("client-fatal-error-message", 1, 0, 0, scm_fatal_error_message); scm_c_define_gsubr("client-shutdown", 1, 0, 0, dhcp_scm_client_shutdown); scm_c_define_gsubr("client-discover-icmp-latency", 2, 0, 0, dhcp_scm_client_discover_icmp_latency); --- 691,697 ---- scm_c_define_gsubr("client-do-discover-icmp-latency?", 1, 0, 0, dhcp_scm_client_do_discover_icmp_latency); scm_c_define_gsubr("client-configure?", 2, 0, 0, dhcp_scm_configurep); ! scm_c_define_gsubr("client-info-message", 1, 0, 1, scm_info_message); ! scm_c_define_gsubr("client-error-message", 1, 0, 1, scm_error_message); ! scm_c_define_gsubr("client-fatal-error-message", 1, 0, 1, scm_fatal_error_message); scm_c_define_gsubr("client-shutdown", 1, 0, 0, dhcp_scm_client_shutdown); scm_c_define_gsubr("client-discover-icmp-latency", 2, 0, 0, dhcp_scm_client_discover_icmp_latency); |
From: <act...@us...> - 2003-08-18 02:39:08
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv433 Added Files: dhcp-message-guile.h dhcp-message-guile.c Log Message: added message binding to guile --- NEW FILE: dhcp-message-guile.h --- /* $Header: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-message-guile.h,v 1.1 2003/08/18 02:21:15 actmodern Exp $ * * Copyright 2002 Thamer Alharbash * * 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. * 3. The names of the authors may not be used to endorse or promote * products derived from this software without specific prior * written permission. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * info message, error message, and fatal message guile bindings. */ #ifndef DHCP_MESSAGE_GUILE_H #define DHCP_MESSAGE_GUILE_H extern SCM scm_info_message(SCM msg, SCM args); extern SCM scm_error_message(SCM msg, SCM args); extern SCM scm_fatal_error_message(SCM msg, SCM args); #endif /* DHCP_MESSAGE_GUILE_H */ --- NEW FILE: dhcp-message-guile.c --- /* $Header: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-message-guile.c,v 1.1 2003/08/18 02:21:15 actmodern Exp $ * * Copyright 2002 Thamer Alharbash * * 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. * 3. The names of the authors may not be used to endorse or promote * products derived from this software without specific prior * written permission. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * info message, error message, and fatal message guile bindings. */ #include "dhcp-local.h" #include "dhcp-libutil.h" #include "dhcp-guile-util.h" /* use a string output port to print out a string. */ static SCM print_to_scm_string(SCM msg, SCM args) { SCM string_port; SCM string; string_port = scm_open_output_string(); scm_simple_format(string_port, msg, args); string = scm_get_output_string(string_port); scm_close_output_port(string_port); return string; } /* send a message via the INFO_MESSAGE facility. */ SCM scm_info_message(SCM msg, SCM args) { SCM scm_str; char *str; scm_str = print_to_scm_string(msg, args); str = x_scm_string2newstr(scm_str); INFO_MESSAGE(str); xfree(str); return SCM_BOOL_T; } /* send a message via the ERROR_MESSAGE facility. */ SCM scm_error_message(SCM msg, SCM args) { SCM scm_str; char *str; scm_str = print_to_scm_string(msg, args); str = x_scm_string2newstr(scm_str); ERROR_MESSAGE(str); xfree(str); return SCM_BOOL_T; } /* send a message via the FATAL_MESSAGE facility. */ SCM scm_fatal_error_message(SCM msg, SCM args) { SCM scm_str; char *str; scm_str = print_to_scm_string(msg, args); str = x_scm_string2newstr(scm_str); FATAL_MESSAGE(str); xfree(str); return SCM_BOOL_T; } |
From: <act...@us...> - 2003-08-18 01:50:35
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv28753/src Modified Files: dhcp-server-guile.c Log Message: updated guile server bindings to get more information from server control Index: dhcp-server-guile.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-server-guile.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** dhcp-server-guile.c 17 Aug 2003 00:58:36 -0000 1.7 --- dhcp-server-guile.c 18 Aug 2003 01:50:32 -0000 1.8 *************** *** 83,86 **** --- 83,167 ---- } + /* get renew percent from control conf. */ + static SCM dhcp_scm_get_default_renew_percent(SCM scm_dhcp_server_control) + { + server_control_smob_t *server_control_smob; + + SCM_ASSERT(SCM_SMOB_PREDICATE(server_control_tag, scm_dhcp_server_control), + scm_dhcp_server_control, SCM_ARG1, "server-get-default-renew-percent"); + + server_control_smob = (server_control_smob_t *)SCM_SMOB_DATA(scm_dhcp_server_control); + + return SCM_MAKINUM(server_conf_get_default_renew_percent(server_control_smob->sc->server_conf)); + } + + /* get rebind percent from control conf. */ + static SCM dhcp_scm_get_default_rebind_percent(SCM scm_dhcp_server_control) + { + server_control_smob_t *server_control_smob; + + SCM_ASSERT(SCM_SMOB_PREDICATE(server_control_tag, scm_dhcp_server_control), + scm_dhcp_server_control, SCM_ARG1, "server-get-default-rebind-percent"); + + server_control_smob = (server_control_smob_t *)SCM_SMOB_DATA(scm_dhcp_server_control); + + return SCM_MAKINUM(server_conf_get_default_rebind_percent(server_control_smob->sc->server_conf)); + } + + /* get a list of the local subnets. */ + static SCM dhcp_scm_get_local_subnets(SCM scm_dhcp_server_control) + { + server_control_smob_t *server_control_smob; + list_t *local_subnets; + + SCM_ASSERT(SCM_SMOB_PREDICATE(server_control_tag, scm_dhcp_server_control), + scm_dhcp_server_control, SCM_ARG1, "server-get-local-subnets"); + + server_control_smob = (server_control_smob_t *)SCM_SMOB_DATA(scm_dhcp_server_control); + + local_subnets = server_conf_get_local_subnets(server_control_smob->sc->server_conf); + return address_pair_list_to_guile_address_pair_list(local_subnets); + } + + /* assume interface has local subnet? */ + static SCM dhcp_scm_assume_interface_local_subnet(SCM scm_dhcp_server_control) + { + server_control_smob_t *server_control_smob; + + SCM_ASSERT(SCM_SMOB_PREDICATE(server_control_tag, scm_dhcp_server_control), + scm_dhcp_server_control, SCM_ARG1, "server-interface-has-local-subnet?"); + + server_control_smob = (server_control_smob_t *)SCM_SMOB_DATA(scm_dhcp_server_control); + + if(server_conf_assume_interface_local_subnet(server_control_smob->sc->server_conf)) + return SCM_BOOL_T; + else + return SCM_BOOL_F; + } + + /* get local address. */ + static SCM dhcp_scm_get_local_address(SCM scm_dhcp_server_control) + { + server_control_smob_t *server_control_smob; + + SCM_ASSERT(SCM_SMOB_PREDICATE(server_control_tag, scm_dhcp_server_control), + scm_dhcp_server_control, SCM_ARG1, "server-get-local-address"); + + server_control_smob = (server_control_smob_t *)SCM_SMOB_DATA(scm_dhcp_server_control); + return SCM_MAKINUM(rawnet_get_ip_addr(server_control_smob->sc->rawnet)); + } + + /* get local subnet mask. */ + static SCM dhcp_scm_get_local_subnet_mask(SCM scm_dhcp_server_control) + { + server_control_smob_t *server_control_smob; + + SCM_ASSERT(SCM_SMOB_PREDICATE(server_control_tag, scm_dhcp_server_control), + scm_dhcp_server_control, SCM_ARG1, "server-get-local-subnet-mask"); + + server_control_smob = (server_control_smob_t *)SCM_SMOB_DATA(scm_dhcp_server_control); + return SCM_MAKINUM(rawnet_get_subnet_mask(server_control_smob->sc->rawnet)); + } + /* initialization routines for server control SMOB. */ static void init_server_control_smob(void) *************** *** 92,95 **** --- 173,183 ---- scm_set_smob_mark(server_control_tag, dhcp_scm_server_control_mark); scm_set_smob_print(server_control_tag, dhcp_scm_server_control_print); + + scm_c_define_gsubr("server-get-renew-percent", 1, 0, 0, dhcp_scm_get_default_renew_percent); + scm_c_define_gsubr("server-get-rebind-percent", 1, 0, 0, dhcp_scm_get_default_rebind_percent); + scm_c_define_gsubr("server-get-local-subnets", 1, 0, 0, dhcp_scm_get_local_subnets); + scm_c_define_gsubr("server-interface-has-local-subnet?", 1, 0, 0, dhcp_scm_assume_interface_local_subnet); + scm_c_define_gsubr("server-get-local-address", 1, 0, 0, dhcp_scm_get_local_address); + scm_c_define_gsubr("server-get-local-subnet-mask", 1, 0, 0, dhcp_scm_get_local_subnet_mask); return; |
From: <act...@us...> - 2003-08-18 01:50:01
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv28634/src Modified Files: dhcp-server-conf.c dhcp-server-conf.h Log Message: added more getters for conf code Index: dhcp-server-conf.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-server-conf.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** dhcp-server-conf.c 6 Aug 2003 04:28:33 -0000 1.13 --- dhcp-server-conf.c 18 Aug 2003 01:49:58 -0000 1.14 *************** *** 207,210 **** --- 207,220 ---- /* accessors. */ + uint16_t server_conf_get_default_renew_percent(server_conf_t *sc) + { + return sc->default_renew_percent; + } + + uint16_t server_conf_get_default_rebind_percent(server_conf_t *sc) + { + return sc->default_rebind_percent; + } + uint16_t server_conf_get_poll_timeout(server_conf_t *sc) { *************** *** 217,220 **** --- 227,239 ---- } + uint8_t server_conf_assume_interface_local_subnet(server_conf_t *sc) + { + return sc->assume_interface_subnet; + } + + list_t *server_conf_get_local_subnets(server_conf_t *sc) + { + return sc->local_subnets; + } /* * * * * * * * * * * Index: dhcp-server-conf.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-server-conf.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** dhcp-server-conf.h 6 Aug 2003 04:28:33 -0000 1.10 --- dhcp-server-conf.h 18 Aug 2003 01:49:58 -0000 1.11 *************** *** 59,64 **** --- 59,68 ---- extern void server_conf_destroy(server_conf_t *sc); + extern uint16_t server_conf_get_default_renew_percent(server_conf_t *sc); + extern uint16_t server_conf_get_default_rebind_percent(server_conf_t *sc); extern uint16_t server_conf_get_poll_timeout(server_conf_t *sc); extern uint16_t server_conf_get_max_message_size(server_conf_t *sc); + extern uint8_t server_conf_assume_interface_local_subnet(server_conf_t *sc); + extern list_t *server_conf_get_local_subnets(server_conf_t *sc); #endif /* DHCP_SERVER_CONF_H */ |
From: <act...@us...> - 2003-08-18 01:49:35
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv28588/src Modified Files: dhcp-librawnet.h dhcp-rawnet.c Log Message: rawnet now lets us get subnet mask from interface Index: dhcp-librawnet.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-librawnet.h,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** dhcp-librawnet.h 5 Aug 2003 05:00:38 -0000 1.24 --- dhcp-librawnet.h 18 Aug 2003 01:49:32 -0000 1.25 *************** *** 190,193 **** --- 190,194 ---- eth_addr_t hw_addr; /* our hardware address. */ ip_addr_t ip_addr; /* our ip address. */ + ip_addr_t subnet_mask; /* subnet mask. */ eth_addr_t *fake_hw_addr; /* our fake hardware address, if any. */ *************** *** 370,373 **** --- 371,375 ---- /* rawnet routines. */ extern ip_addr_t rawnet_get_ip_addr(rawnet_t *net); + extern ip_addr_t rawnet_get_subnet_mask(rawnet_t *net); extern int rawnet_port_for_service(const char *serv, const char *proto); extern char *rawnet_network_address_to_string_static(uint32_t addr); Index: dhcp-rawnet.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-rawnet.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** dhcp-rawnet.c 5 Aug 2003 04:53:19 -0000 1.15 --- dhcp-rawnet.c 18 Aug 2003 01:49:32 -0000 1.16 *************** *** 46,49 **** --- 46,55 ---- } + /* get subnet mask. */ + ip_addr_t rawnet_get_subnet_mask(rawnet_t *net) + { + return net->subnet_mask; + } + /* get a port for a service. */ int rawnet_port_for_service(const char *serv, const char *proto) *************** *** 106,109 **** --- 112,117 ---- eth_get(net->eth, &net->hw_addr); interface_get_ip_addr(net->intf_handle, &net->ip_addr); + interface_get_subnet_mask(net->intf_handle, &net->subnet_mask); + net->mtu = interface_get_mtu(net->intf_handle); xfree(net->packet_data); *************** *** 122,125 **** --- 130,135 ---- memset(&net->ip_addr, 0, IP_ADDR_LEN); /* clear our IP address -- this isn't very useful though. */ + memset(&net->subnet_mask, 0, IP_ADDR_LEN); + return 0; } *************** *** 269,272 **** --- 279,283 ---- eth_get(net->eth, &net->hw_addr); interface_get_ip_addr(net->intf_handle, &net->ip_addr); + interface_get_subnet_mask(net->intf_handle, &net->subnet_mask); net->mtu = interface_get_mtu(intf_handle); |
From: <act...@us...> - 2003-08-18 01:49:09
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv28520/src Modified Files: dhcp-interface.c dhcp-interface.h Log Message: interface code now lets us get subnet mask Index: dhcp-interface.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-interface.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** dhcp-interface.c 25 Jul 2003 02:36:21 -0000 1.10 --- dhcp-interface.c 18 Aug 2003 01:49:06 -0000 1.11 *************** *** 157,161 **** /* get ip address of an interface. */ ! int interface_get_ip_addr(interface_control_t *ic, uint32_t *addr) { if(interface_get_info(ic)) { --- 157,161 ---- /* get ip address of an interface. */ ! int interface_get_ip_addr(interface_control_t *ic, ip_addr_t *addr) { if(interface_get_info(ic)) { *************** *** 167,170 **** --- 167,185 ---- memcpy(addr, &ic->interface_entry->intf_addr.addr_ip, IP_ADDR_LEN); + return 0; + } + + int interface_get_subnet_mask(interface_control_t *ic, ip_addr_t *addr) + { + struct sockaddr_in sockaddr; + + if(interface_get_info(ic)) { + ERROR_MESSAGE("could not get interface IP address %s : %s", + ic->interface_entry->intf_name, strerror(errno)); + return -1; + } + + addr_btos(ic->interface_entry->intf_addr.addr_bits, (struct sockaddr *)&sockaddr); + memcpy(addr, &sockaddr.sin_addr, IP_ADDR_LEN); return 0; } Index: dhcp-interface.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-interface.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** dhcp-interface.h 25 Jul 2003 02:36:21 -0000 1.6 --- dhcp-interface.h 18 Aug 2003 01:49:06 -0000 1.7 *************** *** 31,34 **** --- 31,35 ---- extern int interface_down(interface_control_t *ic); extern int interface_get_ip_addr(interface_control_t *ic, uint32_t *addr); + extern int interface_get_subnet_mask(interface_control_t *ic, ip_addr_t *addr); extern list_t *interface_get_active_interfaces(void); extern list_t *interface_get_inactive_interfaces(void); |
From: <act...@us...> - 2003-08-18 01:49:04
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv28473/src Modified Files: dhcp-client-guile.c Log Message: moved guile_address_list_to_internal_list to utility code Index: dhcp-client-guile.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client-guile.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** dhcp-client-guile.c 5 Aug 2003 04:51:35 -0000 1.12 --- dhcp-client-guile.c 18 Aug 2003 01:48:51 -0000 1.13 *************** *** 49,82 **** * * * * * * * * * * * * * * * * * * * * * * */ - static list_t *guile_address_list_to_internal_list(SCM scm_address_list) - { - char *address_string; - int list_length, i; - SCM scm_list_length; - SCM scm_address_string; - ip_addr_t *ip_address; - list_t *address_list; - - SCM_ASSERT(SCM_CONSP(scm_address_list), scm_address_list, - SCM_ARG1, "guile_address_list_to_internal_list"); - - scm_list_length = scm_length(scm_address_list); - list_length = scm_num2int(scm_list_length, SCM_ARG1, "guile_address_list_to_internal_list"); - - address_list = list_create(); - - for(i = 0;i < list_length;i++) { - scm_address_string = scm_list_ref(scm_address_list, SCM_MAKINUM(i)); - address_string = x_scm_string2newstr(scm_address_string); - - ip_address = string_ip_to_ip_addr(address_string); - list_add_to_end(address_list, ip_address); - xfree(address_string); - - } - - return address_list; - } - /* take a latency list: a list of integer latency values followed * by an address, and convert it to a numeric value for integers, --- 49,52 ---- |
From: <act...@us...> - 2003-08-18 01:48:20
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv28420/src Modified Files: dhcp-guile-util.h dhcp-guile-util.c Log Message: added utility code to transform address pair list to cons Index: dhcp-guile-util.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-guile-util.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** dhcp-guile-util.h 10 Aug 2003 01:21:33 -0000 1.2 --- dhcp-guile-util.h 18 Aug 2003 01:48:17 -0000 1.3 *************** *** 32,35 **** --- 32,37 ---- extern list_t *x_scm_guile_string_list_to_list(SCM scm_list); extern SCM x_scm_comma_delimited_string_to_scm_list(const char *string_val); + extern list_t *guile_address_list_to_internal_list(SCM scm_address_list); + extern SCM address_pair_list_to_guile_address_pair_list(list_t *address_list); #endif /* DHCP_GUILE_UTIL_H */ Index: dhcp-guile-util.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-guile-util.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** dhcp-guile-util.c 12 Aug 2003 12:06:17 -0000 1.3 --- dhcp-guile-util.c 18 Aug 2003 01:48:17 -0000 1.4 *************** *** 119,120 **** --- 119,186 ---- return scm_string_list; } + + /* convert a list of address from the scheme environ to the native one. */ + list_t *guile_address_list_to_internal_list(SCM scm_address_list) + { + char *address_string; + int list_length, i; + SCM scm_list_length; + SCM scm_address_string; + ip_addr_t *ip_address; + list_t *address_list; + + SCM_ASSERT(SCM_CONSP(scm_address_list), scm_address_list, + SCM_ARG1, "guile_address_list_to_internal_list"); + + scm_list_length = scm_length(scm_address_list); + list_length = scm_num2int(scm_list_length, SCM_ARG1, "guile_address_list_to_internal_list"); + + address_list = list_create(); + + for(i = 0;i < list_length;i++) { + scm_address_string = scm_list_ref(scm_address_list, SCM_MAKINUM(i)); + address_string = x_scm_string2newstr(scm_address_string); + + ip_address = string_ip_to_ip_addr(address_string); + list_add_to_end(address_list, ip_address); + xfree(address_string); + + } + + return address_list; + } + + /* turn a native address list to a guile address list. */ + SCM address_list_to_guile_address_list(list_t *address_list) + { + SCM scm_address_list = SCM_EOL; + ip_addr_t *ip_addr; + + list_rewind(address_list); + while((ip_addr = list_next(address_list)) != NULL) { + + scm_address_list = scm_cons(SCM_MAKINUM(*ip_addr), scm_address_list); + } + + return scm_reverse(scm_address_list); + } + + /* turn a native address pair list to a guile address pair list. */ + SCM address_pair_list_to_guile_address_pair_list(list_t *address_list) + { + SCM scm_address_list = SCM_EOL; + ip_addr_t *first_ip, *second_ip; + + list_rewind(address_list); + while((first_ip = list_next(address_list)) != NULL) { + + second_ip = list_next(address_list); + if(second_ip == NULL) { + FATAL_MESSAGE("passed uneven list as address pair"); + } + + scm_address_list = scm_cons(scm_cons(SCM_MAKINUM(*first_ip), SCM_MAKINUM(*second_ip)), scm_address_list); + } + + return scm_reverse(scm_address_list); + } |
From: <act...@us...> - 2003-08-17 00:58:40
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv26844/src Modified Files: dhcp-server-guile.c Log Message: hooked in new smobs into server guile bindings Index: dhcp-server-guile.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-server-guile.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** dhcp-server-guile.c 12 Aug 2003 12:07:25 -0000 1.6 --- dhcp-server-guile.c 17 Aug 2003 00:58:36 -0000 1.7 *************** *** 142,149 **** init_server_control_smob(); ! /* initialize lease smob. */ init_lease_smob(); ! ! /* initialize client info smob. */ init_client_info_smob(); --- 142,150 ---- init_server_control_smob(); ! /* initialize smobs. */ init_lease_smob(); ! init_lease_def_smob(); ! init_lease_constraint_smob(); ! init_dhcp_opt_smob(); init_client_info_smob(); |
From: <act...@us...> - 2003-08-17 00:58:23
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv26790/src Modified Files: dhcp-option.c Log Message: fixed typo Index: dhcp-option.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-option.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** dhcp-option.c 10 Aug 2003 01:23:11 -0000 1.8 --- dhcp-option.c 17 Aug 2003 00:58:20 -0000 1.9 *************** *** 43,47 **** dhcp_opt_attr_t dhcp_opt_attr[] = { ! /* Pad: we never actually handle this here. so sit all handlers to NULL. */ { TAG_DHCP_PAD, sizeof(uint8_t), --- 43,47 ---- dhcp_opt_attr_t dhcp_opt_attr[] = { ! /* Pad: we never actually handle this here. so set all handlers to NULL. */ { TAG_DHCP_PAD, sizeof(uint8_t), |