Diff for /libaitrpc/src/srv.c between versions 1.12.2.1 and 1.12.2.2

version 1.12.2.1, 2012/11/16 08:33:06 version 1.12.2.2, 2012/11/16 08:51:36
Line 46  SUCH DAMAGE. Line 46  SUCH DAMAGE.
 #include "global.h"  #include "global.h"
   
   
   /* SOCK_STREAM */
 static void *acceptClients(sched_task_t *);  static void *acceptClients(sched_task_t *);
 static void *closeClient(sched_task_t *);  static void *closeClient(sched_task_t *);
static sched_task_func_t cbProto[SOCK_RAW][2] = {static void *rxPacket(sched_task_t *);
        { acceptClients, closeClient }, static void *txPacket(sched_task_t *);
        { acceptClients, closeClient }, 
        { NULL, NULL }/* SOCK_DGRAM */
 
 /* SOCK_RAW */
 
 static sched_task_func_t cbProto[SOCK_RAW + 1][4] = {
         { acceptClients, closeClient, rxPacket, txPacket }, /* SOCK_STREAM */
         { acceptClients, closeClient, rxPacket, txPacket }, /* SOCK_STREAM */
         { NULL, NULL, NULL, NULL }, 
         { NULL, NULL, NULL, NULL }                          /* SOCK_RAW */
 };  };
   
   
Line 197  rxPacket(sched_task_t *task) Line 206  rxPacket(sched_task_t *task)
   
         if (!off)          if (!off)
                 memset(buf, 0, AIT_LEN(&c->cli_buf));                  memset(buf, 0, AIT_LEN(&c->cli_buf));
        else//        else
                memmove(buf, buf + off, AIT_LEN(&c->cli_buf) - off);//                memmove(buf, buf + off, AIT_LEN(&c->cli_buf) - off);
         rlen = recv(TASK_FD(task), buf + off, AIT_LEN(&c->cli_buf) - off, 0);          rlen = recv(TASK_FD(task), buf + off, AIT_LEN(&c->cli_buf) - off, 0);
         if (rlen < 1) {          if (rlen < 1) {
                 /* close connection */                  /* close connection */
Line 258  rxPacket(sched_task_t *task) Line 267  rxPacket(sched_task_t *task)
   
                 /* send RPC reply */                  /* send RPC reply */
                 if (!noreply)                  if (!noreply)
                        schedWrite(TASK_ROOT(task), txPacket, TASK_ARG(task), TASK_FD(task), rpc, len);                        schedWrite(TASK_ROOT(task), cbProto[s->srv_proto][CB_TXPACKET], 
                                         TASK_ARG(task), TASK_FD(task), rpc, len);
   
                 off += len;                  off += len;
         } while (rlen > 0);          } while (rlen > 0);
Line 306  acceptClients(sched_task_t *task) Line 316  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);
   
        schedRead(TASK_ROOT(task), rxPacket, c, c->cli_sock, NULL, 0);        schedRead(TASK_ROOT(task), cbProto[srv->srv_proto][CB_RXPACKET], c, 
                         c->cli_sock, NULL, 0);
 end:  end:
         schedReadSelf(task);          schedReadSelf(task);
         return NULL;          return NULL;

Removed from v.1.12.2.1  
changed lines
  Added in v.1.12.2.2


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