new->valid = safe;
if (new->valid > 0) {
- if (x)
- *x = *new;
- else
+ if (x) {
+ x->valid = new->valid;
+ x->preferred = new->preferred;
+ } else {
odhcp6c_add_state(state, new, sizeof(*new));
+ }
} else if (x) {
odhcp6c_remove_state(state, (x - start) * sizeof(*x), sizeof(*x));
}