mn_socket; add LINK flag, mn_itf_get() convenience function.

Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/7701a125
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/7701a125
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/7701a125

Branch: refs/heads/master
Commit: 7701a125257fc850a129f8fc2e6a5695094d0a4a
Parents: e120cfc
Author: Marko Kiiskila <ma...@runtime.io>
Authored: Fri Apr 14 12:47:19 2017 -0700
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Fri Apr 14 13:21:30 2017 -0700

----------------------------------------------------------------------
 net/ip/mn_socket/include/mn_socket/mn_socket.h |  7 +++++++
 net/ip/mn_socket/src/mn_socket.c               | 16 ++++++++++++++++
 2 files changed, 23 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/7701a125/net/ip/mn_socket/include/mn_socket/mn_socket.h
----------------------------------------------------------------------
diff --git a/net/ip/mn_socket/include/mn_socket/mn_socket.h 
b/net/ip/mn_socket/include/mn_socket/mn_socket.h
index b21bc33..b90ce1a 100644
--- a/net/ip/mn_socket/include/mn_socket/mn_socket.h
+++ b/net/ip/mn_socket/include/mn_socket/mn_socket.h
@@ -55,6 +55,7 @@ extern "C" {
 #define MN_EUNKNOWN             11
 #define MN_EADDRNOTAVAIL        12
 #define MN_ENETUNREACH          13
+#define MN_OPNOSUPPORT          14
 
 /*
  * Multicast macros
@@ -198,6 +199,7 @@ const char *mn_inet_ntop(int af, const void *src, void 
*dst, int len);
  */
 #define MN_ITF_F_UP        1
 #define MN_ITF_F_MULTICAST 2
+#define MN_ITF_F_LINK      4
 
 struct mn_itf {
     char mif_name[MN_ITF_NAME_MAX];
@@ -220,6 +222,11 @@ struct mn_itf_addr {
 int mn_itf_getnext(struct mn_itf *);
 int mn_itf_addr_getnext(struct mn_itf *, struct mn_itf_addr *);
 
+/*
+ * Find specific interface, given name.
+ */
+int mn_itf_get(char *name, struct mn_itf *mi);
+
 #ifdef __cplusplus
 }
 #endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/7701a125/net/ip/mn_socket/src/mn_socket.c
----------------------------------------------------------------------
diff --git a/net/ip/mn_socket/src/mn_socket.c b/net/ip/mn_socket/src/mn_socket.c
index 2d0d06e..d0070c3 100644
--- a/net/ip/mn_socket/src/mn_socket.c
+++ b/net/ip/mn_socket/src/mn_socket.c
@@ -19,6 +19,7 @@
 
 #include <inttypes.h>
 #include <assert.h>
+#include <string.h>
 
 #include <os/os.h>
 
@@ -136,3 +137,18 @@ mn_itf_addr_getnext(struct mn_itf *mi, struct mn_itf_addr 
*mia)
 {
     return mn_sock_tgt->mso_itf_addr_getnext(mi, mia);
 }
+
+int
+mn_itf_get(char *name, struct mn_itf *mi)
+{
+    memset(mi, 0, sizeof(*mi));
+    while (1) {
+        if (mn_itf_getnext(mi)) {
+            break;
+        }
+        if (!strcmp(name, mi->mif_name)) {
+            return 0;
+        }
+    }
+    return -1;
+}

Reply via email to