#define switch_set_string(_dst, _src) switch_copy_string(_dst, _src, sizeof(_dst))
+SWITCH_DECLARE(char *) switch_url_encode(const char *url, char *buf, size_t len);
+SWITCH_DECLARE(char *) switch_url_decode(char *s);
static inline char *switch_sanitize_number(char *number)
{
- char *p = number, *q;
+ char *p, *q;
char warp[] = "/:";
int i;
+ char *val;
switch_assert(number);
- if (!(strchr(p, '/') || strchr(p, ':') || strchr(p, '@') || strchr(p, '%'))) {
+ p = strdup(number);
+ val = p;
+ switch_url_decode(val);
+
+ if (!(strchr(val, '/') || strchr(val, ':') || strchr(val, '@') || strchr(val, '%'))) {
return number;
}
- while ((q = strrchr(p, '@')))
+ while ((q = strrchr(val, '@')))
*q = '\0';
- while ((q = strrchr(p, '%')))
+ while ((q = strrchr(val, '%')))
*q = '\0';
for (i = 0; i < (int) strlen(warp); i++) {
- while (p && (q = strchr(p, warp[i])))
- p = q + 1;
+ while (val && (q = strchr(val, warp[i])))
+ val = q + 1;
}
+ free(p);
- return p;
+ return val;
}
static inline switch_bool_t switch_string_var_check(char *s, switch_bool_t disable)
#define SWITCH_READ_ACCEPTABLE(status) (status == SWITCH_STATUS_SUCCESS || status == SWITCH_STATUS_BREAK)
-SWITCH_DECLARE(char *) switch_url_encode(const char *url, char *buf, size_t len);
-SWITCH_DECLARE(char *) switch_url_decode(char *s);
SWITCH_DECLARE(switch_bool_t) switch_simple_email(const char *to,
const char *from,
const char *headers,