From fdd73ba3b63fb10561ac779ec650a94e9cb7eb96 Mon Sep 17 00:00:00 2001 From: bagyenda <> Date: Tue, 27 Sep 2005 16:46:09 +0000 Subject: [PATCH] Added request ip to detokenizer interface --- mbuni/mmsc/mms_detokenize.c | 2 +- mbuni/mmsc/mms_detokenize.h | 2 +- mbuni/mmsc/mms_detokenize_shell.c | 2 +- mbuni/mmsc/mmsc_cfg.c | 8 ++++++-- mbuni/mmsc/mmsc_cfg.h | 1 + mbuni/mmsc/mmsproxy.c | 1 + 6 files changed, 11 insertions(+), 5 deletions(-) diff --git a/mbuni/mmsc/mms_detokenize.c b/mbuni/mmsc/mms_detokenize.c index f0a5793..27fdc6e 100644 --- a/mbuni/mmsc/mms_detokenize.c +++ b/mbuni/mmsc/mms_detokenize.c @@ -25,7 +25,7 @@ static int mms_detokenizer_fini(void) return 0; } -static Octstr *mms_detokenize(Octstr * token) +static Octstr *mms_detokenize(Octstr * token, Octstr *request_ip) { /* Return the MSISDN matching the token as a new Octstr */ return octstr_create("+45xxxxxx"); diff --git a/mbuni/mmsc/mms_detokenize.h b/mbuni/mmsc/mms_detokenize.h index 12cf2c5..4e1a503 100644 --- a/mbuni/mmsc/mms_detokenize.h +++ b/mbuni/mmsc/mms_detokenize.h @@ -31,7 +31,7 @@ typedef struct MmsDetokenizerFuncStruct { /* Looks up the token and returns the msisdn as a new Octstr. * Return NULL on error, otherwise an Octstr */ - Octstr *(*mms_detokenize)(Octstr * token); + Octstr *(*mms_detokenize)(Octstr * token, Octstr *request_ip); /* Given an msisdn, returns the token associated * Return NULL on error, otherwise an Octstr diff --git a/mbuni/mmsc/mms_detokenize_shell.c b/mbuni/mmsc/mms_detokenize_shell.c index 65c59dc..698b634 100644 --- a/mbuni/mmsc/mms_detokenize_shell.c +++ b/mbuni/mmsc/mms_detokenize_shell.c @@ -30,7 +30,7 @@ static int mms_detokenizer_fini(void) return 0; } -static Octstr *mms_detokenize(Octstr * token) +static Octstr *mms_detokenize(Octstr * token, Octstr *request_ip) { Octstr *cmd = NULL, *msisdn = NULL; FILE *fp; diff --git a/mbuni/mmsc/mmsc_cfg.c b/mbuni/mmsc/mmsc_cfg.c index cf9192d..b90d0b6 100644 --- a/mbuni/mmsc/mmsc_cfg.c +++ b/mbuni/mmsc/mmsc_cfg.c @@ -373,7 +373,9 @@ Octstr *mms_makefetchurl(char *qf, Octstr *token, int loc, } -Octstr *mms_find_sender_msisdn(Octstr *send_url, List *request_hdrs, Octstr *msisdn_header, +Octstr *mms_find_sender_msisdn(Octstr *send_url, List *request_hdrs, + Octstr *msisdn_header, + Octstr *requestip_header, MmsDetokenizerFuncStruct* detokenizerfuncs) { /* Either we have a WAP gateway header as defined, or we look for @@ -385,10 +387,12 @@ Octstr *mms_find_sender_msisdn(Octstr *send_url, List *request_hdrs, Octstr *msi if (!phonenum || octstr_len(phonenum) == 0) { List *l = octstr_split(send_url, octstr_imm("/")); + Octstr *ip = http_header_value(request_hdrs, + requestip_header); if (l && list_len(l) > 1) { if (detokenizerfuncs) - phonenum = detokenizerfuncs->mms_detokenize(list_get(l, list_len(l) - 1)); + phonenum = detokenizerfuncs->mms_detokenize(list_get(l, list_len(l) - 1), ip); } if (l) list_destroy(l, (list_item_destructor_t *)octstr_destroy); diff --git a/mbuni/mmsc/mmsc_cfg.h b/mbuni/mmsc/mmsc_cfg.h index c005e9c..909dde0 100644 --- a/mbuni/mmsc/mmsc_cfg.h +++ b/mbuni/mmsc/mmsc_cfg.h @@ -106,5 +106,6 @@ extern Octstr *mms_makefetchurl(char *qf, Octstr *token, int loc, Octstr *mms_find_sender_msisdn(Octstr *send_url, List *request_hdrs, Octstr *msisdn_header, + Octstr *requestip_header, MmsDetokenizerFuncStruct *detokenizerfuncs); #endif diff --git a/mbuni/mmsc/mmsproxy.c b/mbuni/mmsc/mmsproxy.c index ae682a4..562a325 100644 --- a/mbuni/mmsc/mmsproxy.c +++ b/mbuni/mmsc/mmsproxy.c @@ -144,6 +144,7 @@ int main(int argc, char *argv[]) h.base_client_addr = mms_find_sender_msisdn(h.url, h.headers, settings->wap_gw_msisdn_header, + settings->wap_gw_ip_header, settings->mms_detokenizefuncs); if (!h.base_client_addr) { /* Set to IP sender... XXXX assumes ipv4 only for now*/