start and route connections defined in an SQL database via start_action field and ipsec up %startall command
This commit is contained in:
@@ -123,18 +123,19 @@ static void add_traffic_selectors(private_sql_config_t *this,
|
||||
*/
|
||||
static child_cfg_t *build_child_cfg(private_sql_config_t *this, enumerator_t *e)
|
||||
{
|
||||
int id, lifetime, rekeytime, jitter, hostaccess, mode, dpd, close, ipcomp;
|
||||
int id, lifetime, rekeytime, jitter, hostaccess, mode, ipcomp;
|
||||
int start, dpd, close;
|
||||
char *name, *updown;
|
||||
child_cfg_t *child_cfg;
|
||||
|
||||
if (e->enumerate(e, &id, &name, &lifetime, &rekeytime, &jitter,
|
||||
&updown, &hostaccess, &mode, &dpd, &close, &ipcomp))
|
||||
if (e->enumerate(e, &id, &name, &lifetime, &rekeytime, &jitter, &updown,
|
||||
&hostaccess, &mode, &start, &dpd, &close, &ipcomp))
|
||||
{
|
||||
lifetime_cfg_t lft = {
|
||||
.time = { .life = lifetime, .rekey = rekeytime, .jitter = jitter }
|
||||
};
|
||||
child_cfg = child_cfg_create(name, &lft, updown, hostaccess, mode,
|
||||
dpd, close, ipcomp, 0, 0, NULL, NULL);
|
||||
start, dpd, close, ipcomp, 0, 0, NULL, NULL);
|
||||
/* TODO: read proposal from db */
|
||||
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
||||
add_traffic_selectors(this, child_cfg, id);
|
||||
@@ -152,13 +153,13 @@ static void add_child_cfgs(private_sql_config_t *this, peer_cfg_t *peer, int id)
|
||||
child_cfg_t *child_cfg;
|
||||
|
||||
e = this->db->query(this->db,
|
||||
"SELECT id, name, lifetime, rekeytime, jitter, "
|
||||
"updown, hostaccess, mode, dpd_action, close_action, ipcomp "
|
||||
"SELECT id, name, lifetime, rekeytime, jitter, updown, "
|
||||
"hostaccess, mode, start_action, dpd_action, close_action, ipcomp "
|
||||
"FROM child_configs JOIN peer_config_child_config ON id = child_cfg "
|
||||
"WHERE peer_cfg = ?",
|
||||
DB_INT, id,
|
||||
DB_INT, DB_TEXT, DB_INT, DB_INT, DB_INT,
|
||||
DB_TEXT, DB_INT, DB_INT, DB_INT, DB_INT, DB_INT);
|
||||
DB_INT, DB_TEXT, DB_INT, DB_INT, DB_INT, DB_TEXT,
|
||||
DB_INT, DB_INT, DB_INT, DB_INT, DB_INT, DB_INT);
|
||||
if (e)
|
||||
{
|
||||
while ((child_cfg = build_child_cfg(this, e)))
|
||||
|
||||
Reference in New Issue
Block a user