1
0
Fork 0

Added support for HTTP proxy host/port a la Kannel (used for all HTTP outgoing transactions)

This commit is contained in:
bagyenda 2005-07-04 09:14:47 +00:00
parent df3efbd19c
commit 6f7e3ea12d
7 changed files with 61 additions and 100 deletions

View File

@ -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 &#8211; 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>

View File

@ -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) {

View File

@ -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 */

View File

@ -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!");

View File

@ -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!");

View File

@ -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!");

View File

@ -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!");