diff options
Diffstat (limited to 'main/acl.c')
-rw-r--r-- | main/acl.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/main/acl.c b/main/acl.c index a4567beda..c341125fd 100644 --- a/main/acl.c +++ b/main/acl.c @@ -664,6 +664,19 @@ struct ast_ha *ast_append_ha(const char *sense, const char *stuff, struct ast_ha return ret; } +void ast_ha_join(const struct ast_ha *ha, struct ast_str **buf) +{ + for (; ha; ha = ha->next) { + const char *addr = ast_strdupa(ast_sockaddr_stringify_addr(&ha->addr)); + ast_str_append(buf, 0, "%s%s/%s", + ha->sense == AST_SENSE_ALLOW ? "!" : "", + addr, ast_sockaddr_stringify_addr(&ha->netmask)); + if (ha->next) { + ast_str_append(buf, 0, ","); + } + } +} + enum ast_acl_sense ast_apply_acl(struct ast_acl_list *acl_list, const struct ast_sockaddr *addr, const char *purpose) { struct ast_acl *acl; |