328     Octstr *meta_group, *meta_param;
   342     if (request->sms.msgdata) {
   354         while (pos < pattern_len) {
   356             if (c == 
'%' && pos + 1 < pattern_len)
   362         if (pos == pattern_len)
   367         for (j = 0; j < num_words; ++j) {
   378         if (request->sms.msgdata) {
   410             switch (request->sms.coding) {
   461         if (request->sms.foreign_id == NULL)
   470         if (request->sms.smsc_id == NULL)
   512         if (request->sms.service == NULL)
   586         for (j = nextarg; j < num_words; ++j) {
   606         if (nextarg >= num_words)
   616         if (nextarg >= num_words)
   709                 if (request->sms.meta_data != NULL) {
   764     if (request->sms.sms_type != 
report_mo) {
   768         pattern = request->sms.dlr_url;
  1000     int is_sms_service, regex_flag = REG_EXTENDED;
  1001     Octstr *accepted_smsc_regex;
  1002     Octstr *accepted_account_regex;
  1003     Octstr *allowed_prefix_regex;
  1004     Octstr *denied_prefix_regex;
  1005     Octstr *allowed_receiver_prefix_regex;
  1006     Octstr *denied_receiver_prefix_regex;
  1013     if (grpname == NULL)
  1027     memset(ot, 0, 
sizeof(*ot));
  1029     if (is_sms_service) {
  1049     } 
else if (post_url != NULL) {
  1053     } 
else if (post_xml != NULL) {
  1057     } 
else if (
file != NULL) {
  1060     } 
else if (
text != NULL) {
  1063     } 
else if (exec != NULL) {
  1073         error(0, 
"Configuration group `sms-service' "  1074                  "did not specify get-url, post-url, post-xml, file or text.");
  1086     if (tmp == NULL && keyword_regex == NULL) {
  1087         error(0, 
"Group 'sms-service' must include either 'keyword' or 'keyword-regex'.");
  1090     if (tmp != NULL && keyword_regex != NULL) {
  1091         error(0, 
"Group 'sms-service' may inlcude either 'keyword' or 'keyword-regex'.");
  1101     } 
else if (tmp != NULL) {
  1105         regex_flag |= REG_ICASE;
  1110         if (aliases != NULL) {
  1127         if (keyword_regex != NULL && (ot->
keyword_regex = gw_regex_comp(keyword_regex, regex_flag)) == NULL) {
  1134     if (ot->
name == NULL)
  1139     if (accepted_smsc != NULL) {
  1144     if (accepted_account != NULL) {
  1149         if (accepted_smsc_regex != NULL) { 
  1150             if ( (ot->
accepted_smsc_regex = gw_regex_comp(accepted_smsc_regex, REG_EXTENDED)) == NULL)
  1155         if (accepted_account_regex != NULL) { 
  1171         allowed_receiver_prefix_regex = 
cfg_get(grp, 
octstr_imm(
"allowed-receiver-prefix-regex"));
  1172         if (allowed_receiver_prefix_regex != NULL) {
  1180         denied_receiver_prefix_regex = 
cfg_get(grp, 
octstr_imm(
"denied-receiver-prefix-regex"));
  1181         if (denied_receiver_prefix_regex != NULL) {
  1206         error(0, 
"Password required for send-sms user");
  1210     if (ot->
name == NULL)
  1217         info(0, 
"Redundant default-smsc for send-sms user %s", 
  1232     if (allowed_prefix_regex != NULL) {
  1239     if (denied_prefix_regex != NULL) {
  1282         warning(0, 
"Service : suffix and prefix are only used if both are set.");
  1286         warning(0, 
"Service : suffix and prefix are only used if type is 'get-url'.");
  1293             error(0, 
"Unsupported value 'forced-priority = %ld' for send-sms user %s,"  1294                      " allowed range is (0..3).",
  1304             error(0, 
"Unsupported value 'max-priority = %ld' for send-sms user %s,"  1305                      " allowed range is (0..3).",
  1314     error(0, 
"Couldn't create a URLTranslation.");
  1375     const int IS_OKAY = 0;
  1376     const int NOT_OKAY = -1;
  1385     if (n - 1 == t->
args)
  1401     const int IS_ALLOWED = 0;
  1402     const int NOT_ALLOWED = -1;
 Dict * dict_create(long size_hint, void(*destroy_value)(void *))
 
int urltrans_add_cfg(URLTranslationList *trans, Cfg *cfg)
 
regex_t * urltrans_black_list_regex(URLTranslation *t)
 
void error(int err, const char *fmt,...)
 
void info(int err, const char *fmt,...)
 
Octstr * urltrans_deny_ip(URLTranslation *t)
 
URLTranslation * urltrans_find(URLTranslationList *trans, Msg *msg)
 
Octstr * urltrans_suffix(URLTranslation *t)
 
regex_t * accepted_smsc_regex
 
static long count_occurences(Octstr *str, Octstr *pat)
 
Octstr * urltrans_allowed_recv_prefix(URLTranslation *t)
 
Octstr * urltrans_forced_smsc(URLTranslation *t)
 
void * gwlist_search(List *list, void *pattern, int(*cmp)(void *, void *))
 
Octstr * urltrans_alt_charset(URLTranslation *t)
 
Numhash * urltrans_black_list(URLTranslation *t)
 
int urltrans_forced_priority(URLTranslation *t)
 
regex_t * allowed_prefix_regex
 
regex_t * urltrans_white_list_regex(URLTranslation *t)
 
gw_assert(wtls_machine->packet_to_send !=NULL)
 
Octstr * urltrans_footer(URLTranslation *t)
 
void dict_put(Dict *dict, Octstr *key, void *value)
 
int accept_x_kannel_headers
 
void gwlist_append(List *list, void *item)
 
Octstr * urltrans_default_smsc(URLTranslation *t)
 
Octstr * urltrans_password(URLTranslation *t)
 
void octstr_append(Octstr *ostr1, const Octstr *ostr2)
 
struct tm gw_gmtime(time_t t)
 
long gwlist_len(List *list)
 
Octstr * urltrans_allowed_prefix(URLTranslation *t)
 
Octstr * urltrans_split_chars(URLTranslation *t)
 
void * gwlist_get(List *list, long pos)
 
Octstr * urltrans_faked_sender(URLTranslation *t)
 
void octstr_append_char(Octstr *ostr, int ch)
 
long octstr_search(const Octstr *haystack, const Octstr *needle, long pos)
 
#define cfg_get(grp, varname)
 
static Octstr * default_smsc(WAPPushUser *u)
 
Octstr * allowed_recv_prefix
 
void uuid_unparse(const uuid_t uu, char *out)
 
regex_t * urltrans_denied_prefix_regex(URLTranslation *t)
 
Octstr * urltrans_dlr_url(URLTranslation *t)
 
Octstr * urltrans_username(URLTranslation *t)
 
void numhash_destroy(Numhash *table)
 
void octstr_append_cstr(Octstr *ostr, const char *cstr)
 
Octstr * urltrans_denied_prefix(URLTranslation *t)
 
static regex_t * black_list_regex
 
regex_t * white_list_regex
 
#define octstr_get_cstr(ostr)
 
#define octstr_copy(ostr, from, len)
 
void octstr_binary_to_hex(Octstr *ostr, int uppercase)
 
int urltrans_assume_plain_text(URLTranslation *t)
 
regex_t * allowed_receiver_prefix_regex
 
long octstr_search_char(const Octstr *ostr, int ch, long pos)
 
Numhash * numhash_create(const char *seek_url)
 
static int check_num_args(URLTranslation *t, List *words)
 
regex_t * urltrans_allowed_prefix_regex(URLTranslation *t)
 
Octstr * urltrans_header(URLTranslation *t)
 
static void strip_keyword(Msg *request)
 
Octstr * octstr_imm(const char *cstr)
 
int does_prefix_match(Octstr *prefix, Octstr *number)
 
int numhash_find_number(Numhash *table, Octstr *nro)
 
static regex_t * white_list_regex
 
int urltrans_dlr_mask(URLTranslation *t)
 
void * gwlist_extract_first(List *list)
 
void grp_dump(CfgGroup *grp)
 
void * dict_get(Dict *dict, Octstr *key)
 
void octstr_delete(Octstr *ostr1, long pos, long len)
 
int uuid_is_null(const uuid_t uu)
 
Octstr * urltrans_fill_escape_codes(Octstr *pattern, Msg *request)
 
#define octstr_duplicate(ostr)
 
List * cfg_get_multi_group(Cfg *cfg, Octstr *name)
 
static URLTranslation * create_onetrans(CfgGroup *grp)
 
int octstr_item_match(void *item, void *pattern)
 
void warning(int err, const char *fmt,...)
 
List * octstr_split_words(const Octstr *ostr)
 
Octstr * urltrans_default_sender(URLTranslation *t)
 
int urltrans_add_one(URLTranslationList *trans, CfgGroup *grp)
 
Octstr * octstr_format(const char *fmt,...)
 
void octstr_destroy(Octstr *ostr)
 
int urltrans_omit_empty(URLTranslation *t)
 
#define octstr_create(cstr)
 
void octstr_destroy_item(void *os)
 
int fields_to_dcs(Msg *msg, int mode)
 
Octstr * urltrans_split_suffix(URLTranslation *t)
 
#define SMS_PARAM_UNDEFINED
 
int urltrans_send_sender(URLTranslation *t)
 
int urltrans_type(URLTranslation *t)
 
int urltrans_accept_x_kannel_headers(URLTranslation *t)
 
Octstr * urltrans_denied_recv_prefix(URLTranslation *t)
 
Numhash * urltrans_white_list(URLTranslation *t)
 
Octstr * urltrans_allow_ip(URLTranslation *t)
 
Octstr * cfg_get_group_name(CfgGroup *grp)
 
long octstr_len(const Octstr *ostr)
 
void dict_destroy(Dict *dict)
 
regex_t * denied_receiver_prefix_regex
 
regex_t * accepted_account_regex
 
void octstr_append_decimal(Octstr *ostr, long value)
 
int cfg_get_bool(int *n, CfgGroup *grp, Octstr *varname)
 
URLTranslationList * urltrans_create(void)
 
static int check_allowed_translation(URLTranslation *t, Octstr *smsc, Octstr *sender, Octstr *receiver, Octstr *account)
 
URLTranslation * urltrans_find_service(URLTranslationList *trans, Msg *msg)
 
URLTranslation * urltrans_find_username(URLTranslationList *trans, Octstr *name)
 
int urltrans_strip_keyword(URLTranslation *t)
 
void debug(const char *place, int err, const char *fmt,...)
 
int cfg_get_integer(long *n, CfgGroup *grp, Octstr *varname)
 
Octstr * denied_recv_prefix
 
#define MSG_PARAM_UNDEFINED
 
int octstr_str_compare(const Octstr *ostr, const char *str)
 
int urltrans_max_messages(URLTranslation *t)
 
void octstr_format_append(Octstr *os, const char *fmt,...)
 
regex_t * black_list_regex
 
regex_t * denied_prefix_regex
 
static URLTranslation * find_default_translation(URLTranslationList *trans, Octstr *smsc, Octstr *sender, Octstr *receiver, Octstr *account)
 
Octstr * urltrans_prefix(URLTranslation *t)
 
void urltrans_destroy(URLTranslationList *trans)
 
int octstr_get_char(const Octstr *ostr, long pos)
 
int urltrans_max_priority(URLTranslation *t)
 
Octstr * urltrans_name(URLTranslation *t)
 
static Octstr * forced_smsc(WAPPushUser *u)
 
static URLTranslation * find_translation(URLTranslationList *trans, Msg *msg)
 
List * octstr_split(const Octstr *os, const Octstr *sep)
 
static XMLRPCDocument * msg
 
Octstr * urltrans_get_pattern(URLTranslation *t, Msg *request)
 
int urltrans_concatenation(URLTranslation *t)
 
void octstr_url_encode(Octstr *ostr)
 
static List * get_matching_translations(URLTranslationList *trans, Octstr *msg)
 
static void destroy_onetrans(void *ot)
 
static void destroy_keyword_list(void *list)
 
int octstr_compare(const Octstr *ostr1, const Octstr *ostr2)
 
void gwlist_destroy(List *list, gwlist_item_destructor_t *destructor)