Skip to content

Commit

Permalink
Merge pull request #318 from mtomaschewski/ro-root-fs
Browse files Browse the repository at this point in the history
dhcp6: do not fail on read-only root-fs (bnc#885625)
  • Loading branch information
wipawel committed Jul 14, 2014
2 parents a554da5 + 6996a3c commit 7d866a2
Show file tree
Hide file tree
Showing 6 changed files with 298 additions and 183 deletions.
1 change: 0 additions & 1 deletion dhcp6/Makefile.am
Expand Up @@ -20,7 +20,6 @@ wickedd_dhcp6_SOURCES = \
fsm.c \
main.c \
protocol.c \
state.c \
tester.c

noinst_HEADERS = \
Expand Down
29 changes: 21 additions & 8 deletions dhcp6/device.c
Expand Up @@ -74,10 +74,7 @@
#define NI_DHCP6_VENDOR_VERSION_STRING NI_DHCP6_PACKAGE_NAME"/"NI_DHCP6_PACKAGE_VERSION
#endif


extern int ni_dhcp6_load_duid(ni_opaque_t *duid, const char *filename);
extern int ni_dhcp6_save_duid(const ni_opaque_t *duid, const char *filename);

static ni_opaque_t ni_dhcp6_duid;
ni_dhcp6_device_t * ni_dhcp6_active;

static void ni_dhcp6_device_close(ni_dhcp6_device_t *);
Expand Down Expand Up @@ -841,6 +838,18 @@ ni_dhcp6_generate_duid(ni_dhcp6_device_t *dev, ni_opaque_t *duid)
ni_duid_init_uuid(duid, &uuid);
}

static inline int
ni_dhcp6_duid_load(ni_opaque_t *duid)
{
return ni_duid_load(duid, NULL, NULL);
}

static inline int
ni_dhcp6_duid_save(const ni_opaque_t *duid)
{
return ni_duid_save(duid, NULL, NULL);
}

static ni_bool_t
ni_dhcp6_config_init_duid(ni_dhcp6_device_t *dev, ni_dhcp6_config_t *config, const char *preferred)
{
Expand All @@ -852,17 +861,21 @@ ni_dhcp6_config_init_duid(ni_dhcp6_device_t *dev, ni_dhcp6_config_t *config, con
if (config->client_duid.len == 0) {
ni_dhcp6_config_default_duid(&config->client_duid);
}

if (config->client_duid.len == 0 && ni_dhcp6_duid.len > 0) {
ni_duid_copy(&config->client_duid, &ni_dhcp6_duid);
}
if (config->client_duid.len == 0) {
if( ni_dhcp6_load_duid(&config->client_duid, NULL) == 0)
if(ni_dhcp6_duid_load(&config->client_duid) == 0)
save = FALSE;
}
if (config->client_duid.len == 0) {
ni_dhcp6_generate_duid(dev, &config->client_duid);
}

if (config->client_duid.len > 0 && save) {
(void)ni_dhcp6_save_duid(&config->client_duid, NULL);
(void)ni_dhcp6_duid_save(&config->client_duid);
}
if (config->client_duid.len > 0 && !ni_dhcp6_duid.len) {
ni_duid_copy(&ni_dhcp6_duid, &config->client_duid);
}
return (config->client_duid.len > 0);
}
Expand Down
147 changes: 0 additions & 147 deletions dhcp6/state.c

This file was deleted.

0 comments on commit 7d866a2

Please sign in to comment.