diff options
| author | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-06-28 19:42:54 +0200 |
|---|---|---|
| committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-06-28 19:42:54 +0200 |
| commit | f87991704e517ee433ee87e9dd37bf758268f71d (patch) | |
| tree | 4fe8b5e539f019a1b8df1fab30d68f1abdde98ae /src/libcharon/processing | |
| parent | 6a5c8ee7a53d3652bd95eeb97a77c2d18b7737d4 (diff) | |
| download | strongswan-f87991704e517ee433ee87e9dd37bf758268f71d.tar.bz2 strongswan-f87991704e517ee433ee87e9dd37bf758268f71d.tar.xz | |
implemented PASS and DROP shunt policies
Diffstat (limited to 'src/libcharon/processing')
| -rw-r--r-- | src/libcharon/processing/jobs/start_action_job.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/libcharon/processing/jobs/start_action_job.c b/src/libcharon/processing/jobs/start_action_job.c index 63b9d7dcc..8f924bc15 100644 --- a/src/libcharon/processing/jobs/start_action_job.c +++ b/src/libcharon/processing/jobs/start_action_job.c @@ -42,6 +42,7 @@ METHOD(job_t, execute, void, enumerator_t *enumerator, *children; peer_cfg_t *peer_cfg; child_cfg_t *child_cfg; + ipsec_mode_t mode; char *name; enumerator = charon->backends->create_peer_cfg_enumerator(charon->backends, @@ -69,7 +70,16 @@ METHOD(job_t, execute, void, break; case ACTION_ROUTE: DBG1(DBG_JOB, "start action: route '%s'", name); - charon->traps->install(charon->traps, peer_cfg, child_cfg); + mode = child_cfg->get_mode(child_cfg); + if (mode == MODE_PASS || mode == MODE_DROP) + { + charon->shunts->install(charon->shunts, child_cfg); + } + else + { + charon->traps->install(charon->traps, peer_cfg, + child_cfg); + } break; case ACTION_NONE: break; |
