Added support for HTTP proxy host/port a la Kannel (used for all HTTP outgoing transactions)
This commit is contained in:
parent
df3efbd19c
commit
6f7e3ea12d
|
@ -538,7 +538,8 @@ beginning of a new group with the given name.</p>
|
|||
<p >The core group is
|
||||
<i>core</i> and defines the log file location, log level (amount of debugging
|
||||
information – the lower the number the more debugging
|
||||
information) and the location of the access log.
|
||||
information), the location of the access log and the HTTP proxy host/port if any. (HTTP proxy host/port
|
||||
is specified using the exact same parameters as used by Kannel.)
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
|
|
@ -73,19 +73,64 @@ static void *load_module(CfgGroup *grp, char *config_key, char *symbolname)
|
|||
return retval;
|
||||
}
|
||||
|
||||
MmsBoxSettings *mms_load_mmsbox_settings(Cfg *cfg)
|
||||
MmsBoxSettings *mms_load_mmsbox_settings(Cfg *cfg, List **proxyrelays)
|
||||
{
|
||||
long loglevel;
|
||||
Octstr *s;
|
||||
Octstr *log, *alog;
|
||||
List *l;
|
||||
CfgGroup *grp = cfg_get_single_group(cfg, octstr_imm("mmsbox"));
|
||||
CfgGroup *cgrp = cfg_get_single_group(cfg, octstr_imm("core"));
|
||||
MmsBoxSettings *m = gw_malloc(sizeof *m);
|
||||
long port = -1;
|
||||
Octstr *user, *pass, *from;
|
||||
Octstr *http_proxy_host, *user, *pass, *from;
|
||||
Octstr *qdir = NULL;
|
||||
int i, n;
|
||||
|
||||
memset(m, 0, sizeof *m);
|
||||
|
||||
/* Set the log file. */
|
||||
log = cfg_get(cgrp, octstr_imm("log-file"));
|
||||
if (log != NULL) {
|
||||
if (cfg_get_integer(&loglevel, cgrp, octstr_imm("log-level")) == -1)
|
||||
loglevel = 0;
|
||||
log_open(octstr_get_cstr(log), loglevel, GW_NON_EXCL);
|
||||
octstr_destroy(log);
|
||||
}
|
||||
|
||||
/* Get access log and open it. */
|
||||
alog = cfg_get(cgrp, octstr_imm("access-log"));
|
||||
if (alog) {
|
||||
alog_open(octstr_get_cstr(alog), 1, 1);
|
||||
octstr_destroy(alog);
|
||||
}
|
||||
|
||||
/* look for http proxy. If set, use it. */
|
||||
if ((http_proxy_host = cfg_get(cgrp, octstr_imm("http-proxy-host"))) != NULL) {
|
||||
|
||||
Octstr *username = cfg_get(cgrp,
|
||||
octstr_imm("http-proxy-username"));
|
||||
Octstr *password = cfg_get(cgrp,
|
||||
octstr_imm("http-proxy-password"));
|
||||
List *exceptions = cfg_get_list(cgrp,
|
||||
octstr_imm("http-proxy-exceptions"));
|
||||
long http_proxy_port = -1;
|
||||
|
||||
cfg_get_integer(&http_proxy_port, cgrp, octstr_imm("http-proxy-port"));
|
||||
|
||||
if (http_proxy_port > 0)
|
||||
http_use_proxy(http_proxy_host, http_proxy_port,
|
||||
exceptions, username, password);
|
||||
octstr_destroy(http_proxy_host);
|
||||
octstr_destroy(username);
|
||||
octstr_destroy(password);
|
||||
list_destroy(exceptions, octstr_destroy_item);
|
||||
}
|
||||
|
||||
if (proxyrelays)
|
||||
*proxyrelays = mms_proxy_relays(cfg);
|
||||
|
||||
|
||||
s = cfg_getx(grp, octstr_imm("local-mmsc-domains"));
|
||||
|
||||
if (s) {
|
||||
|
|
|
@ -128,7 +128,7 @@ extern char *mms_hostname; /* Our hostname. */
|
|||
enum mms_loc_t {MMS_LOC_MMBOX = 1, MMS_LOC_MQUEUE=2};
|
||||
|
||||
/* Returns mmsbox settings. */
|
||||
MmsBoxSettings *mms_load_mmsbox_settings(Cfg *cfg);
|
||||
MmsBoxSettings *mms_load_mmsbox_settings(Cfg *cfg, List **proxyrelays);
|
||||
|
||||
|
||||
/* Returns list of MmsProxyRelay */
|
||||
|
|
|
@ -34,9 +34,7 @@ int main(int argc, char *argv[])
|
|||
{
|
||||
int cfidx;
|
||||
Octstr *fname;
|
||||
CfgGroup *grp;
|
||||
Octstr *log, *alog;
|
||||
long loglevel;
|
||||
|
||||
MIMEEntity *mm;
|
||||
MmsMsg *msg;
|
||||
|
||||
|
@ -62,30 +60,9 @@ int main(int argc, char *argv[])
|
|||
|
||||
info(0, "----------------------------------------");
|
||||
info(0, " MMSC Email2MMS Tool version %s starting", MMSC_VERSION);
|
||||
|
||||
grp = cfg_get_single_group(cfg, octstr_imm("core"));
|
||||
log = cfg_get(grp, octstr_imm("log-file"));
|
||||
if (log != NULL) {
|
||||
if (cfg_get_integer(&loglevel, grp, octstr_imm("log-level")) == -1)
|
||||
loglevel = 0;
|
||||
log_open(octstr_get_cstr(log), loglevel, GW_NON_EXCL);
|
||||
octstr_destroy(log);
|
||||
}
|
||||
|
||||
|
||||
/* Get access log and open it. */
|
||||
alog = cfg_get(grp, octstr_imm("access-log"));
|
||||
if (alog) {
|
||||
alog_open(octstr_get_cstr(alog), 1, 1);
|
||||
octstr_destroy(alog);
|
||||
}
|
||||
|
||||
/* Load proxy relays. */
|
||||
|
||||
proxyrelays = mms_proxy_relays(cfg);
|
||||
|
||||
|
||||
/* Load settings. */
|
||||
settings = mms_load_mmsbox_settings(cfg);
|
||||
settings = mms_load_mmsbox_settings(cfg, &proxyrelays);
|
||||
|
||||
if (!settings)
|
||||
panic(0, "No global MMSC configuration!");
|
||||
|
|
|
@ -58,9 +58,7 @@ int main(int argc, char *argv[])
|
|||
{
|
||||
int cfidx;
|
||||
Octstr *fname;
|
||||
CfgGroup *grp;
|
||||
Octstr *log, *alog;
|
||||
long loglevel;
|
||||
|
||||
|
||||
MmsHTTPClientInfo h = {NULL};
|
||||
|
||||
|
@ -86,28 +84,12 @@ int main(int argc, char *argv[])
|
|||
info(0, "----------------------------------------");
|
||||
info(0, " " MM_NAME " MMSC Proxy version %s starting", MMSC_VERSION);
|
||||
|
||||
grp = cfg_get_single_group(cfg, octstr_imm("core"));
|
||||
log = cfg_get(grp, octstr_imm("log-file"));
|
||||
if (log != NULL) {
|
||||
if (cfg_get_integer(&loglevel, grp, octstr_imm("log-level")) == -1)
|
||||
loglevel = 0;
|
||||
log_open(octstr_get_cstr(log), loglevel, GW_NON_EXCL);
|
||||
octstr_destroy(log);
|
||||
}
|
||||
|
||||
/* Get access log and open it. */
|
||||
alog = cfg_get(grp, octstr_imm("access-log"));
|
||||
if (alog) {
|
||||
alog_open(octstr_get_cstr(alog), 1, 1);
|
||||
octstr_destroy(alog);
|
||||
}
|
||||
/* Load proxy relays. */
|
||||
|
||||
proxyrelays = mms_proxy_relays(cfg);
|
||||
|
||||
/* Load settings. */
|
||||
settings = mms_load_mmsbox_settings(cfg);
|
||||
|
||||
settings = mms_load_mmsbox_settings(cfg, &proxyrelays);
|
||||
|
||||
cfg_destroy(cfg);
|
||||
|
||||
if (!settings)
|
||||
panic(0, "No global MMSC configuration!");
|
||||
|
||||
|
|
|
@ -23,14 +23,10 @@ static void quit_now(int notused)
|
|||
rstop = 1;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int cfidx;
|
||||
Octstr *fname;
|
||||
CfgGroup *grp;
|
||||
Octstr *log, *alog;
|
||||
long loglevel;
|
||||
|
||||
long qthread = 0;
|
||||
|
||||
|
@ -55,28 +51,10 @@ int main(int argc, char *argv[])
|
|||
info(0, "----------------------------------------");
|
||||
info(0, " " MM_NAME " MMSC Relay version %s starting", MMSC_VERSION);
|
||||
|
||||
grp = cfg_get_single_group(cfg, octstr_imm("core"));
|
||||
log = cfg_get(grp, octstr_imm("log-file"));
|
||||
if (log != NULL) {
|
||||
if (cfg_get_integer(&loglevel, grp, octstr_imm("log-level")) == -1)
|
||||
loglevel = 0;
|
||||
log_open(octstr_get_cstr(log), loglevel, GW_NON_EXCL);
|
||||
octstr_destroy(log);
|
||||
}
|
||||
|
||||
/* Get access log and open it. */
|
||||
alog = cfg_get(grp, octstr_imm("access-log"));
|
||||
if (alog) {
|
||||
alog_open(octstr_get_cstr(alog), 1, 1);
|
||||
octstr_destroy(alog);
|
||||
}
|
||||
settings = mms_load_mmsbox_settings(cfg,&proxyrelays);
|
||||
|
||||
/* Load proxy relays. */
|
||||
|
||||
proxyrelays = mms_proxy_relays(cfg);
|
||||
/* Load settings. */
|
||||
|
||||
settings = mms_load_mmsbox_settings(cfg);
|
||||
cfg_destroy(cfg);
|
||||
|
||||
if (!settings)
|
||||
panic(0, "No global MMSC configuration!");
|
||||
|
|
|
@ -86,9 +86,6 @@ int main(int argc, char *argv[])
|
|||
Octstr *fname, *s;
|
||||
|
||||
int cfidx;
|
||||
CfgGroup *grp;
|
||||
Octstr *log, *alog;
|
||||
long loglevel;
|
||||
int msize;
|
||||
|
||||
if (argc < 2)
|
||||
|
@ -115,28 +112,9 @@ int main(int argc, char *argv[])
|
|||
info(0, "----------------------------------------");
|
||||
info(0, " MMSC Message sender runner version %s starting", MMSC_VERSION);
|
||||
|
||||
grp = cfg_get_single_group(cfg, octstr_imm("core"));
|
||||
log = cfg_get(grp, octstr_imm("log-file"));
|
||||
if (log != NULL) {
|
||||
if (cfg_get_integer(&loglevel, grp, octstr_imm("log-level")) == -1)
|
||||
loglevel = 0;
|
||||
log_open(octstr_get_cstr(log), loglevel, GW_NON_EXCL);
|
||||
octstr_destroy(log);
|
||||
}
|
||||
|
||||
/* Get access log and open it. */
|
||||
alog = cfg_get(grp, octstr_imm("access-log"));
|
||||
if (alog) {
|
||||
alog_open(octstr_get_cstr(alog), 1, 1);
|
||||
octstr_destroy(alog);
|
||||
}
|
||||
|
||||
/* Load proxy relays. */
|
||||
|
||||
proxyrelays = mms_proxy_relays(cfg);
|
||||
|
||||
/* Load settings. */
|
||||
settings = mms_load_mmsbox_settings(cfg);
|
||||
settings = mms_load_mmsbox_settings(cfg, &proxyrelays);
|
||||
|
||||
if (!settings)
|
||||
panic(0, "No global MMSC configuration!");
|
||||
|
|
Loading…
Reference in New Issue