Diff for /libaitrpc/src/srv.c between versions 1.20.4.1 and 1.21

version 1.20.4.1, 2013/11/13 12:18:14 version 1.21, 2013/11/14 21:44:14
Line 165  txPacket(sched_task_t *task) Line 165  txPacket(sched_task_t *task)
         struct tagRPCCall *rpc = (struct tagRPCCall*) buf;          struct tagRPCCall *rpc = (struct tagRPCCall*) buf;
         int ret, estlen, wlen = sizeof(struct tagRPCCall);          int ret, estlen, wlen = sizeof(struct tagRPCCall);
         struct pollfd pfd;          struct pollfd pfd;
   #ifdef TCP_SESSION_TIMEOUT
           struct timespec ts = { DEF_RPC_TIMEOUT, 0 };
   
           schedCancelby(TASK_ROOT(task), taskTIMER, CRITERIA_DATA, TASK_ARG(task), NULL);
           schedTimer(TASK_ROOT(task), cbProto[s->srv_proto][CB_CLOSECLIENT], 
                            TASK_ARG(task), ts, TASK_ARG(task), 0);
   #endif
   
         if (rpc->call_argc) {          if (rpc->call_argc) {
                 f = rpc_srv_getCall(s, ntohs(rpc->call_tag));                  f = rpc_srv_getCall(s, ntohs(rpc->call_tag));
                 if (!f) {                  if (!f) {
Line 305  rxPacket(sched_task_t *task) Line 312  rxPacket(sched_task_t *task)
         u_char *buf = AIT_GET_BUF(&c->cli_buf);          u_char *buf = AIT_GET_BUF(&c->cli_buf);
         struct tagRPCCall *rpc = (struct tagRPCCall*) buf;          struct tagRPCCall *rpc = (struct tagRPCCall*) buf;
         struct pollfd pfd;          struct pollfd pfd;
   #ifdef TCP_SESSION_TIMEOUT
           struct timespec ts = { DEF_RPC_TIMEOUT, 0 };
   
           schedCancelby(TASK_ROOT(task), taskTIMER, CRITERIA_DATA, TASK_ARG(task), NULL);
           schedTimer(TASK_ROOT(task), cbProto[s->srv_proto][CB_CLOSECLIENT], 
                            TASK_ARG(task), ts, TASK_ARG(task), 0);
   #endif
   
         memset(buf, 0, sizeof(struct tagRPCCall));          memset(buf, 0, sizeof(struct tagRPCCall));
         rlen = recv(TASK_FD(task), rpc, sizeof(struct tagRPCCall), MSG_PEEK);          rlen = recv(TASK_FD(task), rpc, sizeof(struct tagRPCCall), MSG_PEEK);
         if (rlen < sizeof(struct tagRPCCall)) {          if (rlen < sizeof(struct tagRPCCall)) {
Line 387  acceptClients(sched_task_t *task) Line 401  acceptClients(sched_task_t *task)
         rpc_cli_t *c = NULL;          rpc_cli_t *c = NULL;
         socklen_t salen = sizeof(sockaddr_t);          socklen_t salen = sizeof(sockaddr_t);
         int sock;          int sock;
   #ifdef TCP_SESSION_TIMEOUT
           struct timespec ts = { DEF_RPC_TIMEOUT, 0 };
   #endif
   
         c = _allocClient(srv, NULL);          c = _allocClient(srv, NULL);
         if (!c) {          if (!c) {
Line 408  acceptClients(sched_task_t *task) Line 425  acceptClients(sched_task_t *task)
         } else          } else
                 fcntl(c->cli_sock, F_SETFL, fcntl(c->cli_sock, F_GETFL) | O_NONBLOCK);                  fcntl(c->cli_sock, F_SETFL, fcntl(c->cli_sock, F_GETFL) | O_NONBLOCK);
   
   #ifdef TCP_SESSION_TIMEOUT
           /* armed timer for close stateless connection */
           schedCancelby(TASK_ROOT(task), taskTIMER, CRITERIA_DATA, c, NULL);
           schedTimer(TASK_ROOT(task), cbProto[srv->srv_proto][CB_CLOSECLIENT], c, 
                           ts, c, 0);
   #endif
         schedRead(TASK_ROOT(task), cbProto[srv->srv_proto][CB_RXPACKET], c,           schedRead(TASK_ROOT(task), cbProto[srv->srv_proto][CB_RXPACKET], c, 
                         c->cli_sock, NULL, 0);                          c->cli_sock, NULL, 0);
 end:  end:
Line 728  acceptBLOBClients(sched_task_t *task) Line 751  acceptBLOBClients(sched_task_t *task)
         for (i = 0; i < array_Size(srv->srv_blob.clients) &&           for (i = 0; i < array_Size(srv->srv_blob.clients) && 
                         (c = array(srv->srv_blob.clients, i, rpc_cli_t*)); i++);                          (c = array(srv->srv_blob.clients, i, rpc_cli_t*)); i++);
         if (c) {        /* no more free slots! */          if (c) {        /* no more free slots! */
                EVERBOSE(1, "RPC client quota exceeded! Connection will be shutdown!\n");                EVERBOSE(1, "BLOB client quota exceeded! Connection will be shutdown!\n");
                 if ((sock = accept(TASK_FD(task), NULL, NULL)) != -1) {                  if ((sock = accept(TASK_FD(task), NULL, NULL)) != -1) {
                         shutdown(sock, SHUT_RDWR);                          shutdown(sock, SHUT_RDWR);
                         close(sock);                          close(sock);

Removed from v.1.20.4.1  
changed lines
  Added in v.1.21


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