Rename script.[ch] to ifchange.[ch].

This commit is contained in:
Nicholas J. Kain 2010-12-24 10:12:41 -05:00
parent eab048fec7
commit c0b699ba88
9 changed files with 40 additions and 42 deletions

View File

@ -8,7 +8,7 @@ set(NDHC_SRCS
socket.c
packet.c
timeout.c
script.c
ifchange.c
dhcpmsg.c
arp.c
ndhc.c

View File

@ -19,7 +19,7 @@
#include "dhcpmsg.h"
#include "packet.h"
#include "sys.h"
#include "script.h"
#include "ifchange.h"
#include "dhcpd.h"
#include "log.h"
#include "strl.h"
@ -98,7 +98,7 @@ static void arp_failed(struct client_state_t *cs)
send_decline(cs->xid, cs->serverAddr, arp_dhcp_packet.yiaddr);
if (cs->arpPrevState != DS_REQUESTING)
run_script(NULL, SCRIPT_DECONFIG);
ifchange(NULL, IFCHANGE_DECONFIG);
cs->dhcpState = DS_INIT_SELECTING;
cs->requestedIP = 0;
cs->timeout = 0;
@ -124,10 +124,10 @@ void arp_success(struct client_state_t *cs)
log_line("Lease of %s obtained, lease time %ld.",
inet_ntoa(temp_addr), cs->lease);
cs->requestedIP = arp_dhcp_packet.yiaddr;
run_script(&arp_dhcp_packet,
ifchange(&arp_dhcp_packet,
((cs->arpPrevState == DS_RENEWING ||
cs->arpPrevState == DS_REBINDING)
? SCRIPT_RENEW : SCRIPT_BOUND));
? IFCHANGE_RENEW : IFCHANGE_BOUND));
cs->dhcpState = DS_BOUND;
change_listen_mode(cs, LM_NONE);

View File

@ -42,7 +42,6 @@ struct client_config_t {
char abort_if_no_lease; /* Abort if no lease */
char background_if_no_lease; /* Fork to background if no lease */
char *interface; /* The name of the interface to use */
char *script; /* User script to run at dhcp events */
unsigned char *clientid; /* Optional client id to use */
unsigned char *hostname; /* Optional hostname to use */
int ifindex; /* Index number of the interface to use */

View File

@ -1,4 +1,4 @@
/* script.c
/* ifchange.c
*
* Functions to call the interface change daemon
*
@ -39,7 +39,7 @@
#include "options.h"
#include "log.h"
#include "io.h"
#include "script.h"
#include "ifchange.h"
static int snprintip(char *dest, size_t size, unsigned char *ip)
{
@ -234,23 +234,23 @@ static void bound_if(struct dhcpMessage *packet)
close(sockfd);
}
void run_script(struct dhcpMessage *packet, int mode)
void ifchange(struct dhcpMessage *packet, int mode)
{
switch (mode) {
case SCRIPT_DECONFIG:
case IFCHANGE_DECONFIG:
deconfig_if();
break;
case SCRIPT_BOUND:
case IFCHANGE_BOUND:
bound_if(packet);
break;
case SCRIPT_RENEW:
case IFCHANGE_RENEW:
bound_if(packet);
break;
case SCRIPT_NAK:
case IFCHANGE_NAK:
deconfig_if();
break;
default:
log_error("invalid script mode: %d", mode);
log_error("invalid ifchange mode: %d", mode);
break;
}
}

15
ndhc/ifchange.h Normal file
View File

@ -0,0 +1,15 @@
#ifndef IFCHANGE_H_
#define IFCHANGE_H_
#include "packet.h"
enum {
IFCHANGE_DECONFIG = 0,
IFCHANGE_BOUND = 1,
IFCHANGE_RENEW = 2,
IFCHANGE_NAK = 4
};
void ifchange(struct dhcpMessage *packet, int mode);
#endif

View File

@ -49,7 +49,7 @@
#include "packet.h"
#include "timeout.h"
#include "sys.h"
#include "script.h"
#include "ifchange.h"
#include "socket.h"
#include "arp.h"
#include "log.h"
@ -88,7 +88,6 @@ struct client_config_t client_config = {
.quit_after_lease = 0,
.background_if_no_lease = 0,
.interface = "eth0",
.script = "none",
.clientid = NULL,
.hostname = NULL,
.ifindex = 0,
@ -137,7 +136,7 @@ static void perform_renew(void)
cs.dhcpState = DS_RENEW_REQUESTED;
break;
case DS_RENEW_REQUESTED: /* impatient are we? fine, square 1 */
run_script(NULL, SCRIPT_DECONFIG);
ifchange(NULL, IFCHANGE_DECONFIG);
case DS_REQUESTING:
case DS_RELEASED:
change_listen_mode(&cs, LM_RAW);
@ -169,7 +168,7 @@ static void perform_release(void)
log_line("Unicasting a release of %s to %s.",
inet_ntoa(temp_raddr), inet_ntoa(temp_saddr));
send_release(cs.serverAddr, cs.requestedIP); /* unicast */
run_script(NULL, SCRIPT_DECONFIG);
ifchange(NULL, IFCHANGE_DECONFIG);
}
log_line("Entering released state.");
@ -406,7 +405,7 @@ int main(int argc, char **argv)
"cap_net_bind_service,cap_net_broadcast,cap_net_raw=ep");
drop_root(uid, gid);
run_script(NULL, SCRIPT_DECONFIG);
ifchange(NULL, IFCHANGE_DECONFIG);
do_work();

View File

@ -12,7 +12,7 @@
#include "packet.h"
#include "dhcpmsg.h"
#include "socket.h"
#include "script.h"
#include "ifchange.h"
#include "sys.h"
#include "log.h"
#include "io.h"
@ -253,9 +253,9 @@ static void dhcp_ack_or_nak_packet(struct client_state_t *cs,
} else if (*message == DHCPNAK) {
/* return to init state */
log_line("Received DHCP NAK.");
run_script(packet, SCRIPT_NAK);
ifchange(packet, IFCHANGE_NAK);
if (cs->dhcpState != DS_REQUESTING)
run_script(NULL, SCRIPT_DECONFIG);
ifchange(NULL, IFCHANGE_DECONFIG);
cs->dhcpState = DS_INIT_SELECTING;
cs->timeout = 0;
cs->requestedIP = 0;

View File

@ -1,15 +0,0 @@
#ifndef SCRIPT_H_
#define SCRIPT_H_
#include "packet.h"
enum {
SCRIPT_DECONFIG = 0,
SCRIPT_BOUND = 1,
SCRIPT_RENEW = 2,
SCRIPT_NAK = 4
};
void run_script(struct dhcpMessage *packet, int mode);
#endif

View File

@ -3,7 +3,7 @@
#include "timeout.h"
#include "config.h"
#include "script.h"
#include "ifchange.h"
#include "packet.h"
#include "dhcpmsg.h"
#include "arp.h"
@ -42,7 +42,7 @@ static void renew_requested_timeout(struct client_state_t *cs)
cs->packetNum++;
} else {
/* timed out, go back to init state */
run_script(NULL, SCRIPT_DECONFIG);
ifchange(NULL, IFCHANGE_DECONFIG);
cs->dhcpState = DS_INIT_SELECTING;
cs->timeout = 0;
cs->packetNum = 0;
@ -99,7 +99,7 @@ static void rebinding_timeout(struct client_state_t *cs)
/* timed out, enter init state */
cs->dhcpState = DS_INIT_SELECTING;
log_line("Lease lost, entering init state.");
run_script(NULL, SCRIPT_DECONFIG);
ifchange(NULL, IFCHANGE_DECONFIG);
cs->timeout = 0;
cs->packetNum = 0;
change_listen_mode(cs, LM_RAW);