Diff for /libaitrpc/src/srv.c between versions 1.7 and 1.7.2.1

version 1.7, 2012/03/15 01:55:33 version 1.7.2.1, 2012/03/28 01:17:09
Line 114  execCall(sched_task_t *task) Line 114  execCall(sched_task_t *task)
         ioTRACE(RPC_TRACE_LEVEL);          ioTRACE(RPC_TRACE_LEVEL);
   
         /* Go decapsulate variables ... */          /* Go decapsulate variables ... */
        if (!(rpc->call_req.flags & RPC_NOREPLY) && argc) {        if (argc) {
                 arr = io_buffer2vars(buf + sizeof(struct tagRPCCall),                   arr = io_buffer2vars(buf + sizeof(struct tagRPCCall), 
                                 TASK_DATLEN(task) - sizeof(struct tagRPCCall), argc, 1);                                  TASK_DATLEN(task) - sizeof(struct tagRPCCall), argc, 1);
                 if (!arr) {                  if (!arr) {
Line 135  execCall(sched_task_t *task) Line 135  execCall(sched_task_t *task)
                 ioDEBUG(RPC_DEBUG_LEVEL, "RPC function %s from module %s",                   ioDEBUG(RPC_DEBUG_LEVEL, "RPC function %s from module %s", 
                                 AIT_GET_STR(&f->func_name), AIT_GET_LIKE(&f->func_file, char*));                                  AIT_GET_STR(&f->func_name), AIT_GET_LIKE(&f->func_file, char*));
   
                   /* if client doesn't want reply */
                   argc = rpc->call_req.flags & RPC_NOREPLY;
                 rpc->call_rep.ret = RPC_ERROR(rpc_srv_execCall(f, rpc, arr));                  rpc->call_rep.ret = RPC_ERROR(rpc_srv_execCall(f, rpc, arr));
                 if (rpc->call_rep.ret == htonl(-1)) {                  if (rpc->call_rep.ret == htonl(-1)) {
                         rpc->call_rep.eno = RPC_ERROR(errno);                          rpc->call_rep.eno = RPC_ERROR(errno);
                         rpc->call_argc ^= rpc->call_argc;                          rpc->call_argc ^= rpc->call_argc;
                 } else {                  } else {
                         rpc->call_rep.eno ^= rpc->call_rep.eno;                          rpc->call_rep.eno ^= rpc->call_rep.eno;
                        rpc->call_argc = htons(rpc_srv_getVars(f, NULL));                        if (argc) {
                                 /* without reply */
                                 io_clrVars(f->func_vars);
                                 rpc->call_argc ^= rpc->call_argc;
                         } else
                                 rpc->call_argc = htons(rpc_srv_getVars(f, NULL));
                 }                  }
         }          }
   
Line 312  rxBLOB(sched_task_t *task) Line 319  rxBLOB(sched_task_t *task)
         ioTRACE(RPC_TRACE_LEVEL);          ioTRACE(RPC_TRACE_LEVEL);
   
         /* check for disable service at this moment? */          /* check for disable service at this moment? */
        if (s->srv_blob.state == disable) {        if (!s || s->srv_blob.state == disable) {
                 usleep(100000);                  usleep(100000);
 #ifdef HAVE_PTHREAD_YIELD  #ifdef HAVE_PTHREAD_YIELD
                 pthread_yield();                  pthread_yield();

Removed from v.1.7  
changed lines
  Added in v.1.7.2.1


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>