Diff for /libaitrpc/src/srv.c between versions 1.1.1.1 and 1.1.1.1.2.2

version 1.1.1.1, 2010/06/18 01:48:06 version 1.1.1.1.2.2, 2010/06/18 15:47:34
Line 243  rpc_srv_initServer(u_int regProgID, u_int regProcID, i Line 243  rpc_srv_initServer(u_int regProgID, u_int regProcID, i
         srv->srv_session.sess_program = regProgID;          srv->srv_session.sess_program = regProgID;
         srv->srv_session.sess_process = regProcID;          srv->srv_session.sess_process = regProcID;
   
           srv->srv_server.cli_tid = pthread_self();
         srv->srv_server.cli_parent = srv;          srv->srv_server.cli_parent = srv;
         if (family == AF_INET)          if (family == AF_INET)
                 memcpy(&srv->srv_server.cli_sa, &sin, sizeof srv->srv_server.cli_sa);                  memcpy(&srv->srv_server.cli_sa, &sin, sizeof srv->srv_server.cli_sa);
Line 276  rpc_srv_initServer(u_int regProgID, u_int regProcID, i Line 277  rpc_srv_initServer(u_int regProgID, u_int regProcID, i
         } else          } else
                 memset(srv->srv_clients, 0, srv->srv_numcli * sizeof(rpc_cli_t));                  memset(srv->srv_clients, 0, srv->srv_numcli * sizeof(rpc_cli_t));
   
           rpc_srv_registerCall(srv, NULL, CALL_SRVSHUTDOWN, 0);
         rpc_srv_registerCall(srv, NULL, CALL_SRVCLIENTS, 0);          rpc_srv_registerCall(srv, NULL, CALL_SRVCLIENTS, 0);
         rpc_srv_registerCall(srv, NULL, CALL_SRVCALLS, 0);          rpc_srv_registerCall(srv, NULL, CALL_SRVCALLS, 0);
         rpc_srv_registerCall(srv, NULL, CALL_SRVSESSIONS, 0);          rpc_srv_registerCall(srv, NULL, CALL_SRVSESSIONS, 0);
   
           pthread_mutex_init(&rpc_mtx, NULL);
         return srv;          return srv;
 }  }
   
Line 299  rpc_srv_endServer(rpc_srv_t * __restrict srv) Line 303  rpc_srv_endServer(rpc_srv_t * __restrict srv)
                 return;                  return;
         }          }
   
           pthread_mutex_destroy(&rpc_mtx);
   
         while ((f = srv->srv_funcs)) {          while ((f = srv->srv_funcs)) {
                 srv->srv_funcs = f->func_next;                  srv->srv_funcs = f->func_next;
                 free(f);                  free(f);
Line 329  rpc_srv_execServer(rpc_srv_t * __restrict srv) Line 335  rpc_srv_execServer(rpc_srv_t * __restrict srv)
         socklen_t salen = sizeof(struct sockaddr);          socklen_t salen = sizeof(struct sockaddr);
         register int i;          register int i;
         rpc_cli_t *c;          rpc_cli_t *c;
           fd_set fds;
           int ret;
           struct timeval tv = { DEF_RPC_TIMEOUT, 0 };
   
         if (!srv) {          if (!srv) {
                 rpc_SetErr(EINVAL, "Error:: Invalid parameter can`t start RPC server ...\n");                  rpc_SetErr(EINVAL, "Error:: Invalid parameter can`t start RPC server ...\n");
Line 340  rpc_srv_execServer(rpc_srv_t * __restrict srv) Line 349  rpc_srv_execServer(rpc_srv_t * __restrict srv)
                 return -1;                  return -1;
         }          }
   
        while (42) {        while (!rpc_Kill) {
                 for (c = srv->srv_clients, i = 0; i < srv->srv_numcli && c; i++, c++)                  for (c = srv->srv_clients, i = 0; i < srv->srv_numcli && c; i++, c++)
                         if (!c->cli_sa.sa_family)                          if (!c->cli_sa.sa_family)
                                 break;                                  break;
Line 348  rpc_srv_execServer(rpc_srv_t * __restrict srv) Line 357  rpc_srv_execServer(rpc_srv_t * __restrict srv)
                         usleep(1000000);                          usleep(1000000);
                         continue;                          continue;
                 }                  }
   
                   FD_ZERO(&fds);
                   FD_SET(srv->srv_server.cli_sock, &fds);
                   ret = select(srv->srv_server.cli_sock + 1, &fds, NULL, NULL, &tv);
                   if (ret == -1) {
                           LOGERR;
                           ret = 1;
                           break;
                   }
                   if (!ret)
                           continue;
   
                 c->cli_sock = accept(srv->srv_server.cli_sock, &c->cli_sa, &salen);                  c->cli_sock = accept(srv->srv_server.cli_sock, &c->cli_sa, &salen);
                 if (c->cli_sock == -1) {                  if (c->cli_sock == -1) {
                         printf("%s(%d): #%d - %s\n", __func__, __LINE__, errno, strerror(errno));  
                         LOGERR;                          LOGERR;
                         continue;                          continue;
                 } else                  } else
Line 362  rpc_srv_execServer(rpc_srv_t * __restrict srv) Line 382  rpc_srv_execServer(rpc_srv_t * __restrict srv)
                 }                  }
         }          }
   
         /* not reached !!! */  
         return 0;          return 0;
 }  }
   

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.1.2.2


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