Diff for /libaitrpc/src/srv.c between versions 1.16.2.2 and 1.16.2.3

version 1.16.2.2, 2013/07/15 14:22:00 version 1.16.2.3, 2013/07/15 14:54:40
Line 559  closeBLOBClient(sched_task_t *task) Line 559  closeBLOBClient(sched_task_t *task)
 }  }
   
 static void *  static void *
 toutBLOB(sched_task_t *task)  
 {  
         rpc_cli_t *c = TASK_ARG(task);  
   
         rpc_srv_unregisterBLOB((rpc_srv_t*) c->cli_parent, (uint32_t) TASK_DATA(task));  
   
         return NULL;  
 }  
   
 static void *  
 txBLOB(sched_task_t *task)  txBLOB(sched_task_t *task)
 {  {
         rpc_cli_t *c = TASK_ARG(task);          rpc_cli_t *c = TASK_ARG(task);
Line 593  rxBLOB(sched_task_t *task) Line 583  rxBLOB(sched_task_t *task)
         rpc_blob_t *b;          rpc_blob_t *b;
         struct tagBLOBHdr blob;          struct tagBLOBHdr blob;
         int rlen;          int rlen;
         struct timespec ts = { RPC_BLOB_TIMEOUT, 0 };  
   
         memset(&blob, 0, sizeof blob);          memset(&blob, 0, sizeof blob);
         rlen = recv(TASK_FD(task), &blob, sizeof blob, 0);          rlen = recv(TASK_FD(task), &blob, sizeof blob, 0);
Line 639  rxBLOB(sched_task_t *task) Line 628  rxBLOB(sched_task_t *task)
                         }                          }
                         break;                          break;
                 case set:                  case set:
                        if ((b = rpc_srv_registerBLOB(s, ntohl(blob.hdr_len)))) {                        if ((b = rpc_srv_registerBLOB(s, ntohl(blob.hdr_len)
                                                         ntohl(blob.hdr_ret), task))) {
                                 /* set new BLOB variable for reply :) */                                  /* set new BLOB variable for reply :) */
                                 blob.hdr_var = htonl(b->blob_var);                                  blob.hdr_var = htonl(b->blob_var);
   
                                 /* set live BLOB timeout */  
                                 ts.tv_sec = blob.hdr_ret ? blob.hdr_ret : RPC_BLOB_TIMEOUT;  
   
                                 /* receive BLOB from client */                                  /* receive BLOB from client */
                                 blob.hdr_ret = htonl(rpc_srv_recvBLOB(c, b));                                  blob.hdr_ret = htonl(rpc_srv_recvBLOB(c, b));
                                 rpc_srv_blobUnmap(b);                                  rpc_srv_blobUnmap(b);
   
                                 schedTimer(TASK_ROOT(task), toutBLOB, TASK_ARG(task), ts,   
                                                 (void*) (intptr_t) ntohl(blob.hdr_var), ntohl(blob.hdr_len));  
                         } else {                          } else {
                                 blob.hdr_cmd = error;                                  blob.hdr_cmd = error;
                                 blob.hdr_ret = RPC_ERROR(-1);                                  blob.hdr_ret = RPC_ERROR(-1);

Removed from v.1.16.2.2  
changed lines
  Added in v.1.16.2.3


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