aboutsummaryrefslogtreecommitdiffstats
path: root/acl.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-07-12 02:19:41 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-07-12 02:19:41 +0000
commit9e15379a0676a2f3b7430a6a2ead38ac16e702ea (patch)
tree9dd27b31dcb3d9292ecd9b24aeab42daa35974ab /acl.c
parent7b2753f2231eaae3957f49d50d49cbe3bfd0a9ba (diff)
allow explicit source address/port selection for peers (bug #4257, with minor mods)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6096 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'acl.c')
-rwxr-xr-xacl.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/acl.c b/acl.c
index 85abe84f7..cf695474f 100755
--- a/acl.c
+++ b/acl.c
@@ -372,6 +372,22 @@ int ast_netsock_release(struct ast_netsock_list *list)
return 0;
}
+struct ast_netsock *ast_netsock_find(struct ast_netsock_list *list,
+ struct sockaddr_in *sa)
+{
+ struct ast_netsock *sock = NULL;
+
+ ASTOBJ_CONTAINER_TRAVERSE(list, !sock, {
+ ASTOBJ_RDLOCK(iterator);
+ if (!inaddrcmp(&iterator->bindaddr, sa))
+ sock = iterator;
+ ASTOBJ_UNLOCK(iterator);
+ });
+
+ return sock;
+}
+
+
const struct sockaddr_in *ast_netsock_boundaddr(struct ast_netsock *ns)
{
return &(ns->bindaddr);