Diff for /libaitrpc/src/srv.c between versions 1.28.2.2 and 1.28.2.3

version 1.28.2.2, 2016/08/02 10:39:50 version 1.28.2.3, 2016/08/02 12:00:39
Line 401  acceptClients(sched_task_t *task) Line 401  acceptClients(sched_task_t *task)
 {  {
         rpc_srv_t *srv = TASK_ARG(task);          rpc_srv_t *srv = TASK_ARG(task);
         rpc_cli_t *c = NULL;          rpc_cli_t *c = NULL;
        socklen_t salen = sizeof(sockaddr_t);        socklen_t salen = E_SOCKADDR_MAX;
         int sock;          int sock;
 #ifdef TCP_SESSION_TIMEOUT  #ifdef TCP_SESSION_TIMEOUT
         struct timespec ts = { DEF_RPC_TIMEOUT, 0 };          struct timespec ts = { DEF_RPC_TIMEOUT, 0 };
Line 517  rxUDPPacket(sched_task_t *task) Line 517  rxUDPPacket(sched_task_t *task)
         u_short crc;          u_short crc;
         struct tagRPCCall *rpc;          struct tagRPCCall *rpc;
         sockaddr_t sa;          sockaddr_t sa;
        socklen_t salen = (u_char) MIN(sizeof(sockaddr_t), 0xff);        socklen_t salen = E_SOCKADDR_MAX;
         struct timespec ts = { DEF_RPC_TIMEOUT, 0 };          struct timespec ts = { DEF_RPC_TIMEOUT, 0 };
         ait_val_t b = AIT_VAL_INIT;          ait_val_t b = AIT_VAL_INIT;
   
Line 659  rxRAWPacket(sched_task_t *task) Line 659  rxRAWPacket(sched_task_t *task)
         u_short crc;          u_short crc;
         struct tagRPCCall *rpc;          struct tagRPCCall *rpc;
         sockaddr_t sa;          sockaddr_t sa;
        socklen_t salen = (u_char) MIN(sizeof(sockaddr_t), 0xff);        socklen_t salen = E_SOCKADDR_MAX;
         struct timespec ts = { DEF_RPC_TIMEOUT, 0 };          struct timespec ts = { DEF_RPC_TIMEOUT, 0 };
         ait_val_t b = AIT_VAL_INIT;          ait_val_t b = AIT_VAL_INIT;
   
Line 1214  acceptBLOBClients(sched_task_t *task) Line 1214  acceptBLOBClients(sched_task_t *task)
         rpc_srv_t *srv = TASK_ARG(task);          rpc_srv_t *srv = TASK_ARG(task);
         rpc_cli_t *c = NULL;          rpc_cli_t *c = NULL;
         register int i;          register int i;
        socklen_t salen = sizeof(sockaddr_t);        socklen_t salen = E_SOCKADDR_MAX;
         int sock;          int sock;
 #ifdef TCP_NOPUSH  #ifdef TCP_NOPUSH
         int n = 1;          int n = 1;
Line 1281  int Line 1281  int
 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_short Port, const char *diskDir)  rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_short Port, const char *diskDir)
 {  {
         int n = 1;          int n = 1;
           socklen_t salen;
   
         if (!srv || srv->srv_kill) {          if (!srv || srv->srv_kill) {
                 rpc_SetErr(EINVAL, "Invalid parameters can`t init BLOB server");                  rpc_SetErr(EINVAL, "Invalid parameters can`t init BLOB server");
Line 1304  rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s Line 1305  rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s
                 case AF_INET:                  case AF_INET:
                         srv->srv_blob.server.cli_sa.sin.sin_port =                           srv->srv_blob.server.cli_sa.sin.sin_port = 
                                 htons(Port ? Port : ntohs(srv->srv_blob.server.cli_sa.sin.sin_port) + 1);                                  htons(Port ? Port : ntohs(srv->srv_blob.server.cli_sa.sin.sin_port) + 1);
                           salen = sizeof srv->srv_blob.server.cli_sa.sin;
                         break;                          break;
                 case AF_INET6:                  case AF_INET6:
                         srv->srv_blob.server.cli_sa.sin6.sin6_port =                           srv->srv_blob.server.cli_sa.sin6.sin6_port = 
                                 htons(Port ? Port : ntohs(srv->srv_blob.server.cli_sa.sin6.sin6_port) + 1);                                  htons(Port ? Port : ntohs(srv->srv_blob.server.cli_sa.sin6.sin6_port) + 1);
                           salen = sizeof srv->srv_blob.server.cli_sa.sin6;
                         break;                          break;
                 case AF_LOCAL:                  case AF_LOCAL:
                         strlcat(srv->srv_blob.server.cli_sa.sun.sun_path, ".blob",                           strlcat(srv->srv_blob.server.cli_sa.sun.sun_path, ".blob", 
                                         sizeof srv->srv_blob.server.cli_sa.sun.sun_path);                                          sizeof srv->srv_blob.server.cli_sa.sun.sun_path);
                           salen = sizeof srv->srv_blob.server.cli_sa.sun;
                         break;                          break;
                 default:                  default:
                         AIT_FREE_VAL(&srv->srv_blob.dir);                          AIT_FREE_VAL(&srv->srv_blob.dir);
Line 1344  rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s Line 1348  rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s
                 AIT_FREE_VAL(&srv->srv_blob.dir);                  AIT_FREE_VAL(&srv->srv_blob.dir);
                 return -1;                  return -1;
         }          }
        if (bind(srv->srv_blob.server.cli_sock, &srv->srv_blob.server.cli_sa.sa,         if (bind(srv->srv_blob.server.cli_sock, &srv->srv_blob.server.cli_sa.sa, salen) == -1) {
                                sizeof srv->srv_blob.server.cli_sa.sa) == -1) { 
                 LOGERR;                  LOGERR;
                 close(srv->srv_blob.server.cli_sock);                  close(srv->srv_blob.server.cli_sock);
                 AIT_FREE_VAL(&srv->srv_blob.dir);                  AIT_FREE_VAL(&srv->srv_blob.dir);
Line 1495  rpc_srv_initServer(u_char InstID, int concurentClients Line 1498  rpc_srv_initServer(u_char InstID, int concurentClients
         int n = 1;          int n = 1;
         rpc_srv_t *srv = NULL;          rpc_srv_t *srv = NULL;
         sockaddr_t sa = E_SOCKADDR_INIT;          sockaddr_t sa = E_SOCKADDR_INIT;
           socklen_t salen;
   
         if (!concurentClients || (proto < 0 || proto > SOCK_RAW)) {          if (!concurentClients || (proto < 0 || proto > SOCK_RAW)) {
                 rpc_SetErr(EINVAL, "Invalid parameters can`t init RPC server");                  rpc_SetErr(EINVAL, "Invalid parameters can`t init RPC server");
Line 1502  rpc_srv_initServer(u_char InstID, int concurentClients Line 1506  rpc_srv_initServer(u_char InstID, int concurentClients
         }          }
         if (!Port && proto < SOCK_RAW)          if (!Port && proto < SOCK_RAW)
                 Port = RPC_DEFPORT;                  Port = RPC_DEFPORT;
        if (!e_gethostbyname(csHost, Port, &sa))        if (!(salen = e_gethostbyname(csHost, Port, &sa)))
                 return NULL;                  return NULL;
         if (!proto)          if (!proto)
                 proto = SOCK_STREAM;                  proto = SOCK_STREAM;
Line 1584  rpc_srv_initServer(u_char InstID, int concurentClients Line 1588  rpc_srv_initServer(u_char InstID, int concurentClients
                 LOGERR;                  LOGERR;
                 goto err;                  goto err;
         }          }
        if (bind(srv->srv_server.cli_sock, &srv->srv_server.cli_sa.sa,         if (bind(srv->srv_server.cli_sock, &srv->srv_server.cli_sa.sa, salen) == -1) {
                                sizeof srv->srv_server.cli_sa.sa) == -1) { 
                 LOGERR;                  LOGERR;
                 goto err;                  goto err;
         } else          } else

Removed from v.1.28.2.2  
changed lines
  Added in v.1.28.2.3


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