mirror of
https://github.com/strongswan/strongswan.git
synced 2025-10-15 00:00:16 -04:00
Removed remaining parts of controller_t.listen() implementation.
This commit is contained in:
parent
a629513961
commit
aac20ec784
@ -1,4 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright (C) 2011 Tobias Brunner
|
||||||
* Copyright (C) 2006 Martin Willi
|
* Copyright (C) 2006 Martin Willi
|
||||||
* Hochschule fuer Technik Rapperswil
|
* Hochschule fuer Technik Rapperswil
|
||||||
*
|
*
|
||||||
@ -19,7 +20,6 @@
|
|||||||
|
|
||||||
#include <threading/thread.h>
|
#include <threading/thread.h>
|
||||||
#include <threading/thread_value.h>
|
#include <threading/thread_value.h>
|
||||||
#include <threading/condvar.h>
|
|
||||||
#include <threading/mutex.h>
|
#include <threading/mutex.h>
|
||||||
|
|
||||||
typedef struct private_bus_t private_bus_t;
|
typedef struct private_bus_t private_bus_t;
|
||||||
@ -61,34 +61,22 @@ struct entry_t {
|
|||||||
*/
|
*/
|
||||||
listener_t *listener;
|
listener_t *listener;
|
||||||
|
|
||||||
/**
|
|
||||||
* is this a active listen() call with a blocking thread
|
|
||||||
*/
|
|
||||||
bool blocker;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* are we currently calling this listener
|
* are we currently calling this listener
|
||||||
*/
|
*/
|
||||||
int calling;
|
int calling;
|
||||||
|
|
||||||
/**
|
|
||||||
* condvar where active listeners wait
|
|
||||||
*/
|
|
||||||
condvar_t *condvar;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* create a listener entry
|
* create a listener entry
|
||||||
*/
|
*/
|
||||||
static entry_t *entry_create(listener_t *listener, bool blocker)
|
static entry_t *entry_create(listener_t *listener)
|
||||||
{
|
{
|
||||||
entry_t *this = malloc_thing(entry_t);
|
entry_t *this;
|
||||||
|
|
||||||
this->listener = listener;
|
|
||||||
this->blocker = blocker;
|
|
||||||
this->calling = 0;
|
|
||||||
this->condvar = condvar_create(CONDVAR_TYPE_DEFAULT);
|
|
||||||
|
|
||||||
|
INIT(this,
|
||||||
|
.listener = listener,
|
||||||
|
);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,7 +85,6 @@ static entry_t *entry_create(listener_t *listener, bool blocker)
|
|||||||
*/
|
*/
|
||||||
static void entry_destroy(entry_t *entry)
|
static void entry_destroy(entry_t *entry)
|
||||||
{
|
{
|
||||||
entry->condvar->destroy(entry->condvar);
|
|
||||||
free(entry);
|
free(entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,7 +92,7 @@ METHOD(bus_t, add_listener, void,
|
|||||||
private_bus_t *this, listener_t *listener)
|
private_bus_t *this, listener_t *listener)
|
||||||
{
|
{
|
||||||
this->mutex->lock(this->mutex);
|
this->mutex->lock(this->mutex);
|
||||||
this->listeners->insert_last(this->listeners, entry_create(listener, FALSE));
|
this->listeners->insert_last(this->listeners, entry_create(listener));
|
||||||
this->mutex->unlock(this->mutex);
|
this->mutex->unlock(this->mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,16 +175,7 @@ static bool log_cb(entry_t *entry, log_data_t *data)
|
|||||||
if (!entry->listener->log(entry->listener, data->group, data->level,
|
if (!entry->listener->log(entry->listener, data->group, data->level,
|
||||||
data->thread, data->ike_sa, data->format, args))
|
data->thread, data->ike_sa, data->format, args))
|
||||||
{
|
{
|
||||||
if (entry->blocker)
|
entry_destroy(entry);
|
||||||
{
|
|
||||||
entry->blocker = FALSE;
|
|
||||||
entry->condvar->signal(entry->condvar);
|
|
||||||
entry->calling--;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
entry_destroy(entry);
|
|
||||||
}
|
|
||||||
va_end(args);
|
va_end(args);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -244,16 +222,8 @@ METHOD(bus_t, log_, void,
|
|||||||
static void unregister_listener(private_bus_t *this, entry_t *entry,
|
static void unregister_listener(private_bus_t *this, entry_t *entry,
|
||||||
enumerator_t *enumerator)
|
enumerator_t *enumerator)
|
||||||
{
|
{
|
||||||
if (entry->blocker)
|
|
||||||
{
|
|
||||||
entry->blocker = FALSE;
|
|
||||||
entry->condvar->signal(entry->condvar);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
entry_destroy(entry);
|
|
||||||
}
|
|
||||||
this->listeners->remove_at(this->listeners, enumerator);
|
this->listeners->remove_at(this->listeners, enumerator);
|
||||||
|
entry_destroy(entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(bus_t, alert, void,
|
METHOD(bus_t, alert, void,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user