diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-07-12 02:19:41 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-07-12 02:19:41 +0000 |
commit | 9e15379a0676a2f3b7430a6a2ead38ac16e702ea (patch) | |
tree | 9dd27b31dcb3d9292ecd9b24aeab42daa35974ab /acl.c | |
parent | 7b2753f2231eaae3957f49d50d49cbe3bfd0a9ba (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-x | acl.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -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); |