From ebfe0ccf3f4ed30690ff3ce584adb85d98cc3933 Mon Sep 17 00:00:00 2001 From: Tomasz Kojm Date: Fri, 2 Mar 2012 15:44:46 +0100 Subject: [PATCH] fix handling of client disconnection --- contrib/ClamAuth/ClamAuth.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/contrib/ClamAuth/ClamAuth.c b/contrib/ClamAuth/ClamAuth.c index 13d4d4637..3f495b299 100644 --- a/contrib/ClamAuth/ClamAuth.c +++ b/contrib/ClamAuth/ClamAuth.c @@ -128,7 +128,19 @@ static int ca_open(dev_t dev, int flag, int devtype, proc_t p) static int ca_close(dev_t dev, int flag, int devtype, proc_t p) { + struct AuthEvent event; + + lck_mtx_lock(gEventQueueLock); dev_open = 0; + dev_read = 0; + AuthEventInitQueue(&gEventQueue); + /* Initialize event queue and add version info event */ + event.action = CLAMAUTH_PROTOCOL_VERSION; + strncpy(event.path, "ClamAuth "CLAMAUTH_VERSION"", sizeof(event.path)); + event.pid = 0xdeadbeef; + AuthEventEnqueue(&gEventQueue, &event); + lck_mtx_unlock(gEventQueueLock); + return 0; } @@ -368,7 +380,8 @@ static int FileOpScopeListener( strncpy(event.path, path, sizeof(event.path)); event.path[sizeof(event.path) - 1] = 0; lck_mtx_lock(gEventQueueLock); - AuthEventEnqueue(&gEventQueue, &event); + if(dev_read) + AuthEventEnqueue(&gEventQueue, &event); lck_mtx_unlock(gEventQueueLock); } break;