aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2013-03-26 17:28:40 +0100
committerMartin Willi <martin@revosec.ch>2013-05-06 15:28:26 +0200
commitf0749552a6f971504d5ce6a58b0b3898c57cd3d5 (patch)
tree7478048a929469016bfa09df18b8ba4af0340e83 /src
parentd3874008e8a722be522a110afb7249317072f0d9 (diff)
downloadstrongswan-f0749552a6f971504d5ce6a58b0b3898c57cd3d5.tar.bz2
strongswan-f0749552a6f971504d5ce6a58b0b3898c57cd3d5.tar.xz
charon-cmd: add support for using dynamic ports in charon-cmd
Diffstat (limited to 'src')
-rw-r--r--src/charon-cmd/cmd/cmd_connection.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/charon-cmd/cmd/cmd_connection.c b/src/charon-cmd/cmd/cmd_connection.c
index 566b2544b..f58df5cec 100644
--- a/src/charon-cmd/cmd/cmd_connection.c
+++ b/src/charon-cmd/cmd/cmd_connection.c
@@ -65,11 +65,15 @@ static peer_cfg_t* create_peer_cfg(private_cmd_connection_t *this)
{
ike_cfg_t *ike_cfg;
peer_cfg_t *peer_cfg;
+ u_int16_t local_port, remote_port = IKEV2_UDP_PORT;
- ike_cfg = ike_cfg_create(IKEV2, TRUE, FALSE, "0.0.0.0", FALSE,
- charon->socket->get_port(charon->socket, FALSE),
- this->host, FALSE, IKEV2_UDP_PORT,
- FRAGMENTATION_NO, 0);
+ local_port = charon->socket->get_port(charon->socket, FALSE);
+ if (local_port != IKEV2_UDP_PORT)
+ {
+ remote_port = IKEV2_NATT_PORT;
+ }
+ ike_cfg = ike_cfg_create(IKEV2, TRUE, FALSE, "0.0.0.0", FALSE, local_port,
+ this->host, FALSE, remote_port, FRAGMENTATION_NO, 0);
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
peer_cfg = peer_cfg_create("cmd", ike_cfg,
CERT_SEND_IF_ASKED, UNIQUE_REPLACE, 1, /* keyingtries */