Added request ip to detokenizer interface
This commit is contained in:
parent
88d7ff9a84
commit
fdd73ba3b6
|
@ -25,7 +25,7 @@ static int mms_detokenizer_fini(void)
|
||||||
return 0;
|
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 the MSISDN matching the token as a new Octstr */
|
||||||
return octstr_create("+45xxxxxx");
|
return octstr_create("+45xxxxxx");
|
||||||
|
|
|
@ -31,7 +31,7 @@ typedef struct MmsDetokenizerFuncStruct {
|
||||||
/* Looks up the token and returns the msisdn as a new Octstr.
|
/* Looks up the token and returns the msisdn as a new Octstr.
|
||||||
* Return NULL on error, otherwise an 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
|
/* Given an msisdn, returns the token associated
|
||||||
* Return NULL on error, otherwise an Octstr
|
* Return NULL on error, otherwise an Octstr
|
||||||
|
|
|
@ -30,7 +30,7 @@ static int mms_detokenizer_fini(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Octstr *mms_detokenize(Octstr * token)
|
static Octstr *mms_detokenize(Octstr * token, Octstr *request_ip)
|
||||||
{
|
{
|
||||||
Octstr *cmd = NULL, *msisdn = NULL;
|
Octstr *cmd = NULL, *msisdn = NULL;
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
|
|
@ -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)
|
MmsDetokenizerFuncStruct* detokenizerfuncs)
|
||||||
{
|
{
|
||||||
/* Either we have a WAP gateway header as defined, or we look for
|
/* 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) {
|
if (!phonenum || octstr_len(phonenum) == 0) {
|
||||||
List *l = octstr_split(send_url, octstr_imm("/"));
|
List *l = octstr_split(send_url, octstr_imm("/"));
|
||||||
|
Octstr *ip = http_header_value(request_hdrs,
|
||||||
|
requestip_header);
|
||||||
|
|
||||||
if (l && list_len(l) > 1) {
|
if (l && list_len(l) > 1) {
|
||||||
if (detokenizerfuncs)
|
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)
|
if (l)
|
||||||
list_destroy(l, (list_item_destructor_t *)octstr_destroy);
|
list_destroy(l, (list_item_destructor_t *)octstr_destroy);
|
||||||
|
|
|
@ -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 *mms_find_sender_msisdn(Octstr *send_url, List *request_hdrs,
|
||||||
Octstr *msisdn_header,
|
Octstr *msisdn_header,
|
||||||
|
Octstr *requestip_header,
|
||||||
MmsDetokenizerFuncStruct *detokenizerfuncs);
|
MmsDetokenizerFuncStruct *detokenizerfuncs);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -144,6 +144,7 @@ int main(int argc, char *argv[])
|
||||||
h.base_client_addr = mms_find_sender_msisdn(h.url,
|
h.base_client_addr = mms_find_sender_msisdn(h.url,
|
||||||
h.headers,
|
h.headers,
|
||||||
settings->wap_gw_msisdn_header,
|
settings->wap_gw_msisdn_header,
|
||||||
|
settings->wap_gw_ip_header,
|
||||||
settings->mms_detokenizefuncs);
|
settings->mms_detokenizefuncs);
|
||||||
|
|
||||||
if (!h.base_client_addr) { /* Set to IP sender... XXXX assumes ipv4 only for now*/
|
if (!h.base_client_addr) { /* Set to IP sender... XXXX assumes ipv4 only for now*/
|
||||||
|
|
Loading…
Reference in New Issue