Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 25ec9c4d authored by Maciej Żenczykowski's avatar Maciej Żenczykowski
Browse files

add 'nodad' support to ifc_add_address()



Test: TreeHugger
Bug: 242067762
Signed-off-by: default avatarMaciej Żenczykowski <maze@google.com>
Change-Id: I2c022f6af45eac7631213801a89aa270709d4a57
parent de4ad68f
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -362,14 +362,19 @@ int ifc_act_on_address(int action, const char* name, const char* address, int pr
    return err->error;
}

// Pass bitwise complement of prefix length to disable DAD, ie. use ~64 instead of 64.
// Returns zero on success and negative errno on failure.
int ifc_add_address(const char *name, const char *address, int prefixlen) {
    return ifc_act_on_address(RTM_NEWADDR, name, address, prefixlen, /*nodad*/ false);
    bool nodad = (prefixlen < 0);
    if (nodad) prefixlen = ~prefixlen;
    return ifc_act_on_address(RTM_NEWADDR, name, address, prefixlen, nodad);
}

// Returns zero on success and negative errno on failure.
int ifc_del_address(const char *name, const char * address, int prefixlen) {
    return ifc_act_on_address(RTM_DELADDR, name, address, prefixlen, /*nodad*/ false);
    bool nodad = (prefixlen < 0);
    if (nodad) prefixlen = ~prefixlen;
    return ifc_act_on_address(RTM_DELADDR, name, address, prefixlen, nodad);
}

/*