Diff for /libaitrpc/src/builtin.c between versions 1.3.2.3 and 1.3.2.4

version 1.3.2.3, 2011/08/31 17:11:58 version 1.3.2.4, 2011/09/01 11:39:26
Line 53  rpcServerClients(rpc_func_t *call, int ic, array_t *iv Line 53  rpcServerClients(rpc_func_t *call, int ic, array_t *iv
 {  {
         rpc_srv_t *srv;          rpc_srv_t *srv;
         array_t *vals;          array_t *vals;
         ait_val_t *v;  
         rpc_cli_t *cli;          rpc_cli_t *cli;
         register int i;          register int i;
         const char *str = NULL;          const char *str = NULL;
        char wrk[INET6_ADDRSTRLEN];        char *val, wrk[INET6_ADDRSTRLEN];
         struct sockaddr_in *s;          struct sockaddr_in *s;
         struct sockaddr_in6 *s6;          struct sockaddr_in6 *s6;
         struct sockaddr_un *su;          struct sockaddr_un *su;
Line 68  rpcServerClients(rpc_func_t *call, int ic, array_t *iv Line 67  rpcServerClients(rpc_func_t *call, int ic, array_t *iv
         else          else
                 srv = call->func_parent;                  srv = call->func_parent;
   
        if (!(vals = rpc_srv_returnVars(call, srv->srv_numcli)))        rpc_srv_getVars(call, &vals);
 
         if (!(val = calloc(srv->srv_numcli, STRSIZ))) {
                 LOGERR;
                 return -1;                  return -1;
           } else
                   memset(val, 0, srv->srv_numcli * STRSIZ);
   
         for (i = 0, cli = srv->srv_clients; i < srv->srv_numcli; i++, cli++) {          for (i = 0, cli = srv->srv_clients; i < srv->srv_numcli; i++, cli++) {
                v = io_array(vals, i, ait_val_t*);                if (!cli->cli_sa.sa_family)
                if (!cli->cli_sa.sa_family) { 
                        AIT_SET_STR(v, ""); 
                         continue;                          continue;
                 }  
   
                 switch (cli->cli_sa.sa_family) {                  switch (cli->cli_sa.sa_family) {
                         case AF_INET:                          case AF_INET:
Line 93  rpcServerClients(rpc_func_t *call, int ic, array_t *iv Line 94  rpcServerClients(rpc_func_t *call, int ic, array_t *iv
                                 break;                                  break;
                 }                  }
                 if (str)                  if (str)
                        AIT_SET_STR(v, (char*) str);                        strlcat(val, (char*) str, srv->srv_numcli * STRSIZ);
                 else                  else
                        AIT_SET_STR(v, "0.0.0.0");                        strlcat(val, "0.0.0.0", srv->srv_numcli * STRSIZ);
                 strlcat(val, " ", srv->srv_numcli * STRSIZ);
         }          }
   
           AIT_SET_STR(io_array(vals, 0, ait_val_t*), val);
           free(val);
         return 0;          return 0;
 }  }
   
Line 106  rpcServerCalls(rpc_func_t *call, int ic, array_t *iv) Line 110  rpcServerCalls(rpc_func_t *call, int ic, array_t *iv)
 {  {
         rpc_srv_t *srv;          rpc_srv_t *srv;
         array_t *vals;          array_t *vals;
         ait_val_t *v;  
         rpc_func_t *f;          rpc_func_t *f;
         register int i;          register int i;
        char str[MAXPATHLEN];        int len;
         char *val, str[MAXPATHLEN];
   
         RPC_CALLBACK_CHECK_INPUT(call);          RPC_CALLBACK_CHECK_INPUT(call);
         if (!call->func_parent)          if (!call->func_parent)
Line 118  rpcServerCalls(rpc_func_t *call, int ic, array_t *iv) Line 122  rpcServerCalls(rpc_func_t *call, int ic, array_t *iv)
                 srv = call->func_parent;                  srv = call->func_parent;
   
         for (i = 0, f = srv->srv_funcs; f; i++, f = f->func_next);          for (i = 0, f = srv->srv_funcs; f; i++, f = f->func_next);
        if (!(vals = rpc_srv_returnVars(call, i)))        len = i * STRSIZ;
 
         rpc_srv_getVars(call, &vals);
 
         if (!(val = malloc(len))) {
                 LOGERR;
                 return -1;                  return -1;
           } else
                   memset(val, 0, len);
   
         for (f = srv->srv_funcs, i = 0; f; f = f->func_next) {          for (f = srv->srv_funcs, i = 0; f; f = f->func_next) {
                 if (*f->func_name) {                  if (*f->func_name) {
                         memset(str, 0, sizeof str);                          memset(str, 0, sizeof str);
                        snprintf(str, sizeof str, "/%s/%s()", f->func_file, f->func_name);                        snprintf(str, sizeof str, "/%s/%s(%d); ", 
                        v = io_array(vals, i++, ait_val_t*);                                        f->func_file, f->func_name, io_arraySize(f->func_vars));
                        AIT_SET_STR(v, str);                        strlcat(val, str, len);
                 }                  }
         }          }
   
           AIT_SET_STR(io_array(vals, 0, ait_val_t*), val);
           free(val);
         return 0;          return 0;
 }  }
   
Line 146  rpcServerSessions(rpc_func_t *call, int ic, array_t *i Line 159  rpcServerSessions(rpc_func_t *call, int ic, array_t *i
         else          else
                 srv = call->func_parent;                  srv = call->func_parent;
   
        if (!(vals = rpc_srv_returnVars(call, 4)))        rpc_srv_getVars(call, &vals);
                return -1; 
   
         v = io_array(vals, 0, ait_val_t*);          v = io_array(vals, 0, ait_val_t*);
         AIT_SET_U8(v, srv->srv_session.sess_version);          AIT_SET_U8(v, srv->srv_session.sess_version);
Line 204  rpcBLOBServerVars(rpc_func_t *call, int ic, array_t *i Line 216  rpcBLOBServerVars(rpc_func_t *call, int ic, array_t *i
 {  {
         rpc_srv_t *srv;          rpc_srv_t *srv;
         array_t *vals;          array_t *vals;
         ait_val_t *v;  
         rpc_blob_t *b;          rpc_blob_t *b;
         register int i;          register int i;
           char *val, str[12];
           int len;
   
         RPC_CALLBACK_CHECK_INPUT(call);          RPC_CALLBACK_CHECK_INPUT(call);
         if (!call->func_parent)          if (!call->func_parent)
Line 216  rpcBLOBServerVars(rpc_func_t *call, int ic, array_t *i Line 229  rpcBLOBServerVars(rpc_func_t *call, int ic, array_t *i
   
         pthread_mutex_lock(&srv->srv_blob.mtx);          pthread_mutex_lock(&srv->srv_blob.mtx);
         for (i = 0, b = srv->srv_blob.blobs; b; i++, b = b->blob_next);          for (i = 0, b = srv->srv_blob.blobs; b; i++, b = b->blob_next);
        if (!(vals = rpc_srv_returnVars(call, i))) {        len = i * sizeof str;
                pthread_mutex_unlock(&srv->srv_blob.mtx); 
                return 0; 
        } 
   
           rpc_srv_getVars(call, &vals);
   
           if (!(val = malloc(len))) {
                   LOGERR;
                   return -1;
           } else
                   memset(val, 0, len);
   
         for (b = srv->srv_blob.blobs, i = 0; b; i++, b = b->blob_next) {          for (b = srv->srv_blob.blobs, i = 0; b; i++, b = b->blob_next) {
                v = io_array(vals, i, ait_val_t*);                memset(str, 0, sizeof str);
                AIT_SET_U32(v, b->blob_var);                snprintf(str, sizeof str, "0x%0X ", b->blob_var);
                 strlcat(val, str, len);
         }          }
         pthread_mutex_unlock(&srv->srv_blob.mtx);          pthread_mutex_unlock(&srv->srv_blob.mtx);
   
           AIT_SET_STR(io_array(vals, 0, ait_val_t*), val);
           free(val);
         return 0;          return 0;
 }  }
   
Line 253  rpcBLOBServerClients(rpc_func_t *call, int ic, array_t Line 274  rpcBLOBServerClients(rpc_func_t *call, int ic, array_t
 {  {
         rpc_srv_t *srv;          rpc_srv_t *srv;
         array_t *vals;          array_t *vals;
         ait_val_t *v;  
         rpc_cli_t *cli;          rpc_cli_t *cli;
         register int i;          register int i;
         const char *str = NULL;          const char *str = NULL;
        char wrk[INET6_ADDRSTRLEN];        char *val, wrk[INET6_ADDRSTRLEN];
         struct sockaddr_in *s;          struct sockaddr_in *s;
         struct sockaddr_in6 *s6;          struct sockaddr_in6 *s6;
         struct sockaddr_un *su;          struct sockaddr_un *su;
Line 268  rpcBLOBServerClients(rpc_func_t *call, int ic, array_t Line 288  rpcBLOBServerClients(rpc_func_t *call, int ic, array_t
         else          else
                 srv = call->func_parent;                  srv = call->func_parent;
   
        if (!(vals = rpc_srv_returnVars(call, srv->srv_numcli)))        rpc_srv_getVars(call, &vals);
 
         if (!(val = calloc(srv->srv_numcli, STRSIZ))) {
                 LOGERR;
                 return -1;                  return -1;
           } else
                   memset(val, 0, srv->srv_numcli * STRSIZ);
   
         for (i = 0, cli = srv->srv_blob.clients; i < srv->srv_numcli; i++, cli++) {          for (i = 0, cli = srv->srv_blob.clients; i < srv->srv_numcli; i++, cli++) {
                v = io_array(vals, i, ait_val_t*);                if (!cli->cli_sa.sa_family)
 
                if (!cli->cli_sa.sa_family) { 
                        AIT_SET_STR(v, ""); 
                         continue;                          continue;
                 }  
   
                 switch (cli->cli_sa.sa_family) {                  switch (cli->cli_sa.sa_family) {
                         case AF_INET:                          case AF_INET:
Line 294  rpcBLOBServerClients(rpc_func_t *call, int ic, array_t Line 315  rpcBLOBServerClients(rpc_func_t *call, int ic, array_t
                                 break;                                  break;
                 }                  }
                 if (str)                  if (str)
                        AIT_SET_STR(v, (char*) str);                        strlcat(val, (char*) str, srv->srv_numcli * STRSIZ);
                 else                  else
                        AIT_SET_STR(v, "0.0.0.0");                        strlcat(val, "0.0.0.0", srv->srv_numcli * STRSIZ);
                 strlcat(val, " ", srv->srv_numcli * STRSIZ);
         }          }
   
           AIT_SET_STR(io_array(vals, 0, ait_val_t*), val);
           free(val);
         return 0;          return 0;
 }  }

Removed from v.1.3.2.3  
changed lines
  Added in v.1.3.2.4


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