aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/networking/streams/stream_service.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2013-07-01 14:57:28 +0200
committerMartin Willi <martin@revosec.ch>2013-07-18 16:00:28 +0200
commite6e8a2b2e01e91f75048fd4a33e04a0a7612bd12 (patch)
tree5fd3617bd9faef54f1b55cbb70a1b7e4d084aafd /src/libstrongswan/networking/streams/stream_service.c
parentd57b9e7c822149828ef6ce1467be60c28f011019 (diff)
downloadstrongswan-e6e8a2b2e01e91f75048fd4a33e04a0a7612bd12.tar.bz2
strongswan-e6e8a2b2e01e91f75048fd4a33e04a0a7612bd12.tar.xz
stream: support keeping the service alive outside of service callback
Diffstat (limited to 'src/libstrongswan/networking/streams/stream_service.c')
-rw-r--r--src/libstrongswan/networking/streams/stream_service.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/libstrongswan/networking/streams/stream_service.c b/src/libstrongswan/networking/streams/stream_service.c
index 7eaca86be..1b06e1eb1 100644
--- a/src/libstrongswan/networking/streams/stream_service.c
+++ b/src/libstrongswan/networking/streams/stream_service.c
@@ -124,8 +124,7 @@ static job_requeue_t accept_async(async_data_t *data)
if (stream)
{
thread_cleanup_push((void*)stream->destroy, stream);
- data->cb(data->data, stream);
- thread_cleanup_pop(TRUE);
+ thread_cleanup_pop(!data->cb(data->data, stream));
}
return JOB_REQUEUE_NONE;
}