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
|
<p >The core group is
|
||||||
<i>core</i> and defines the log file location, log level (amount of debugging
|
<i>core</i> and defines the log file location, log level (amount of debugging
|
||||||
information – the lower the number the more 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>
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -73,19 +73,64 @@ static void *load_module(CfgGroup *grp, char *config_key, char *symbolname)
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
MmsBoxSettings *mms_load_mmsbox_settings(Cfg *cfg)
|
MmsBoxSettings *mms_load_mmsbox_settings(Cfg *cfg, List **proxyrelays)
|
||||||
{
|
{
|
||||||
|
long loglevel;
|
||||||
Octstr *s;
|
Octstr *s;
|
||||||
|
Octstr *log, *alog;
|
||||||
List *l;
|
List *l;
|
||||||
CfgGroup *grp = cfg_get_single_group(cfg, octstr_imm("mmsbox"));
|
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);
|
MmsBoxSettings *m = gw_malloc(sizeof *m);
|
||||||
long port = -1;
|
long port = -1;
|
||||||
Octstr *user, *pass, *from;
|
Octstr *http_proxy_host, *user, *pass, *from;
|
||||||
Octstr *qdir = NULL;
|
Octstr *qdir = NULL;
|
||||||
int i, n;
|
int i, n;
|
||||||
|
|
||||||
memset(m, 0, sizeof *m);
|
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"));
|
s = cfg_getx(grp, octstr_imm("local-mmsc-domains"));
|
||||||
|
|
||||||
if (s) {
|
if (s) {
|
||||||
|
|
|
@ -128,7 +128,7 @@ extern char *mms_hostname; /* Our hostname. */
|
||||||
enum mms_loc_t {MMS_LOC_MMBOX = 1, MMS_LOC_MQUEUE=2};
|
enum mms_loc_t {MMS_LOC_MMBOX = 1, MMS_LOC_MQUEUE=2};
|
||||||
|
|
||||||
/* Returns mmsbox settings. */
|
/* Returns mmsbox settings. */
|
||||||
MmsBoxSettings *mms_load_mmsbox_settings(Cfg *cfg);
|
MmsBoxSettings *mms_load_mmsbox_settings(Cfg *cfg, List **proxyrelays);
|
||||||
|
|
||||||
|
|
||||||
/* Returns list of MmsProxyRelay */
|
/* Returns list of MmsProxyRelay */
|
||||||
|
|
|
@ -34,9 +34,7 @@ int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int cfidx;
|
int cfidx;
|
||||||
Octstr *fname;
|
Octstr *fname;
|
||||||
CfgGroup *grp;
|
|
||||||
Octstr *log, *alog;
|
|
||||||
long loglevel;
|
|
||||||
MIMEEntity *mm;
|
MIMEEntity *mm;
|
||||||
MmsMsg *msg;
|
MmsMsg *msg;
|
||||||
|
|
||||||
|
@ -62,30 +60,9 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
info(0, "----------------------------------------");
|
info(0, "----------------------------------------");
|
||||||
info(0, " MMSC Email2MMS Tool version %s starting", MMSC_VERSION);
|
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. */
|
/* Load settings. */
|
||||||
settings = mms_load_mmsbox_settings(cfg);
|
settings = mms_load_mmsbox_settings(cfg, &proxyrelays);
|
||||||
|
|
||||||
if (!settings)
|
if (!settings)
|
||||||
panic(0, "No global MMSC configuration!");
|
panic(0, "No global MMSC configuration!");
|
||||||
|
|
|
@ -58,9 +58,7 @@ int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int cfidx;
|
int cfidx;
|
||||||
Octstr *fname;
|
Octstr *fname;
|
||||||
CfgGroup *grp;
|
|
||||||
Octstr *log, *alog;
|
|
||||||
long loglevel;
|
|
||||||
|
|
||||||
MmsHTTPClientInfo h = {NULL};
|
MmsHTTPClientInfo h = {NULL};
|
||||||
|
|
||||||
|
@ -86,28 +84,12 @@ int main(int argc, char *argv[])
|
||||||
info(0, "----------------------------------------");
|
info(0, "----------------------------------------");
|
||||||
info(0, " " MM_NAME " MMSC Proxy version %s starting", MMSC_VERSION);
|
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. */
|
/* Load settings. */
|
||||||
settings = mms_load_mmsbox_settings(cfg);
|
settings = mms_load_mmsbox_settings(cfg, &proxyrelays);
|
||||||
|
|
||||||
|
cfg_destroy(cfg);
|
||||||
|
|
||||||
if (!settings)
|
if (!settings)
|
||||||
panic(0, "No global MMSC configuration!");
|
panic(0, "No global MMSC configuration!");
|
||||||
|
|
||||||
|
|
|
@ -23,14 +23,10 @@ static void quit_now(int notused)
|
||||||
rstop = 1;
|
rstop = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int cfidx;
|
int cfidx;
|
||||||
Octstr *fname;
|
Octstr *fname;
|
||||||
CfgGroup *grp;
|
|
||||||
Octstr *log, *alog;
|
|
||||||
long loglevel;
|
|
||||||
|
|
||||||
long qthread = 0;
|
long qthread = 0;
|
||||||
|
|
||||||
|
@ -55,28 +51,10 @@ int main(int argc, char *argv[])
|
||||||
info(0, "----------------------------------------");
|
info(0, "----------------------------------------");
|
||||||
info(0, " " MM_NAME " MMSC Relay version %s starting", MMSC_VERSION);
|
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. */
|
settings = mms_load_mmsbox_settings(cfg,&proxyrelays);
|
||||||
alog = cfg_get(grp, octstr_imm("access-log"));
|
|
||||||
if (alog) {
|
|
||||||
alog_open(octstr_get_cstr(alog), 1, 1);
|
|
||||||
octstr_destroy(alog);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Load proxy relays. */
|
cfg_destroy(cfg);
|
||||||
|
|
||||||
proxyrelays = mms_proxy_relays(cfg);
|
|
||||||
/* Load settings. */
|
|
||||||
|
|
||||||
settings = mms_load_mmsbox_settings(cfg);
|
|
||||||
|
|
||||||
if (!settings)
|
if (!settings)
|
||||||
panic(0, "No global MMSC configuration!");
|
panic(0, "No global MMSC configuration!");
|
||||||
|
|
|
@ -86,9 +86,6 @@ int main(int argc, char *argv[])
|
||||||
Octstr *fname, *s;
|
Octstr *fname, *s;
|
||||||
|
|
||||||
int cfidx;
|
int cfidx;
|
||||||
CfgGroup *grp;
|
|
||||||
Octstr *log, *alog;
|
|
||||||
long loglevel;
|
|
||||||
int msize;
|
int msize;
|
||||||
|
|
||||||
if (argc < 2)
|
if (argc < 2)
|
||||||
|
@ -115,28 +112,9 @@ int main(int argc, char *argv[])
|
||||||
info(0, "----------------------------------------");
|
info(0, "----------------------------------------");
|
||||||
info(0, " MMSC Message sender runner version %s starting", MMSC_VERSION);
|
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. */
|
/* Load settings. */
|
||||||
settings = mms_load_mmsbox_settings(cfg);
|
settings = mms_load_mmsbox_settings(cfg, &proxyrelays);
|
||||||
|
|
||||||
if (!settings)
|
if (!settings)
|
||||||
panic(0, "No global MMSC configuration!");
|
panic(0, "No global MMSC configuration!");
|
||||||
|
|
Loading…
Reference in New Issue