X-Git-Url: http://git.indexdata.com/?p=yazproxy-moved-to-github.git;a=blobdiff_plain;f=src%2Ft-server.cpp;h=3a4acef6f5fed68ad6cfa752a489473594c8b218;hp=ca63da7f48c1c6026ffdf335edba476b9e220eec;hb=8dc6d0bc4ddbb2d37b3aafd93396a0e4a8e87560;hpb=f041f45353b3f0ad2d6c0a4cb18ce44e0afd2205 diff --git a/src/t-server.cpp b/src/t-server.cpp index ca63da7..3a4acef 100644 --- a/src/t-server.cpp +++ b/src/t-server.cpp @@ -1,8 +1,8 @@ /* - * Copyright (c) 1998-2005, Index Data. + * Copyright (c) 2005, Index Data. * See the file LICENSE for details. * - * $Id: t-server.cpp,v 1.3 2005-09-11 20:06:54 adam Exp $ + * $Id: t-server.cpp,v 1.8 2006-03-29 13:33:47 adam Exp $ */ #include @@ -11,10 +11,11 @@ #include #include #include "msg-thread.h" -#include -#include -#include -#include +#include +#include +#include +#include +#include using namespace yazpp_1; @@ -58,11 +59,16 @@ IMsg_Thread *Auth_Msg::handle() { case Z_APDU_initRequest: apdu = zget_APDU(odr, Z_APDU_initResponse); + ODR_MASK_SET(apdu->u.initResponse->options, Z_Options_triggerResourceCtrl); + ODR_MASK_SET(apdu->u.initResponse->options, Z_Options_search); + ODR_MASK_SET(apdu->u.initResponse->options, Z_Options_present); break; case Z_APDU_searchRequest: sleep(5); apdu = zget_APDU(odr, Z_APDU_searchResponse); break; + case Z_APDU_triggerResourceControlRequest: + break; default: apdu = zget_APDU(odr, Z_APDU_close); m_close_flag = 1; @@ -116,6 +122,7 @@ void Auth_Msg::result() } if (m_front->m_delete_flag && m_front->m_no_requests == 0) delete m_front; + delete this; } MyServer::MyServer(IPDU_Observable *the_PDU_Observable, @@ -184,14 +191,18 @@ int main(int argc, char **argv) int ret; const char *addr = "tcp:@:9999"; char *apdu_log = 0; + int no_threads = 1; - while ((ret = options("a:v:T", argv, argc, &arg)) != -2) + while ((ret = options("n:a:v:T", argv, argc, &arg)) != -2) { switch (ret) { case 0: addr = xstrdup(arg); break; + case 'n': + no_threads = atoi(arg); + break; case 'a': apdu_log = xstrdup(arg); break; @@ -213,7 +224,7 @@ int main(int argc, char **argv) MyServer *z = 0; - Msg_Thread *my_thread = new Msg_Thread(&mySocketManager); + Msg_Thread *my_thread = new Msg_Thread(&mySocketManager, no_threads); #if YAZ_POSIX_THREADS if (thread_flag)