Added a get_sa() method to the bus, allowing a thread to lookup its IKE_SA
This commit is contained in:
@@ -243,6 +243,14 @@ static void set_sa(private_bus_t *this, ike_sa_t *ike_sa)
|
|||||||
pthread_setspecific(this->thread_sa, ike_sa);
|
pthread_setspecific(this->thread_sa, ike_sa);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implementation of bus_t.get_sa
|
||||||
|
*/
|
||||||
|
static ike_sa_t* get_sa(private_bus_t *this)
|
||||||
|
{
|
||||||
|
return pthread_getspecific(this->thread_sa);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* data associated to a signal, passed to callback
|
* data associated to a signal, passed to callback
|
||||||
*/
|
*/
|
||||||
@@ -744,6 +752,7 @@ bus_t *bus_create()
|
|||||||
this->public.remove_listener = (void(*)(bus_t*,listener_t*))remove_listener;
|
this->public.remove_listener = (void(*)(bus_t*,listener_t*))remove_listener;
|
||||||
this->public.listen = (void(*)(bus_t*, listener_t *listener, job_t *job))listen_;
|
this->public.listen = (void(*)(bus_t*, listener_t *listener, job_t *job))listen_;
|
||||||
this->public.set_sa = (void(*)(bus_t*,ike_sa_t*))set_sa;
|
this->public.set_sa = (void(*)(bus_t*,ike_sa_t*))set_sa;
|
||||||
|
this->public.get_sa = (ike_sa_t*(*)(bus_t*))get_sa;
|
||||||
this->public.log = (void(*)(bus_t*,debug_t,level_t,char*,...))log_;
|
this->public.log = (void(*)(bus_t*,debug_t,level_t,char*,...))log_;
|
||||||
this->public.vlog = (void(*)(bus_t*,debug_t,level_t,char*,va_list))vlog;
|
this->public.vlog = (void(*)(bus_t*,debug_t,level_t,char*,va_list))vlog;
|
||||||
this->public.alert = (void(*)(bus_t*, alert_t alert, ...))alert;
|
this->public.alert = (void(*)(bus_t*, alert_t alert, ...))alert;
|
||||||
|
|||||||
@@ -190,6 +190,16 @@ struct bus_t {
|
|||||||
*/
|
*/
|
||||||
void (*set_sa) (bus_t *this, ike_sa_t *ike_sa);
|
void (*set_sa) (bus_t *this, ike_sa_t *ike_sa);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the IKE_SA the calling thread is currently using.
|
||||||
|
*
|
||||||
|
* If a thread currently does not know what IKE_SA it is processing,
|
||||||
|
* it can call get_sa() to look up the SA set during checkout via set_sa().
|
||||||
|
*
|
||||||
|
* @return registered ike_sa, NULL if none registered
|
||||||
|
*/
|
||||||
|
ike_sa_t* (*get_sa)(bus_t *this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send a log message to the bus.
|
* Send a log message to the bus.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user