summaryrefslogtreecommitdiff
path: root/main/acl.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/acl.c')
-rw-r--r--main/acl.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/main/acl.c b/main/acl.c
index 213d6d8aa..5c3b633d7 100644
--- a/main/acl.c
+++ b/main/acl.c
@@ -677,6 +677,19 @@ void ast_ha_join(const struct ast_ha *ha, struct ast_str **buf)
}
}
+void ast_ha_join_cidr(const struct ast_ha *ha, struct ast_str **buf)
+{
+ for (; ha; ha = ha->next) {
+ const char *addr = ast_sockaddr_stringify_addr(&ha->addr);
+ ast_str_append(buf, 0, "%s%s/%d",
+ ha->sense == AST_SENSE_ALLOW ? "!" : "",
+ addr, ast_sockaddr_cidr_bits(&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;