diff options
author | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2016-10-25 13:22:51 +0200 |
---|---|---|
committer | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2016-10-26 11:52:53 +0200 |
commit | f0646875d0bc941e339d305d0c68b13543cd6f2a (patch) | |
tree | 0a3dde0e4f6284ece935d6eff99f26234126f1ab /src/irmd/registry.c | |
parent | 1c06b9ff80a2bf7ee6042534fee6098f7e452b59 (diff) | |
download | ouroboros-f0646875d0bc941e339d305d0c68b13543cd6f2a.tar.gz ouroboros-f0646875d0bc941e339d305d0c68b13543cd6f2a.zip |
lib, irmd, ipcpd: Add name querying to IPCPs
This adds the ability to query IPCPs if a name can be reached through
them, e.g. if a name is available in a DIF. This means that in the
shim-udp a DNS query is performed, in the shim-eth-llc an ARP-like
query has been added, in the local a check is done to see if the name
is registered, and in the normal currently no application is reachable
through it.
Diffstat (limited to 'src/irmd/registry.c')
-rw-r--r-- | src/irmd/registry.c | 45 |
1 files changed, 4 insertions, 41 deletions
diff --git a/src/irmd/registry.c b/src/irmd/registry.c index 9442f3db..07ec370c 100644 --- a/src/irmd/registry.c +++ b/src/irmd/registry.c @@ -20,15 +20,16 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include "registry.h" -#include "utils.h" - #define OUROBOROS_PREFIX "registry" +#include <ouroboros/config.h> #include <ouroboros/errno.h> #include <ouroboros/logs.h> #include <ouroboros/irm_config.h> +#include "registry.h" +#include "utils.h" + #include <stdlib.h> #include <stdbool.h> #include <string.h> @@ -405,44 +406,6 @@ void registry_del_api(struct list_head * registry, return; } -char * registry_get_dif_for_dst(struct list_head * registry, - char * dst_name) -{ - struct list_head * pos = NULL; - struct reg_entry * re = - registry_get_entry(registry, dst_name); - - if (re != NULL) { /* local AP */ - list_for_each(pos, &re->difs) { - struct reg_dif * rd = - list_entry(pos, struct reg_dif, next); - if (rd->type == IPCP_LOCAL) - return rd->dif_name; - } - - list_for_each(pos, &re->difs) { - struct reg_dif * rd = - list_entry(pos, struct reg_dif, next); - if (rd->type == IPCP_NORMAL) - return rd->dif_name; - } - - list_for_each(pos, &re->difs) { - struct reg_dif * rd = - list_entry(pos, struct reg_dif, next); - if (rd->type == IPCP_SHIM_UDP) - return rd->dif_name; - } - - LOG_DBG("Could not find DIF for %s.", dst_name); - - return NULL; - } else { - LOG_DBG("No local ap %s found.", dst_name); - return NULL; - } -} - int registry_add_name_to_dif(struct list_head * registry, char * name, char * dif_name, |