summaryrefslogtreecommitdiff
path: root/src/irmd/registry.c
diff options
context:
space:
mode:
authorSander Vrijders <[email protected]>2016-10-25 13:22:51 +0200
committerSander Vrijders <[email protected]>2016-10-26 11:52:53 +0200
commitf0646875d0bc941e339d305d0c68b13543cd6f2a (patch)
tree0a3dde0e4f6284ece935d6eff99f26234126f1ab /src/irmd/registry.c
parent1c06b9ff80a2bf7ee6042534fee6098f7e452b59 (diff)
downloadouroboros-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.c45
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,