Diff for /libaitrpc/src/builtin.c between versions 1.2.4.2 and 1.3.2.1

version 1.2.4.2, 2011/08/19 08:24:13 version 1.3.2.1, 2011/08/29 23:26:56
Line 49  SUCH DAMAGE. Line 49  SUCH DAMAGE.
 /* builtin RPC server functions */  /* builtin RPC server functions */
   
 int  int
rpcServerClients(rpc_func_t *call, int ic, rpc_val_t *iv)rpcServerClients(rpc_func_t *call, int ic, ait_val_t *iv)
 {  {
         rpc_srv_t *srv;          rpc_srv_t *srv;
        rpc_val_t *v, *vals;        ait_val_t *v, *vals;
         rpc_cli_t *cli;          rpc_cli_t *cli;
         register int i;          register int i;
        const char *str;        const char *str = NULL;
         char wrk[INET6_ADDRSTRLEN];          char wrk[INET6_ADDRSTRLEN];
         struct sockaddr_in *s;          struct sockaddr_in *s;
         struct sockaddr_in6 *s6;          struct sockaddr_in6 *s6;
           struct sockaddr_un *su;
   
         RPC_CALLBACK_CHECK_INPUT(call);          RPC_CALLBACK_CHECK_INPUT(call);
         if (!call->func_parent)          if (!call->func_parent)
Line 71  rpcServerClients(rpc_func_t *call, int ic, rpc_val_t * Line 72  rpcServerClients(rpc_func_t *call, int ic, rpc_val_t *
   
         for (i = 0, cli = srv->srv_clients, v = vals; i < srv->srv_numcli; i++, cli++) {          for (i = 0, cli = srv->srv_clients, v = vals; i < srv->srv_numcli; i++, cli++) {
                 if (!cli->cli_sa.sa_family) {                  if (!cli->cli_sa.sa_family) {
                        RPC_SET_STR(v++, "");                        AIT_SET_STR(v++, "");
                         continue;                          continue;
                 }                  }
   
                if (AF_INET == cli->cli_sa.sa_family) {                switch (cli->cli_sa.sa_family) {
                        s = (struct sockaddr_in*) &cli->cli_sa;                        case AF_INET:
                        str = inet_ntop(cli->cli_sa.sa_family, &s->sin_addr, wrk, sizeof wrk);                                s = (struct sockaddr_in*) &cli->cli_sa;
                } else {                                str = inet_ntop(cli->cli_sa.sa_family, &s->sin_addr, wrk, sizeof wrk);
                        s6 = (struct sockaddr_in6*) &cli->cli_sa;                                break;
                        str = inet_ntop(cli->cli_sa.sa_family, &s6->sin6_addr, wrk, sizeof wrk);                        case AF_INET6:
                                 s6 = (struct sockaddr_in6*) &cli->cli_sa;
                                 str = inet_ntop(cli->cli_sa.sa_family, &s6->sin6_addr, wrk, sizeof wrk);
                                 break;
                         case AF_LOCAL:
                                 su = (struct sockaddr_un*) &cli->cli_sa;
                                 str = su->sun_path;
                                 break;
                 }                  }
                 if (str)                  if (str)
                        RPC_SET_STR(v++, (char*) str);                        AIT_SET_STR(v++, (char*) str);
                 else                  else
                        RPC_SET_STR(v++, "0.0.0.0");                        AIT_SET_STR(v++, "0.0.0.0");
         }          }
   
         return 0;          return 0;
 }  }
   
 int  int
rpcServerCalls(rpc_func_t *call, int ic, rpc_val_t *iv)rpcServerCalls(rpc_func_t *call, int ic, ait_val_t *iv)
 {  {
         rpc_srv_t *srv;          rpc_srv_t *srv;
        rpc_val_t *v, *vals;        ait_val_t *v, *vals;
         rpc_func_t *f;          rpc_func_t *f;
         register int i;          register int i;
         char str[MAXPATHLEN];          char str[MAXPATHLEN];
Line 112  rpcServerCalls(rpc_func_t *call, int ic, rpc_val_t *iv Line 120  rpcServerCalls(rpc_func_t *call, int ic, rpc_val_t *iv
   
         for (f = srv->srv_funcs, v = vals; f; f = f->func_next) {          for (f = srv->srv_funcs, v = vals; f; f = f->func_next) {
                 if (*f->func_name) {                  if (*f->func_name) {
                        memset(str, 0, MAXPATHLEN);                        memset(str, 0, sizeof str);
                        snprintf(str, MAXPATHLEN, "/%s/%s()", f->func_file, f->func_name);                        snprintf(str, sizeof str, "/%s/%s()", f->func_file, f->func_name);
                        RPC_SET_STR(v++, str);                        AIT_SET_STR(v++, str);
                 }                  }
         }          }
   
Line 122  rpcServerCalls(rpc_func_t *call, int ic, rpc_val_t *iv Line 130  rpcServerCalls(rpc_func_t *call, int ic, rpc_val_t *iv
 }  }
   
 int  int
rpcServerSessions(rpc_func_t *call, int ic, rpc_val_t *iv)rpcServerSessions(rpc_func_t *call, int ic, ait_val_t *iv)
 {  {
         rpc_srv_t *srv;          rpc_srv_t *srv;
        rpc_val_t *vals;        ait_val_t *vals;
   
         RPC_CALLBACK_CHECK_INPUT(call);          RPC_CALLBACK_CHECK_INPUT(call);
         if (!call->func_parent)          if (!call->func_parent)
Line 136  rpcServerSessions(rpc_func_t *call, int ic, rpc_val_t  Line 144  rpcServerSessions(rpc_func_t *call, int ic, rpc_val_t 
         if (!(vals = rpc_srv_returnVars(call, 4)))          if (!(vals = rpc_srv_returnVars(call, 4)))
                 return -1;                  return -1;
   
        RPC_SET_U8(&vals[0], srv->srv_session.sess_version);        AIT_SET_U8(&vals[0], srv->srv_session.sess_version);
        RPC_SET_U32(&vals[1], srv->srv_session.sess_program);        AIT_SET_U32(&vals[1], srv->srv_session.sess_program);
        RPC_SET_U32(&vals[2], srv->srv_session.sess_process);        AIT_SET_U32(&vals[2], srv->srv_session.sess_process);
        RPC_SET_I32(&vals[3], srv->srv_numcli);        AIT_SET_I32(&vals[3], srv->srv_numcli);
   
         return 0;          return 0;
 }  }
   
 int  int
rpcServerShutdown(rpc_func_t *call, int ic, rpc_val_t *iv)rpcServerShutdown(rpc_func_t *call, int ic, ait_val_t *iv)
 {  {
         rpc_srv_t *srv;          rpc_srv_t *srv;
   
Line 165  rpcServerShutdown(rpc_func_t *call, int ic, rpc_val_t  Line 173  rpcServerShutdown(rpc_func_t *call, int ic, rpc_val_t 
 // ----------------------------------------------------  // ----------------------------------------------------
   
 int  int
rpcBLOBServerShutdown(rpc_func_t *call, int ic, rpc_val_t *iv)rpcBLOBServerShutdown(rpc_func_t *call, int ic, ait_val_t *iv)
 {  {
         rpc_srv_t *srv;          rpc_srv_t *srv;
   
Line 183  rpcBLOBServerShutdown(rpc_func_t *call, int ic, rpc_va Line 191  rpcBLOBServerShutdown(rpc_func_t *call, int ic, rpc_va
 }  }
   
 int  int
rpcBLOBServerVars(rpc_func_t *call, int ic, rpc_val_t *iv)rpcBLOBServerVars(rpc_func_t *call, int ic, ait_val_t *iv)
 {  {
         rpc_srv_t *srv;          rpc_srv_t *srv;
        rpc_val_t *v, *vals;        ait_val_t *v, *vals;
         rpc_blob_t *b;          rpc_blob_t *b;
         register int i;          register int i;
   
Line 204  rpcBLOBServerVars(rpc_func_t *call, int ic, rpc_val_t  Line 212  rpcBLOBServerVars(rpc_func_t *call, int ic, rpc_val_t 
         }          }
   
         for (b = srv->srv_blob.blobs, v = vals; b; b = b->blob_next)          for (b = srv->srv_blob.blobs, v = vals; b; b = b->blob_next)
                RPC_SET_U32(v++, b->blob_var);                AIT_SET_U32(v++, b->blob_var);
         pthread_mutex_unlock(&srv->srv_blob.mtx);          pthread_mutex_unlock(&srv->srv_blob.mtx);
   
         return 0;          return 0;
 }  }
   
 int  int
rpcBLOBServerState(rpc_func_t *call, int ic, rpc_val_t *iv)rpcBLOBServerState(rpc_func_t *call, int ic, ait_val_t *iv)
 {  {
         rpc_srv_t *srv;          rpc_srv_t *srv;
   
Line 224  rpcBLOBServerState(rpc_func_t *call, int ic, rpc_val_t Line 232  rpcBLOBServerState(rpc_func_t *call, int ic, rpc_val_t
         if (iv[0].val_type != i32)          if (iv[0].val_type != i32)
                 return -1;                  return -1;
   
        srv->srv_blob.state = RPC_GET_I32(&iv[0]);        srv->srv_blob.state = AIT_GET_I32(&iv[0]);
         return 0;          return 0;
 }  }
   
 int  int
rpcBLOBServerClients(rpc_func_t *call, int ic, rpc_val_t *iv)rpcBLOBServerClients(rpc_func_t *call, int ic, ait_val_t *iv)
 {  {
         rpc_srv_t *srv;          rpc_srv_t *srv;
        rpc_val_t *v, *vals;        ait_val_t *v, *vals;
         rpc_cli_t *cli;          rpc_cli_t *cli;
         register int i;          register int i;
        const char *str;        const char *str = NULL;
         char wrk[INET6_ADDRSTRLEN];          char wrk[INET6_ADDRSTRLEN];
         struct sockaddr_in *s;          struct sockaddr_in *s;
         struct sockaddr_in6 *s6;          struct sockaddr_in6 *s6;
           struct sockaddr_un *su;
   
         RPC_CALLBACK_CHECK_INPUT(call);          RPC_CALLBACK_CHECK_INPUT(call);
         if (!call->func_parent)          if (!call->func_parent)
Line 251  rpcBLOBServerClients(rpc_func_t *call, int ic, rpc_val Line 260  rpcBLOBServerClients(rpc_func_t *call, int ic, rpc_val
   
         for (i = 0, cli = srv->srv_blob.clients, v = vals; i < srv->srv_numcli; i++, cli++) {          for (i = 0, cli = srv->srv_blob.clients, v = vals; i < srv->srv_numcli; i++, cli++) {
                 if (!cli->cli_sa.sa_family) {                  if (!cli->cli_sa.sa_family) {
                        RPC_SET_STR(v++, "");                        AIT_SET_STR(v++, "");
                         continue;                          continue;
                 }                  }
   
                if (AF_INET == cli->cli_sa.sa_family) {                switch (cli->cli_sa.sa_family) {
                        s = (struct sockaddr_in*) &cli->cli_sa;                        case AF_INET:
                        str = inet_ntop(cli->cli_sa.sa_family, &s->sin_addr, wrk, sizeof wrk);                                s = (struct sockaddr_in*) &cli->cli_sa;
                } else {                                str = inet_ntop(cli->cli_sa.sa_family, &s->sin_addr, wrk, sizeof wrk);
                        s6 = (struct sockaddr_in6*) &cli->cli_sa;                                break;
                        str = inet_ntop(cli->cli_sa.sa_family, &s6->sin6_addr, wrk, sizeof wrk);                        case AF_INET6:
                                 s6 = (struct sockaddr_in6*) &cli->cli_sa;
                                 str = inet_ntop(cli->cli_sa.sa_family, &s6->sin6_addr, wrk, sizeof wrk);
                                 break;
                         case AF_LOCAL:
                                 su = (struct sockaddr_un*) &cli->cli_sa;
                                 str = su->sun_path;
                                 break;
                 }                  }
                 if (str)                  if (str)
                        RPC_SET_STR(v++, (char*) str);                        AIT_SET_STR(v++, (char*) str);
                 else                  else
                        RPC_SET_STR(v++, "0.0.0.0");                        AIT_SET_STR(v++, "0.0.0.0");
         }          }
   
         return 0;          return 0;

Removed from v.1.2.4.2  
changed lines
  Added in v.1.3.2.1


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