aboutsummaryrefslogtreecommitdiffstats
path: root/Source/charon/sa/states/responder_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'Source/charon/sa/states/responder_init.c')
-rw-r--r--Source/charon/sa/states/responder_init.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/Source/charon/sa/states/responder_init.c b/Source/charon/sa/states/responder_init.c
index f67e2833c..6db0a662c 100644
--- a/Source/charon/sa/states/responder_init.c
+++ b/Source/charon/sa/states/responder_init.c
@@ -157,7 +157,7 @@ static status_t process_message(private_responder_init_t *this, message_t *messa
ke_payload_t *ke_request = NULL;
nonce_payload_t *nonce_request = NULL;
host_t *source, *destination;
- init_config_t *init_config;
+ connection_t *connection;
iterator_t *payloads;
message_t *response;
status_t status;
@@ -177,18 +177,15 @@ static status_t process_message(private_responder_init_t *this, message_t *messa
source = message->get_source(message);
destination = message->get_destination(message);
- status = charon->configuration->get_init_config_for_host(charon->configuration,destination,source,&init_config);
- if (status != SUCCESS)
+ connection = charon->connections->get_connection_by_hosts(charon->connections, destination, source);
+ if (connection == NULL)
{
- /* no configuration matches given host */
- this->logger->log(this->logger, AUDIT, "IKE_SA_INIT request does not match any available configuration. Deleting IKE_SA");
+ /* no configuration matches given hosts */
+ this->logger->log(this->logger, AUDIT, "IKE_SA_INIT request does not match any available connection. Deleting IKE_SA");
/* TODO: inform requestor */
return DELETE_ME;
}
- this->ike_sa->set_init_config(this->ike_sa,init_config);
-
- this->ike_sa->set_my_host(this->ike_sa, destination->clone(destination));
- this->ike_sa->set_other_host(this->ike_sa, source->clone(source));
+ this->ike_sa->set_connection(this->ike_sa,connection);
/* parse incoming message */
status = message->parse_body(message, NULL, NULL);
@@ -322,11 +319,11 @@ static status_t build_sa_payload(private_responder_init_t *this,sa_payload_t *sa
{
proposal_t *proposal;
linked_list_t *proposal_list;
- init_config_t *init_config;
+ connection_t *connection;
sa_payload_t* sa_payload;
algorithm_t *algo;
- init_config = this->ike_sa->get_init_config(this->ike_sa);
+ connection = this->ike_sa->get_connection(this->ike_sa);
this->logger->log(this->logger, CONTROL | LEVEL2, "Process received SA payload");
@@ -334,7 +331,7 @@ static status_t build_sa_payload(private_responder_init_t *this,sa_payload_t *sa
proposal_list = sa_request->get_proposals (sa_request);
/* select proposal */
- this->proposal = init_config->select_proposal(init_config, proposal_list);
+ this->proposal = connection->select_proposal(connection, proposal_list);
while(proposal_list->remove_last(proposal_list, (void**)&proposal) == SUCCESS)
{
proposal->destroy(proposal);