]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
adding nat-map option to mod_event_socket
authorBrian West <brian@freeswitch.org>
Wed, 3 Jun 2009 14:25:35 +0000 (14:25 +0000)
committerBrian West <brian@freeswitch.org>
Wed, 3 Jun 2009 14:25:35 +0000 (14:25 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13567 d0543943-73ff-0310-b7d9-9358b9ac24b2

conf/autoload_configs/event_socket.conf.xml
src/mod/event_handlers/mod_event_socket/mod_event_socket.c

index 98a2764d0ff209bee93828d10b3c0256d45e02f2..5ea2e0978835642fcd0d08f00d4aae9a52434caa 100644 (file)
@@ -1,5 +1,6 @@
 <configuration name="event_socket.conf" description="Socket Client">
   <settings>
+    <param name="nat-map" value="false"/>
     <param name="listen-ip" value="127.0.0.1"/>
     <param name="listen-port" value="8021"/>
     <param name="password" value="ClueCon"/>
index 2353faee279621925d92eb5be28ea5a39e628350..9861d83372bcb79f85c466fbc6f61774bf6fcf0d 100644 (file)
@@ -115,6 +115,7 @@ static struct {
        char *acl[MAX_ACL];
        uint32_t acl_count;
        uint32_t id;
+       int nat_map;
 } prefs;
 
 
@@ -2211,6 +2212,10 @@ static int config(void)
                                        set_pref_ip(val);
                                } else if (!strcmp(var, "debug")) {
                                        globals.debug = atoi(val);
+                               } else if (!strcmp(var, "nat-map")) {
+                                       if (switch_true(val)) {
+                                               prefs.nat_map = 1;
+                                       }
                                } else if (!strcmp(var, "listen-port")) {
                                        prefs.port = (uint16_t) atoi(val);
                                } else if (!strcmp(var, "password")) {
@@ -2235,6 +2240,10 @@ static int config(void)
                set_pref_pass("ClueCon");
        }
 
+       if (!prefs.nat_map) {
+               prefs.nat_map = 0;
+       }
+
        if (!prefs.port) {
                prefs.port = 8021;
        }
@@ -2276,6 +2285,11 @@ SWITCH_MODULE_RUNTIME_FUNCTION(mod_event_socket_runtime)
                if (rv)
                        goto sock_fail;
                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;
          sock_fail:
                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)
        }
 
        close_socket(&listen_list.sock);
+       
+       if (prefs.nat_map) {
+               switch_nat_del_mapping(prefs.port, SWITCH_NAT_TCP);
+       }
 
        if (pool) {
                switch_core_destroy_memory_pool(&pool);