/*
+ * Copyright (C) 2012-2018 Tobias Brunner
* Copyright (C) 2007 Martin Willi
* Copyright (C) 2006-2007 Fabian Hartmann, Noah Heusser
*
METHOD(task_t, build_i, status_t,
private_ike_config_t *this, message_t *message)
{
- if (message->get_message_id(message) == 1)
- { /* in first IKE_AUTH only */
+ if (message->get_exchange_type(message) == IKE_AUTH)
+ {
cp_payload_t *cp = NULL;
enumerator_t *enumerator;
attribute_handler_t *handler;
linked_list_t *vips;
host_t *host;
+ /* add attributes to first IKE_AUTH only, keep registered until
+ * attributes are received in the last IKE_AUTH */
+ this->public.task.build = (void*)return_need_more;
+
vips = linked_list_create();
/* reuse virtual IP if we already have one */
METHOD(task_t, process_r, status_t,
private_ike_config_t *this, message_t *message)
{
- if (message->get_message_id(message) == 1)
- { /* in first IKE_AUTH only */
+ if (message->get_exchange_type(message) == IKE_AUTH)
+ {
process_payloads(this, message);
+ /* process attributes in first IKE_AUTH only */
+ this->public.task.process = (void*)return_need_more;
}
return NEED_MORE;
}
this->vips = linked_list_create();
this->requested->destroy_function(this->requested, free);
this->requested = linked_list_create();
+ this->public.task.build = _build_i;
}
METHOD(task_t, destroy, void,