Only bring down the interface at startup time if it is not already up and
running. ndhc does its job entirely with raw sockets before a lease is established, so it will work just fine, and this change allows for the dhcp client to be re-run without causing downtime on an interface.
This commit is contained in:
parent
46ed7f5998
commit
d304fb6b38
@ -304,7 +304,8 @@ int main(int argc, char **argv)
|
|||||||
"cap_net_bind_service,cap_net_broadcast,cap_net_raw=ep");
|
"cap_net_bind_service,cap_net_broadcast,cap_net_raw=ep");
|
||||||
drop_root(uid, gid);
|
drop_root(uid, gid);
|
||||||
|
|
||||||
ifchange(NULL, IFCHANGE_DECONFIG);
|
if (cs.ifsPrevState != IFS_UP)
|
||||||
|
ifchange(NULL, IFCHANGE_DECONFIG);
|
||||||
|
|
||||||
do_work();
|
do_work();
|
||||||
return EXIT_SUCCESS; // Never reached.
|
return EXIT_SUCCESS; // Never reached.
|
||||||
|
@ -40,14 +40,6 @@
|
|||||||
#include "arp.h"
|
#include "arp.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
|
||||||
enum {
|
|
||||||
IFS_NONE = 0,
|
|
||||||
IFS_UP,
|
|
||||||
IFS_DOWN,
|
|
||||||
IFS_SHUT,
|
|
||||||
IFS_REMOVED
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct mnl_socket *mls;
|
static struct mnl_socket *mls;
|
||||||
|
|
||||||
static void nl_close(struct client_state_t *cs)
|
static void nl_close(struct client_state_t *cs)
|
||||||
|
@ -22,6 +22,14 @@
|
|||||||
|
|
||||||
#include "state.h"
|
#include "state.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
IFS_NONE = 0,
|
||||||
|
IFS_UP,
|
||||||
|
IFS_DOWN,
|
||||||
|
IFS_SHUT,
|
||||||
|
IFS_REMOVED
|
||||||
|
};
|
||||||
|
|
||||||
int nl_open(struct client_state_t *cs);
|
int nl_open(struct client_state_t *cs);
|
||||||
void handle_nl_message(struct client_state_t *cs);
|
void handle_nl_message(struct client_state_t *cs);
|
||||||
int nl_getifdata(const char *ifname, struct client_state_t *cs);
|
int nl_getifdata(const char *ifname, struct client_state_t *cs);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user