diff options
author | Dimitri Staessens <[email protected]> | 2021-06-18 17:37:11 +0200 |
---|---|---|
committer | Sander Vrijders <[email protected]> | 2021-06-21 08:45:25 +0200 |
commit | 1a13d42a0792a4a12a40c813072355502e87c42f (patch) | |
tree | 9c86f115e7f511482d178956f67af432aa9ee39a /src/ipcpd/eth/eth.c | |
parent | 7b13504e2a47a40ae7e5283de41d48ca3f7efb53 (diff) | |
download | ouroboros-1a13d42a0792a4a12a40c813072355502e87c42f.tar.gz ouroboros-1a13d42a0792a4a12a40c813072355502e87c42f.zip |
ipcpd: Move RIB initialization to common ground
This moves Resource Information Base (RIB) initialization into the
ipcp_init() function, so all IPCPs initialize a RIB. The RIB not shows
some common IPCP information, such as the IPCP name, IPCP state and
the layer name if the IPCP is part of a layer.
The initialization of the hash algorithm and layer name was moved out
of the common ipcp source because IPCPs may only know this information
after enrollment. Some IPCPs were not even storing this information.
Signed-off-by: Dimitri Staessens <[email protected]>
Signed-off-by: Sander Vrijders <[email protected]>
Diffstat (limited to 'src/ipcpd/eth/eth.c')
-rw-r--r-- | src/ipcpd/eth/eth.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/ipcpd/eth/eth.c b/src/ipcpd/eth/eth.c index a1eeb3fa..13a4a7e3 100644 --- a/src/ipcpd/eth/eth.c +++ b/src/ipcpd/eth/eth.c @@ -1283,6 +1283,13 @@ static int eth_ipcp_bootstrap(const struct ipcp_config * conf) assert(conf); assert(conf->type == THIS_TYPE); + ipcpi.dir_hash_algo = conf->layer_info.dir_hash_algo; + ipcpi.layer_name = strdup(conf->layer_info.layer_name); + if (ipcpi.layer_name == NULL) { + log_err("Failed to set layer name"); + return -ENOMEM; + } + if (conf->dev == NULL) { log_err("Device name is NULL."); return -1; @@ -1833,7 +1840,7 @@ int main(int argc, { int i; - if (ipcp_init(argc, argv, ð_ops) < 0) + if (ipcp_init(argc, argv, ð_ops, THIS_TYPE) < 0) goto fail_init; if (eth_data_init() < 0) { |