提交 d59ebd64 authored 作者: Brian West's avatar Brian West

adding nat-map option to mod_event_socket

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13567 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 71bb1b3e
<configuration name="event_socket.conf" description="Socket Client"> <configuration name="event_socket.conf" description="Socket Client">
<settings> <settings>
<param name="nat-map" value="false"/>
<param name="listen-ip" value="127.0.0.1"/> <param name="listen-ip" value="127.0.0.1"/>
<param name="listen-port" value="8021"/> <param name="listen-port" value="8021"/>
<param name="password" value="ClueCon"/> <param name="password" value="ClueCon"/>
......
...@@ -115,6 +115,7 @@ static struct { ...@@ -115,6 +115,7 @@ static struct {
char *acl[MAX_ACL]; char *acl[MAX_ACL];
uint32_t acl_count; uint32_t acl_count;
uint32_t id; uint32_t id;
int nat_map;
} prefs; } prefs;
...@@ -2211,6 +2212,10 @@ static int config(void) ...@@ -2211,6 +2212,10 @@ static int config(void)
set_pref_ip(val); set_pref_ip(val);
} else if (!strcmp(var, "debug")) { } else if (!strcmp(var, "debug")) {
globals.debug = atoi(val); globals.debug = atoi(val);
} else if (!strcmp(var, "nat-map")) {
if (switch_true(val)) {
prefs.nat_map = 1;
}
} else if (!strcmp(var, "listen-port")) { } else if (!strcmp(var, "listen-port")) {
prefs.port = (uint16_t) atoi(val); prefs.port = (uint16_t) atoi(val);
} else if (!strcmp(var, "password")) { } else if (!strcmp(var, "password")) {
...@@ -2235,6 +2240,10 @@ static int config(void) ...@@ -2235,6 +2240,10 @@ static int config(void)
set_pref_pass("ClueCon"); set_pref_pass("ClueCon");
} }
if (!prefs.nat_map) {
prefs.nat_map = 0;
}
if (!prefs.port) { if (!prefs.port) {
prefs.port = 8021; prefs.port = 8021;
} }
...@@ -2276,6 +2285,11 @@ SWITCH_MODULE_RUNTIME_FUNCTION(mod_event_socket_runtime) ...@@ -2276,6 +2285,11 @@ SWITCH_MODULE_RUNTIME_FUNCTION(mod_event_socket_runtime)
if (rv) if (rv)
goto sock_fail; goto sock_fail;
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Socket up listening on %s:%u\n", prefs.ip, prefs.port); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Socket up listening on %s:%u\n", prefs.ip, prefs.port);
if (prefs.nat_map) {
switch_nat_add_mapping(prefs.port, SWITCH_NAT_TCP);
}
break; break;
sock_fail: sock_fail:
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Socket Error! Could not listen on %s:%u\n", prefs.ip, prefs.port); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Socket Error! Could not listen on %s:%u\n", prefs.ip, prefs.port);
...@@ -2326,6 +2340,10 @@ SWITCH_MODULE_RUNTIME_FUNCTION(mod_event_socket_runtime) ...@@ -2326,6 +2340,10 @@ SWITCH_MODULE_RUNTIME_FUNCTION(mod_event_socket_runtime)
} }
close_socket(&listen_list.sock); close_socket(&listen_list.sock);
if (prefs.nat_map) {
switch_nat_del_mapping(prefs.port, SWITCH_NAT_TCP);
}
if (pool) { if (pool) {
switch_core_destroy_memory_pool(&pool); switch_core_destroy_memory_pool(&pool);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论