summaryrefslogtreecommitdiff
path: root/acl.c
diff options
context:
space:
mode:
authorKevin P. Fleming <kpfleming@digium.com>2005-07-12 02:19:41 +0000
committerKevin P. Fleming <kpfleming@digium.com>2005-07-12 02:19:41 +0000
commitd7e09f233f0725efc23099c53cb23ddaca6cec5b (patch)
tree9dd27b31dcb3d9292ecd9b24aeab42daa35974ab /acl.c
parentb06daf5859508a2740bc03a748cb57ae3c01d122 (diff)
allow explicit source address/port selection for peers (bug #4257, with minor mods)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6096 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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);