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; +}