aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/socket_default
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-08-08 15:39:07 +0200
committerTobias Brunner <tobias@strongswan.org>2012-08-08 15:39:07 +0200
commit6fbf4472ea785f3c75d278b1a7400534989bf26a (patch)
tree351b5ad7f6ae8c763ab6d651c7e793fac9186bc0 /src/libcharon/plugins/socket_default
parent95dacbbc7076a1bd92b4732dcadc1bef67e28196 (diff)
downloadstrongswan-6fbf4472ea785f3c75d278b1a7400534989bf26a.tar.bz2
strongswan-6fbf4472ea785f3c75d278b1a7400534989bf26a.tar.xz
Added option to prevent socket-default from setting the source address on outbound packets
Diffstat (limited to 'src/libcharon/plugins/socket_default')
-rw-r--r--src/libcharon/plugins/socket_default/socket_default_socket.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/libcharon/plugins/socket_default/socket_default_socket.c b/src/libcharon/plugins/socket_default/socket_default_socket.c
index a7da2cc9c..c2b073418 100644
--- a/src/libcharon/plugins/socket_default/socket_default_socket.c
+++ b/src/libcharon/plugins/socket_default/socket_default_socket.c
@@ -116,6 +116,11 @@ struct private_socket_default_socket_t {
* Maximum packet size to receive
*/
int max_packet;
+
+ /**
+ * TRUE if the source address should be set on outbound packets
+ */
+ bool set_source;
};
METHOD(socket_t, receiver, status_t,
@@ -352,7 +357,7 @@ METHOD(socket_t, sender, status_t,
msg.msg_iovlen = 1;
msg.msg_flags = 0;
- if (!src->is_anyaddr(src))
+ if (this->set_source && !src->is_anyaddr(src))
{
if (family == AF_INET)
{
@@ -576,6 +581,9 @@ socket_default_socket_t *socket_default_socket_create()
"%s.port_nat_t", CHARON_NATT_PORT, charon->name),
.max_packet = lib->settings->get_int(lib->settings,
"%s.max_packet", MAX_PACKET, charon->name),
+ .set_source = lib->settings->get_bool(lib->settings,
+ "%s.plugins.socket-default.set_source", TRUE,
+ charon->name),
);
if (this->port && this->port == this->natt)