예제 #1
0
파일: server.cpp 프로젝트: nealey/vera
int idaapi thread_handle_session(void *ctx)
{
  rpc_server_t *server = (rpc_server_t *)ctx;
  static int s_sess_id = 1;
  int sess_id = s_sess_id++;

  lprintf("session %d entered\n", sess_id);
  handle_single_session(server);
  lprintf("session %d exiting\n", sess_id);

  return 0;
}
예제 #2
0
파일: server.cpp 프로젝트: nealey/vera
void handle_session(rpc_server_t *server)
{
#ifndef __SINGLE_THREADED_SERVER__
  qthread_t t = qthread_create(thread_handle_session, (void *)server);
  // Add the session to the list
  qmutex_lock(g_lock);
  clients_list[server] = t;
  qmutex_unlock(g_lock);
#else
  g_global_server = server;
  handle_single_session(server);
  g_global_server = NULL;
#endif
}
예제 #3
0
//--------------------------------------------------------------------------
void handle_session(rpc_server_t *server)
{
#ifndef __SINGLE_THREADED_SERVER__
  qthread_t t = qthread_create(thread_handle_session, (void *)server);
  bool run_handler = false;
#else
  bool t = true;
  bool run_handler = true;
#endif

  // Add the session to the list
  srv_lock_begin();
  clients_list[server] = t;
  g_global_server = server;
  srv_lock_end();

  if ( run_handler )
    handle_single_session(server);
}
예제 #4
0
//--------------------------------------------------------------------------
int idaapi thread_handle_session(void *ctx)
{
  rpc_server_t *server = (rpc_server_t *)ctx;
  handle_single_session(server);
  return 0;
}