diff options
-rw-r--r-- | src/libstrongswan/networking/streams/stream_service.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libstrongswan/networking/streams/stream_service.c b/src/libstrongswan/networking/streams/stream_service.c index 7358c580e..07d9cfdef 100644 --- a/src/libstrongswan/networking/streams/stream_service.c +++ b/src/libstrongswan/networking/streams/stream_service.c @@ -93,6 +93,11 @@ typedef struct { } async_data_t; /** + * Forward declaration + */ +static bool watch(private_stream_service_t *this, int fd, watcher_event_t event); + +/** * Clean up accept data */ static void destroy_async_data(async_data_t *data) @@ -103,8 +108,8 @@ static void destroy_async_data(async_data_t *data) if (this->active-- == this->cncrncy) { /* leaving concurrency limit, restart accept()ing. */ - this->public.on_accept(&this->public, this->cb, this->data, - this->prio, this->cncrncy); + lib->watcher->add(lib->watcher, this->fd, + WATCHER_READ, (watcher_cb_t)watch, this); } this->condvar->signal(this->condvar); this->mutex->unlock(this->mutex); |