summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/acl.c13
-rw-r--r--main/sorcery.c3
-rw-r--r--main/utils.c25
3 files changed, 35 insertions, 6 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;
diff --git a/main/sorcery.c b/main/sorcery.c
index 3b58188da..99ee2a90e 100644
--- a/main/sorcery.c
+++ b/main/sorcery.c
@@ -52,9 +52,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
/*! \brief Number of buckets for types (should be prime for performance reasons) */
#define TYPE_BUCKETS 53
-/*! \brief Maximum length of an object field name */
-#define MAX_OBJECT_FIELD 128
-
/*! \brief Thread pool for observers */
static struct ast_threadpool *threadpool;
diff --git a/main/utils.c b/main/utils.c
index 8252488a9..b1a95425c 100644
--- a/main/utils.c
+++ b/main/utils.c
@@ -1707,7 +1707,7 @@ char *ast_process_quotes_and_slashes(char *start, char find, char replace_with)
return dataPut;
}
-void ast_join(char *s, size_t len, const char * const w[])
+void ast_join_delim(char *s, size_t len, const char * const w[], unsigned int size, char delim)
{
int x, ofs = 0;
const char *src;
@@ -1715,9 +1715,9 @@ void ast_join(char *s, size_t len, const char * const w[])
/* Join words into a string */
if (!s)
return;
- for (x = 0; ofs < len && w[x]; x++) {
+ for (x = 0; ofs < len && w[x] && x < size; x++) {
if (x > 0)
- s[ofs++] = ' ';
+ s[ofs++] = delim;
for (src = w[x]; *src && ofs < len; src++)
s[ofs++] = *src;
}
@@ -1726,6 +1726,25 @@ void ast_join(char *s, size_t len, const char * const w[])
s[ofs] = '\0';
}
+char *ast_to_camel_case_delim(const char *s, const char *delim)
+{
+ char *res = ast_strdup(s);
+ char *front, *back, *buf = res;
+ int size;
+
+ front = strtok_r(buf, delim, &back);
+
+ while (front) {
+ size = strlen(front);
+ *front = toupper(*front);
+ ast_copy_string(buf, front, size + 1);
+ buf += size;
+ front = strtok_r(NULL, delim, &back);
+ }
+
+ return res;
+}
+
/*
* stringfields support routines.
*/