diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-06-28 15:23:18 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-06-28 15:23:18 +0000 |
commit | ba4c0662d0f0896ebc73d9259f64a38e58517075 (patch) | |
tree | 51ac83b6924cd52f9378a321d2d86bef5645da34 /pjlib/src/pjlib-test | |
parent | f7f385b10e9b7a6dce0ca896005c0493ab335584 (diff) |
Fixed bug in ioqueue IOCP: accept() callback is called with new socket handle already reset to -1
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@559 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjlib/src/pjlib-test')
-rw-r--r-- | pjlib/src/pjlib-test/ioq_tcp.c | 21 | ||||
-rw-r--r-- | pjlib/src/pjlib-test/test.h | 2 |
2 files changed, 17 insertions, 6 deletions
diff --git a/pjlib/src/pjlib-test/ioq_tcp.c b/pjlib/src/pjlib-test/ioq_tcp.c index 8f2d74d0..7f004d9f 100644 --- a/pjlib/src/pjlib-test/ioq_tcp.c +++ b/pjlib/src/pjlib-test/ioq_tcp.c @@ -82,11 +82,22 @@ static void on_ioqueue_accept(pj_ioqueue_key_t *key, pj_sock_t sock, int status) { - PJ_UNUSED_ARG(sock); - - callback_accept_key = key; - callback_accept_op = op_key; - callback_accept_status = status; + if (sock == PJ_INVALID_SOCKET) { + + if (status != PJ_SUCCESS) { + /* Ignore. Could be blocking error */ + app_perror(".....warning: received error in on_ioqueue_accept() callback", + status); + } else { + callback_accept_status = -61; + PJ_LOG(3,("", "..... on_ioqueue_accept() callback was given " + "invalid socket and status is %d", status)); + } + } else { + callback_accept_key = key; + callback_accept_op = op_key; + callback_accept_status = status; + } } static void on_ioqueue_connect(pj_ioqueue_key_t *key, int status) diff --git a/pjlib/src/pjlib-test/test.h b/pjlib/src/pjlib-test/test.h index 53400e23..52600866 100644 --- a/pjlib/src/pjlib-test/test.h +++ b/pjlib/src/pjlib-test/test.h @@ -48,7 +48,7 @@ #define INCLUDE_UDP_IOQUEUE_TEST GROUP_NETWORK #define INCLUDE_TCP_IOQUEUE_TEST GROUP_NETWORK #define INCLUDE_IOQUEUE_PERF_TEST GROUP_NETWORK -#define INCLUDE_IOQUEUE_UNREG_TEST 1 // GROUP_NETWORK +#define INCLUDE_IOQUEUE_UNREG_TEST GROUP_NETWORK #define INCLUDE_FILE_TEST GROUP_FILE #define INCLUDE_ECHO_SERVER 0 |