From ff7fadd0d542c170623063dc15d04efdceaf2e5c Mon Sep 17 00:00:00 2001 From: mom040267 Date: Wed, 3 Dec 2014 07:08:17 +0000 Subject: [PATCH] relay mapping fixed --- ChangeLog | 1 + src/apps/relay/mainrelay.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/ChangeLog b/ChangeLog index a940d09..ea3f77a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,7 @@ Version 4.3.1.3 'Tolomei': - Reliability fixes (Issue 141 from rfc5766-turn-server). - HTTP/HTTPS echo fixed. + - external address mapping fixes for Amazon EC2. 11/23/2014 Oleg Moskalenko Version 4.3.1.2 'Tolomei': diff --git a/src/apps/relay/mainrelay.c b/src/apps/relay/mainrelay.c index c309351..dfa6048 100644 --- a/src/apps/relay/mainrelay.c +++ b/src/apps/relay/mainrelay.c @@ -1993,6 +1993,23 @@ int main(int argc, char **argv) } } + if(turn_params.external_ip && turn_params.relay_addrs) { + size_t ir = 0; + for(ir = 0; ir < turn_params.relays_number; ++ir) { + if(turn_params.relay_addrs[ir]) { + const char* sra = (const char*)turn_params.relay_addrs[ir]; + if((strstr(sra,"127.0.0.1") != sra)&&(strstr(sra,"::1")!=sra)) { + ioa_addr ra; + if(make_ioa_addr((const u08bits*)sra,0,&ra)<0) { + TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR,"-X : Wrong address format: %s\n",sra); + } else if(ra.ss.sa_family == turn_params.external_ip->ss.sa_family) { + ioa_addr_add_mapping(turn_params.external_ip,&ra); + } + } + } + } + } + if(turn_params.turn_daemon) { #if !defined(TURN_HAS_DAEMON) pid_t pid = fork();