Simplified server pipe implementation by changing arguments passed down
authorTim Potter <tpot@samba.org>
Fri, 16 Jun 2000 08:11:32 +0000 (08:11 +0000)
committerTim Potter <tpot@samba.org>
Fri, 16 Jun 2000 08:11:32 +0000 (08:11 +0000)
through to the individual pipe api calls.  Instead of passing two
prs_struct pointers, we now pass the pipes_struct pointer which contains
the former information as well as other useful stuff like the vuid.

source/rpc_server/srv_dfs.c
source/rpc_server/srv_lsa.c
source/rpc_server/srv_pipe.c
source/rpc_server/srv_reg.c
source/rpc_server/srv_samr.c
source/rpc_server/srv_srvsvc.c
source/rpc_server/srv_wkssvc.c

index 2a8bb71604843e8cc2ab1bb69fef251d1d0a1a44..62acbaa6ccd59f20cbd9270baefd7d092bfaf060 100644 (file)
@@ -1,4 +1,3 @@
-
 /* 
  *  Unix SMB/Netbios implementation.
  *  Version 1.9.
@@ -35,17 +34,18 @@ extern pstring global_myname;
 /**********************************************************************
  api_dfs_exist
  **********************************************************************/
-static BOOL api_dfs_exist( prs_struct *data,
-                          prs_struct *rdata)
+static BOOL api_dfs_exist(pipes_struct *p)
 {
-  DFS_R_DFS_EXIST r_d;
-
-  if(lp_host_msdfs()) 
-    r_d.dfs_exist_flag = 1;
-  else
-    r_d.dfs_exist_flag = 0; 
-
-  return dfs_io_r_dfs_exist("", &r_d, rdata, 0);
+       DFS_R_DFS_EXIST r_d;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
+
+       if(lp_host_msdfs()) 
+               r_d.dfs_exist_flag = 1;
+       else
+               r_d.dfs_exist_flag = 0; 
+       
+       return dfs_io_r_dfs_exist("", &r_d, rdata, 0);
 }
 
 static uint32 init_reply_dfs_add(DFS_Q_DFS_ADD* q_a)
@@ -109,19 +109,21 @@ static uint32 init_reply_dfs_add(DFS_Q_DFS_ADD* q_a)
 /*****************************************************************
  api_dfs_add
  *****************************************************************/
-static BOOL api_dfs_add(prs_struct* data, prs_struct* rdata)
+static BOOL api_dfs_add(pipes-struct *p)
 {
-  DFS_Q_DFS_ADD q_a;
-  DFS_R_DFS_ADD r_a;
-
-  if(!dfs_io_q_dfs_add("", &q_a, data, 0))
-    return False;
-  
-  r_a.status = init_reply_dfs_add(&q_a);
-
-  dfs_io_r_dfs_add("", &r_a, rdata, 0);
-
-  return True;
+       DFS_Q_DFS_ADD q_a;
+       DFS_R_DFS_ADD r_a;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
+
+       if(!dfs_io_q_dfs_add("", &q_a, data, 0))
+               return False;
+       
+       r_a.status = init_reply_dfs_add(&q_a);
+       
+       dfs_io_r_dfs_add("", &r_a, rdata, 0);
+       
+       return True;
 }
 
 static uint32 init_reply_dfs_remove(DFS_Q_DFS_REMOVE* q_r)
@@ -198,19 +200,19 @@ static uint32 init_reply_dfs_remove(DFS_Q_DFS_REMOVE* q_r)
 /*****************************************************************
  api_dfs_remove
  *****************************************************************/
-static BOOL api_dfs_remove(prs_struct* data, prs_struct* rdata)
+static BOOL api_dfs_remove(pipes_struct *p)
 {
-  DFS_Q_DFS_REMOVE q_r;
-  DFS_R_DFS_REMOVE r_r;
-
-  if(!dfs_io_q_dfs_remove("", &q_r, data, 0))
-    return False;
-
-  r_r.status = init_reply_dfs_remove(&q_r);
-
-  dfs_io_r_dfs_remove("", &r_r, rdata, 0);
-
-  return True;
+       DFS_Q_DFS_REMOVE q_r;
+       DFS_R_DFS_REMOVE r_r;
+       
+       if(!dfs_io_q_dfs_remove("", &q_r, data, 0))
+               return False;
+       
+       r_r.status = init_reply_dfs_remove(&q_r);
+       
+       dfs_io_r_dfs_remove("", &r_r, rdata, 0);
+       
+       return True;
 }
 
 static BOOL init_reply_dfs_info_1(struct junction_map* j, DFS_INFO_1* dfs1, int num_j)
@@ -377,59 +379,63 @@ static uint32 init_reply_dfs_get_info(UNISTR2* uni_path, uint32 level,
 /*******************************************************************
  api_dfs_get_info
  *******************************************************************/
-static BOOL api_dfs_get_info(prs_struct* data, prs_struct* rdata)
+static BOOL api_dfs_get_info(pipes_struct *p)
 {
-  DFS_Q_DFS_GET_INFO q_i;
-  DFS_R_DFS_GET_INFO r_i;
-
-  ZERO_STRUCT(r_i);
-
-  if(!dfs_io_q_dfs_get_info("", &q_i, data, 0))
-    return False;
-
-  r_i.status = init_reply_dfs_get_info(&q_i.uni_path, q_i.level, &r_i);
-
-  if(!dfs_io_r_dfs_get_info("", &r_i, rdata, 0))
-    return False;
-
-  switch(r_i.level) {
-  case 1: free(r_i.ctr.dfs.info1); break;
-  case 2: free(r_i.ctr.dfs.info2); break;
-  case 3: 
-    {
-      free(r_i.ctr.dfs.info3->storages);
-      free(r_i.ctr.dfs.info3);
-      break;
-    }
-  }
-  return True;
+       DFS_Q_DFS_GET_INFO q_i;
+       DFS_R_DFS_GET_INFO r_i;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
+
+       ZERO_STRUCT(r_i);
+       
+       if(!dfs_io_q_dfs_get_info("", &q_i, data, 0))
+               return False;
+       
+       r_i.status = init_reply_dfs_get_info(&q_i.uni_path, q_i.level, &r_i);
+       
+       if(!dfs_io_r_dfs_get_info("", &r_i, rdata, 0))
+               return False;
+       
+       switch(r_i.level) {
+       case 1: free(r_i.ctr.dfs.info1); break;
+       case 2: free(r_i.ctr.dfs.info2); break;
+       case 3: {
+               free(r_i.ctr.dfs.info3->storages);
+               free(r_i.ctr.dfs.info3);
+               break;
+       }
+       }
+       return True;
 }
 
 /*******************************************************************
  api_dfs_enum
  *******************************************************************/
-static BOOL api_dfs_enum(prs_struct* data, prs_struct* rdata)
+static BOOL api_dfs_enum(pipes_struct *p)
 {
-  DFS_Q_DFS_ENUM q_e;
-  DFS_R_DFS_ENUM q_r;
-
-  if(!dfs_io_q_dfs_enum("", &q_e, data, 0))
-    return False;
-
-  q_r.status = init_reply_dfs_enum(q_e.level, &q_r);
-
-  if(!dfs_io_r_dfs_enum("", &q_r, rdata, 0))
-      return False;
-  switch(q_e.level) {
-  case 1: 
-    free(q_r.ctr->dfs.info1); break;
-  case 2:
-    free(q_r.ctr->dfs.info2); break;
-  case 3:
-    free(q_r.ctr->dfs.info3->storages); free(q_r.ctr->dfs.info3); break;
-  }
-  free(q_r.ctr);
-  return True;
+       DFS_Q_DFS_ENUM q_e;
+       DFS_R_DFS_ENUM q_r;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
+
+       if(!dfs_io_q_dfs_enum("", &q_e, data, 0))
+               return False;
+       
+       q_r.status = init_reply_dfs_enum(q_e.level, &q_r);
+       
+       if(!dfs_io_r_dfs_enum("", &q_r, rdata, 0))
+               return False;
+       switch(q_e.level) {
+       case 1: 
+               free(q_r.ctr->dfs.info1); break;
+       case 2:
+               free(q_r.ctr->dfs.info2); break;
+       case 3:
+               free(q_r.ctr->dfs.info3->storages); 
+               free(q_r.ctr->dfs.info3); break;
+       }
+       free(q_r.ctr);
+       return True;
 }
 
 /*******************************************************************
@@ -437,20 +443,20 @@ static BOOL api_dfs_enum(prs_struct* data, prs_struct* rdata)
 ********************************************************************/
 struct api_struct api_netdfs_cmds[] =
 {
-  {"DFS_EXIST",        DFS_EXIST,               api_dfs_exist    },
-  {"DFS_ADD",          DFS_ADD,                 api_dfs_add      },
-  {"DFS_REMOVE",       DFS_REMOVE,              api_dfs_remove   },
-  {"DFS_GET_INFO",     DFS_GET_INFO,            api_dfs_get_info },
-  {"DFS_ENUM",         DFS_ENUM,                api_dfs_enum     },
-  {NULL,                      0,                NULL             }
+       {"DFS_EXIST",        DFS_EXIST,               api_dfs_exist    },
+       {"DFS_ADD",          DFS_ADD,                 api_dfs_add      },
+       {"DFS_REMOVE",       DFS_REMOVE,              api_dfs_remove   },
+       {"DFS_GET_INFO",     DFS_GET_INFO,            api_dfs_get_info },
+       {"DFS_ENUM",         DFS_ENUM,                api_dfs_enum     },
+       {NULL,               0,                       NULL             }
 };
 
 /*******************************************************************
 receives a netdfs pipe and responds.
 ********************************************************************/
-BOOL api_netdfs_rpc(pipes_struct *p, prs_struct *data)
+BOOL api_netdfs_rpc(pipes_struct *p)
 {
-       return api_rpcTNP(p, "api_netdfs_rpc", api_netdfs_cmds, data); 
+       return api_rpcTNP(p, "api_netdfs_rpc", api_netdfs_cmds);
 }
 
 #endif
index f132e4b39b1aae36e65dfbf3a9bebd1e057813d8..7df7686878353a6bc826a22356849d796b766833 100644 (file)
@@ -281,8 +281,8 @@ static void init_reply_lookup_names(LSA_R_LOOKUP_NAMES *r_l,
 
 /* Call winbindd to convert sid to name */
 
-static BOOL winbind_lookup_sid(DOM_SID *sid, fstring dom_name, fstring name, 
-                              uint8 *name_type)
+BOOL winbind_lookup_sid(DOM_SID *sid, fstring dom_name, fstring name, 
+                       uint8 *name_type)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -464,8 +464,11 @@ static BOOL lsa_reply_lookup_names(prs_struct *rdata,
  api_lsa_open_policy2
  ***************************************************************************/
 
-static BOOL api_lsa_open_policy2(prs_struct *data, prs_struct *rdata)
+static BOOL api_lsa_open_policy2(pipes_struct *p)
 {
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
+
        LSA_Q_OPEN_POL2 q_o;
 
        ZERO_STRUCT(q_o);
@@ -488,8 +491,11 @@ static BOOL api_lsa_open_policy2(prs_struct *data, prs_struct *rdata)
 /***************************************************************************
 api_lsa_open_policy
  ***************************************************************************/
-static BOOL api_lsa_open_policy(prs_struct *data, prs_struct *rdata)
+static BOOL api_lsa_open_policy(pipes_struct *p)
 {
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
+
        LSA_Q_OPEN_POL q_o;
 
        ZERO_STRUCT(q_o);
@@ -512,9 +518,11 @@ static BOOL api_lsa_open_policy(prs_struct *data, prs_struct *rdata)
 /***************************************************************************
 api_lsa_enum_trust_dom
  ***************************************************************************/
-static BOOL api_lsa_enum_trust_dom(prs_struct *data, prs_struct *rdata)
+static BOOL api_lsa_enum_trust_dom(pipes_struct *p)
 {
        LSA_Q_ENUM_TRUST_DOM q_e;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        ZERO_STRUCT(q_e);
 
@@ -531,13 +539,15 @@ static BOOL api_lsa_enum_trust_dom(prs_struct *data, prs_struct *rdata)
 /***************************************************************************
 api_lsa_query_info
  ***************************************************************************/
-static BOOL api_lsa_query_info(prs_struct *data, prs_struct *rdata)
+static BOOL api_lsa_query_info(pipes_struct *p)
 {
        LSA_Q_QUERY_INFO q_i;
        DOM_SID domain_sid;
        char *name = NULL;
        DOM_SID *sid = NULL;
        uint32 status_code = 0;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        ZERO_STRUCT(q_i);
 
@@ -588,9 +598,12 @@ static BOOL api_lsa_query_info(prs_struct *data, prs_struct *rdata)
  api_lsa_lookup_sids
  ***************************************************************************/
 
-static BOOL api_lsa_lookup_sids(prs_struct *data, prs_struct *rdata)
+static BOOL api_lsa_lookup_sids(pipes_struct *p)
 {
        LSA_Q_LOOKUP_SIDS q_l;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
+
        ZERO_STRUCT(q_l);
 
        /* grab the info class and policy handle */
@@ -610,9 +623,12 @@ static BOOL api_lsa_lookup_sids(prs_struct *data, prs_struct *rdata)
  api_lsa_lookup_names
  ***************************************************************************/
 
-static BOOL api_lsa_lookup_names(prs_struct *data, prs_struct *rdata)
+static BOOL api_lsa_lookup_names(pipes_struct *p)
 {
        LSA_Q_LOOKUP_NAMES q_l;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
+
        ZERO_STRUCT(q_l);
 
        /* grab the info class and policy handle */
@@ -629,9 +645,11 @@ static BOOL api_lsa_lookup_names(prs_struct *data, prs_struct *rdata)
 /***************************************************************************
  api_lsa_close
  ***************************************************************************/
-static BOOL api_lsa_close(prs_struct *data, prs_struct *rdata)
+static BOOL api_lsa_close(pipes_struct *p)
 {
        LSA_R_CLOSE r_c;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        ZERO_STRUCT(r_c);
 
@@ -647,11 +665,13 @@ static BOOL api_lsa_close(prs_struct *data, prs_struct *rdata)
 /***************************************************************************
  api_lsa_open_secret
  ***************************************************************************/
-static BOOL api_lsa_open_secret(prs_struct *data, prs_struct *rdata)
+static BOOL api_lsa_open_secret(pipes_struct *p)
 {
        /* XXXX this is NOT good */
        size_t i;
        uint32 dummy = 0;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        for(i =0; i < 4; i++) {
                if(!prs_uint32("api_lsa_close", rdata, 1, &dummy)) {
@@ -689,9 +709,9 @@ static struct api_struct api_lsa_cmds[] =
 /***************************************************************************
  api_ntLsarpcTNP
  ***************************************************************************/
-BOOL api_ntlsa_rpc(pipes_struct *p, prs_struct *data)
+BOOL api_ntlsa_rpc(pipes_struct *p)
 {
-       return api_rpcTNP(p, "api_ntlsa_rpc", api_lsa_cmds, data);
+       return api_rpcTNP(p, "api_ntlsa_rpc", api_lsa_cmds);
 }
 
 #undef OLD_NTDOMAIN
index 11dc5a2f8967ce1aa1cfc125cf68674c41b32eeb..46cb521018751834452f557c3ff50745e9ac85b2 100644 (file)
@@ -462,7 +462,7 @@ struct api_cmd
 {
   char * pipe_clnt_name;
   char * pipe_srv_name;
-  BOOL (*fn) (pipes_struct *, prs_struct *);
+  BOOL (*fn) (pipes_struct *);
 };
 
 static struct api_cmd api_fd_commands[] =
@@ -1116,7 +1116,7 @@ BOOL api_pipe_request(pipes_struct *p)
                if (strequal(api_fd_commands[i].pipe_clnt_name, p->name) &&
                    api_fd_commands[i].fn != NULL) {
                        DEBUG(3,("Doing \\PIPE\\%s\n", api_fd_commands[i].pipe_clnt_name));
-                       ret = api_fd_commands[i].fn(p, &p->in_data.data);
+                       ret = api_fd_commands[i].fn(p);
                }
        }
 
@@ -1130,8 +1130,8 @@ BOOL api_pipe_request(pipes_struct *p)
  Calls the underlying RPC function for a named pipe.
  ********************************************************************/
 
-BOOL api_rpcTNP(pipes_struct *p, char *rpc_name, struct api_struct *api_rpc_cmds,
-                               prs_struct *rpc_in)
+BOOL api_rpcTNP(pipes_struct *p, char *rpc_name, 
+               struct api_struct *api_rpc_cmds)
 {
        int fn_num;
        fstring name;
@@ -1141,7 +1141,7 @@ BOOL api_rpcTNP(pipes_struct *p, char *rpc_name, struct api_struct *api_rpc_cmds
        DEBUG(4,("api_rpcTNP: %s op 0x%x - ", rpc_name, p->hdr_req.opnum));
 
        slprintf(name, sizeof(name), "in_%s", rpc_name);
-       prs_dump(name, p->hdr_req.opnum, rpc_in);
+       prs_dump(name, p->hdr_req.opnum, &p->in_data.data);
 
        for (fn_num = 0; api_rpc_cmds[fn_num].name; fn_num++) {
                if (api_rpc_cmds[fn_num].opnum == p->hdr_req.opnum && api_rpc_cmds[fn_num].fn != NULL) {
@@ -1164,7 +1164,7 @@ BOOL api_rpcTNP(pipes_struct *p, char *rpc_name, struct api_struct *api_rpc_cmds
        offset1 = prs_offset(&p->out_data.rdata);
 
        /* do the actual command */
-       if(!api_rpc_cmds[fn_num].fn(rpc_in, &p->out_data.rdata)) {
+       if(!api_rpc_cmds[fn_num].fn(p)) {
                DEBUG(0,("api_rpcTNP: %s: failed.\n", rpc_name));
                prs_mem_free(&p->out_data.rdata);
                return False;
index ca3911121fa90d9b70a8768648cb369575f39785..dd411fc55ead5d385dce4da1d1fcb32bcaedbb6b 100644 (file)
@@ -60,9 +60,11 @@ static void reg_reply_close(REG_Q_CLOSE *q_r,
 /*******************************************************************
  api_reg_close
  ********************************************************************/
-static BOOL api_reg_close(prs_struct *data, prs_struct *rdata )
+static BOOL api_reg_close(pipes_struct *p)
 {
        REG_Q_CLOSE q_r;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the reg unknown 1 */
        reg_io_q_close("", &q_r, data, 0);
@@ -100,9 +102,11 @@ static void reg_reply_open(REG_Q_OPEN_HKLM *q_r,
 /*******************************************************************
  api_reg_open
  ********************************************************************/
-static BOOL api_reg_open(prs_struct *data, prs_struct *rdata )
+static BOOL api_reg_open(pipes_struct *p)
 {
        REG_Q_OPEN_HKLM q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the reg open */
        reg_io_q_open_hklm("", &q_u, data, 0);
@@ -165,9 +169,11 @@ static void reg_reply_open_entry(REG_Q_OPEN_ENTRY *q_u,
 /*******************************************************************
  api_reg_open_entry
  ********************************************************************/
-static BOOL api_reg_open_entry(prs_struct *data, prs_struct *rdata )
+static BOOL api_reg_open_entry(pipes_struct *p)
 {
        REG_Q_OPEN_ENTRY q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the reg open entry */
        reg_io_q_open_entry("", &q_u, data, 0);
@@ -237,9 +243,11 @@ static void reg_reply_info(REG_Q_INFO *q_u,
 /*******************************************************************
  api_reg_info
  ********************************************************************/
-static BOOL api_reg_info(prs_struct *data, prs_struct *rdata )
+static BOOL api_reg_info(pipes_struct *p)
 {
        REG_Q_INFO q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the reg unknown 0x11*/
        reg_io_q_info("", &q_u, data, 0);
@@ -266,8 +274,8 @@ static struct api_struct api_reg_cmds[] =
 /*******************************************************************
  receives a reg pipe and responds.
  ********************************************************************/
-BOOL api_reg_rpc(pipes_struct *p, prs_struct *data)
+BOOL api_reg_rpc(pipes_struct *p)
 {
-       return api_rpcTNP(p, "api_reg_rpc", api_reg_cmds, data);
+       return api_rpcTNP(p, "api_reg_rpc", api_reg_cmds);
 }
 #undef OLD_NTDOMAIN
index 49db7a9e48650363f6d64749eb4e4dc1e6f47c77..3ea0ba4615dfc661f943f0873b70459dbad528a6 100644 (file)
@@ -365,9 +365,11 @@ static BOOL samr_reply_close_hnd(SAMR_Q_CLOSE_HND *q_u,
 /*******************************************************************
  api_samr_close_hnd
  ********************************************************************/
-static BOOL api_samr_close_hnd(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_close_hnd(pipes_struct *p)
 {
        SAMR_Q_CLOSE_HND q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr unknown 1 */
        if(!samr_io_q_close_hnd("", &q_u, data, 0))
@@ -430,9 +432,11 @@ static BOOL samr_reply_open_domain(SAMR_Q_OPEN_DOMAIN *q_u,
 /*******************************************************************
  api_samr_open_domain
  ********************************************************************/
-static BOOL api_samr_open_domain(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_open_domain(pipes_struct *p)
 {
        SAMR_Q_OPEN_DOMAIN q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr open */
        if(!samr_io_q_open_domain("", &q_u, data, 0))
@@ -483,9 +487,11 @@ static BOOL samr_reply_unknown_2c(SAMR_Q_UNKNOWN_2C *q_u,
 /*******************************************************************
  api_samr_unknown_2c
  ********************************************************************/
-static BOOL api_samr_unknown_2c(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_unknown_2c(pipes_struct *p)
 {
        SAMR_Q_UNKNOWN_2C q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr open */
        if(!samr_io_q_unknown_2c("", &q_u, data, 0))
@@ -565,9 +571,11 @@ static BOOL samr_reply_unknown_3(SAMR_Q_UNKNOWN_3 *q_u,
 /*******************************************************************
  api_samr_unknown_3
  ********************************************************************/
-static BOOL api_samr_unknown_3(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_unknown_3(pipes_struct *p)
 {
        SAMR_Q_UNKNOWN_3 q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr open */
        if(!samr_io_q_unknown_3("", &q_u, data, 0))
@@ -623,9 +631,11 @@ static BOOL samr_reply_enum_dom_users(SAMR_Q_ENUM_DOM_USERS *q_u,
 /*******************************************************************
  api_samr_enum_dom_users
  ********************************************************************/
-static BOOL api_samr_enum_dom_users(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_enum_dom_users(pipes_struct *p)
 {
        SAMR_Q_ENUM_DOM_USERS q_e;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr open */
        if(!samr_io_q_enum_dom_users("", &q_e, data, 0))
@@ -684,9 +694,11 @@ static BOOL samr_reply_enum_dom_groups(SAMR_Q_ENUM_DOM_GROUPS *q_u,
 /*******************************************************************
  api_samr_enum_dom_groups
  ********************************************************************/
-static BOOL api_samr_enum_dom_groups(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_enum_dom_groups(pipes_struct *p)
 {
        SAMR_Q_ENUM_DOM_GROUPS q_e;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr open */
        if(!samr_io_q_enum_dom_groups("", &q_e, data, 0))
@@ -899,9 +911,11 @@ static BOOL samr_reply_query_dispinfo(SAMR_Q_QUERY_DISPINFO *q_u, prs_struct *rd
 /*******************************************************************
  api_samr_query_dispinfo
  ********************************************************************/
-static BOOL api_samr_query_dispinfo(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_query_dispinfo(pipes_struct *p)
 {
        SAMR_Q_QUERY_DISPINFO q_e;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr open */
        if(!samr_io_q_query_dispinfo("", &q_e, data, 0))
@@ -960,9 +974,11 @@ static BOOL samr_reply_query_aliasinfo(SAMR_Q_QUERY_ALIASINFO *q_u,
 /*******************************************************************
  api_samr_query_aliasinfo
  ********************************************************************/
-static BOOL api_samr_query_aliasinfo(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_query_aliasinfo(pipes_struct *p)
 {
        SAMR_Q_QUERY_ALIASINFO q_e;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr open */
        if(!samr_io_q_query_aliasinfo("", &q_e, data, 0))
@@ -1043,9 +1059,11 @@ static BOOL samr_reply_lookup_ids(SAMR_Q_LOOKUP_IDS *q_u,
 /*******************************************************************
  api_samr_lookup_ids
  ********************************************************************/
-static BOOL api_samr_lookup_ids(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_lookup_ids(pipes_struct *p)
 {
        SAMR_Q_LOOKUP_IDS q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr 0x10 */
        if(!samr_io_q_lookup_ids("", &q_u, data, 0))
@@ -1136,9 +1154,11 @@ static BOOL samr_reply_lookup_names(SAMR_Q_LOOKUP_NAMES *q_u,
  api_samr_lookup_names
  ********************************************************************/
 
-static BOOL api_samr_lookup_names(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_lookup_names(pipes_struct *p)
 {
        SAMR_Q_LOOKUP_NAMES q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        memset(&q_u, '\0', sizeof(q_u));
 
@@ -1195,9 +1215,11 @@ static BOOL samr_reply_chgpasswd_user(SAMR_Q_CHGPASSWD_USER *q_u,
  api_samr_chgpasswd_user
  ********************************************************************/
 
-static BOOL api_samr_chgpasswd_user(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_chgpasswd_user(pipes_struct *p)
 {
        SAMR_Q_CHGPASSWD_USER q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* unknown 38 command */
        if (!samr_io_q_chgpasswd_user("", &q_u, data, 0)) {
@@ -1237,9 +1259,11 @@ static BOOL samr_reply_unknown_38(SAMR_Q_UNKNOWN_38 *q_u, prs_struct *rdata)
 /*******************************************************************
  api_samr_unknown_38
  ********************************************************************/
-static BOOL api_samr_unknown_38(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_unknown_38(pipes_struct *p)
 {
        SAMR_Q_UNKNOWN_38 q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* unknown 38 command */
        if(!samr_io_q_unknown_38("", &q_u, data, 0))
@@ -1304,9 +1328,11 @@ static BOOL samr_reply_unknown_12(SAMR_Q_UNKNOWN_12 *q_u,
 /*******************************************************************
  api_samr_unknown_12
  ********************************************************************/
-static BOOL api_samr_unknown_12(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_unknown_12(pipes_struct *p)
 {
        SAMR_Q_UNKNOWN_12 q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr lookup names */
        if(!samr_io_q_unknown_12("", &q_u, data, 0))
@@ -1382,9 +1408,11 @@ static BOOL samr_reply_open_user(SAMR_Q_OPEN_USER *q_u, prs_struct *rdata, int s
 /*******************************************************************
  api_samr_open_user
  ********************************************************************/
-static BOOL api_samr_open_user(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_open_user(pipes_struct *p)
 {
        SAMR_Q_OPEN_USER q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr unknown 22 */
        if(!samr_io_q_open_user("", &q_u, data, 0))
@@ -1591,9 +1619,11 @@ static BOOL samr_reply_query_userinfo(SAMR_Q_QUERY_USERINFO *q_u,
 /*******************************************************************
  api_samr_query_userinfo
  ********************************************************************/
-static BOOL api_samr_query_userinfo(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_query_userinfo(pipes_struct *p)
 {
        SAMR_Q_QUERY_USERINFO q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr unknown 24 */
        if(!samr_io_q_query_userinfo("", &q_u, data, 0))
@@ -1676,9 +1706,12 @@ static BOOL samr_reply_query_usergroups(SAMR_Q_QUERY_USERGROUPS *q_u,
 /*******************************************************************
  api_samr_query_usergroups
  ********************************************************************/
-static BOOL api_samr_query_usergroups(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_query_usergroups(pipes_struct *p)
 {
        SAMR_Q_QUERY_USERGROUPS q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
+
        /* grab the samr unknown 32 */
        if(!samr_io_q_query_usergroups("", &q_u, data, 0))
                return False;
@@ -1748,9 +1781,11 @@ static BOOL samr_reply_query_dom_info(SAMR_Q_QUERY_DOMAIN_INFO *q_u, prs_struct
 /*******************************************************************
  api_samr_query_dom_info
  ********************************************************************/
-static BOOL api_samr_query_dom_info(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_query_dom_info(pipes_struct *p)
 {
        SAMR_Q_QUERY_DOMAIN_INFO q_e;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr unknown 8 command */
        if(!samr_io_q_query_dom_info("", &q_e, data, 0))
@@ -1800,11 +1835,13 @@ static BOOL samr_reply_unknown_32(SAMR_Q_UNKNOWN_32 *q_u,
 /*******************************************************************
  api_samr_unknown_32
  ********************************************************************/
-static BOOL api_samr_unknown_32(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_unknown_32(pipes_struct *p)
 {
        uint32 status = 0;
        struct sam_passwd *sam_pass;
        fstring mach_acct;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        SAMR_Q_UNKNOWN_32 q_u;
 
@@ -1887,9 +1924,11 @@ static BOOL samr_reply_connect_anon(SAMR_Q_CONNECT_ANON *q_u, prs_struct *rdata)
 /*******************************************************************
  api_samr_connect_anon
  ********************************************************************/
-static BOOL api_samr_connect_anon(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_connect_anon(pipes_struct *p)
 {
        SAMR_Q_CONNECT_ANON q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr open policy */
        if(!samr_io_q_connect_anon("", &q_u, data, 0))
@@ -1945,9 +1984,11 @@ static BOOL samr_reply_connect(SAMR_Q_CONNECT *q_u, prs_struct *rdata)
 /*******************************************************************
  api_samr_connect
  ********************************************************************/
-static BOOL api_samr_connect(prs_struct *data, prs_struct *rdata)
+static BOOL api_samr_connect(pipes_struct *p)
 {
        SAMR_Q_CONNECT q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr open policy */
        if(!samr_io_q_connect("", &q_u, data, 0))
@@ -1989,17 +2030,19 @@ static BOOL samr_reply_lookup_domain(SAMR_Q_LOOKUP_DOMAIN* q_u, prs_struct* rdat
 /**********************************************************************
  api_samr_lookup_domain
  **********************************************************************/
-static BOOL api_samr_lookup_domain(prs_struct* data, prs_struct* rdata)
+static BOOL api_samr_lookup_domain(pipes_struct *p)
 {
-  SAMR_Q_LOOKUP_DOMAIN q_u;
+       SAMR_Q_LOOKUP_DOMAIN q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
   
-  if(!samr_io_q_lookup_domain("", &q_u, data, 0))
+       if(!samr_io_q_lookup_domain("", &q_u, data, 0))
                return False;
-
-  if(!samr_reply_lookup_domain(&q_u, rdata))
+       
+       if(!samr_reply_lookup_domain(&q_u, rdata))
                return False;
-  
-  return True;
+       
+       return True;
 }
 
 /**********************************************************************
@@ -2030,17 +2073,19 @@ static BOOL samr_reply_enum_domains(SAMR_Q_ENUM_DOMAINS* q_u, prs_struct* rdata)
 /**********************************************************************
  api_samr_enum_domains
  **********************************************************************/
-static BOOL api_samr_enum_domains(prs_struct* data, prs_struct* rdata)
+static BOOL api_samr_enum_domains(pipes_struct *p)
 {
-  SAMR_Q_ENUM_DOMAINS q_u;
+       SAMR_Q_ENUM_DOMAINS q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
-  if(!samr_io_q_enum_domains("", &q_u, data, 0))
+       if(!samr_io_q_enum_domains("", &q_u, data, 0))
                return False;
-  
-  if(!samr_reply_enum_domains(&q_u, rdata))
+       
+       if(!samr_reply_enum_domains(&q_u, rdata))
                return False;
-
-  return True;
+       
+       return True;
 }
 
 /*******************************************************************
@@ -2086,10 +2131,11 @@ static BOOL samr_reply_open_alias(SAMR_Q_OPEN_ALIAS *q_u, prs_struct *rdata)
 /*******************************************************************
  api_samr_open_alias
  ********************************************************************/
-static BOOL api_samr_open_alias(prs_struct *data, prs_struct *rdata)
-                                
+static BOOL api_samr_open_alias(pipes_struct *p)
 {
        SAMR_Q_OPEN_ALIAS q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the samr open policy */
        if(!samr_io_q_open_alias("", &q_u, data, 0))
@@ -2137,8 +2183,8 @@ static struct api_struct api_samr_cmds [] =
 /*******************************************************************
  receives a samr pipe and responds.
  ********************************************************************/
-BOOL api_samr_rpc(pipes_struct *p, prs_struct *data)
+BOOL api_samr_rpc(pipes_struct *p)
 {
-    return api_rpcTNP(p, "api_samr_rpc", api_samr_cmds, data);
+       return api_rpcTNP(p, "api_samr_rpc", api_samr_cmds);
 }
 #undef OLD_NTDOMAIN
index 2e8d33d4d2754ea050b3ed893a9cad5d6363d847..34f369bc8b48a099c615582231f1dfbaaf7c2d55 100644 (file)
@@ -926,10 +926,11 @@ static void srv_reply_net_srv_get_info(SRV_Q_NET_SRV_GET_INFO *q_n,
 
 /*******************************************************************
 ********************************************************************/
-static BOOL api_srv_net_srv_get_info(prs_struct *data,
-                                    prs_struct *rdata )
+static BOOL api_srv_net_srv_get_info(pipes_struct *p)
 {
        SRV_Q_NET_SRV_GET_INFO q_n;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the net server get info */
        srv_io_q_net_srv_get_info("", &q_n, data, 0);
@@ -943,11 +944,12 @@ static BOOL api_srv_net_srv_get_info(prs_struct *data,
 
 /*******************************************************************
 ********************************************************************/
-static BOOL api_srv_net_file_enum(prs_struct *data,
-                                    prs_struct *rdata )
+static BOOL api_srv_net_file_enum(pipes_struct *p)
 {
        SRV_Q_NET_FILE_ENUM q_n;
        SRV_FILE_INFO_CTR ctr;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        q_n.ctr = &ctr;
 
@@ -963,11 +965,12 @@ static BOOL api_srv_net_file_enum(prs_struct *data,
 
 /*******************************************************************
 ********************************************************************/
-static BOOL api_srv_net_conn_enum(prs_struct *data,
-                                    prs_struct *rdata )
+static BOOL api_srv_net_conn_enum(pipes_struct *p)
 {
        SRV_Q_NET_CONN_ENUM q_n;
        SRV_CONN_INFO_CTR ctr;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        q_n.ctr = &ctr;
 
@@ -983,11 +986,12 @@ static BOOL api_srv_net_conn_enum(prs_struct *data,
 
 /*******************************************************************
 ********************************************************************/
-static BOOL api_srv_net_sess_enum(prs_struct *data,
-                                    prs_struct *rdata )
+static BOOL api_srv_net_sess_enum(pipes_struct *p)
 {
        SRV_Q_NET_SESS_ENUM q_n;
        SRV_SESS_INFO_CTR ctr;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        q_n.ctr = &ctr;
 
@@ -1005,11 +1009,12 @@ static BOOL api_srv_net_sess_enum(prs_struct *data,
  RPC to enumerate shares.
 ********************************************************************/
 
-static BOOL api_srv_net_share_enum(prs_struct *data,
-                                    prs_struct *rdata )
+static BOOL api_srv_net_share_enum(pipes_struct *p)
 {
        SRV_Q_NET_SHARE_ENUM q_n;
        BOOL ret;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* Unmarshall the net server get enum. */
        if(!srv_io_q_net_share_enum("", &q_n, data, 0)) {
@@ -1029,11 +1034,12 @@ static BOOL api_srv_net_share_enum(prs_struct *data,
  RPC to return share information.
 ********************************************************************/
 
-static BOOL api_srv_net_share_get_info(prs_struct *data,
-                                        prs_struct *rdata )
+static BOOL api_srv_net_share_get_info(pipes_struct *p)
 {
        SRV_Q_NET_SHARE_GET_INFO q_n;
        BOOL ret;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* Unmarshall the net server get info. */
        if(!srv_io_q_net_share_get_info("", &q_n, data, 0)) {
@@ -1092,10 +1098,11 @@ static BOOL srv_reply_net_remote_tod(SRV_Q_NET_REMOTE_TOD *q_n,
 }
 /*******************************************************************
 ********************************************************************/
-static BOOL api_srv_net_remote_tod(prs_struct *data,
-                                    prs_struct *rdata )
+static BOOL api_srv_net_remote_tod(pipes_struct *p)
 {
        SRV_Q_NET_REMOTE_TOD q_n;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the net server get enum */
        srv_io_q_net_remote_tod("", &q_n, data, 0);
@@ -1125,9 +1132,9 @@ struct api_struct api_srv_cmds[] =
 /*******************************************************************
 receives a srvsvc pipe and responds.
 ********************************************************************/
-BOOL api_srvsvc_rpc(pipes_struct *p, prs_struct *data)
+BOOL api_srvsvc_rpc(pipes_struct *p)
 {
-       return api_rpcTNP(p, "api_srvsvc_rpc", api_srv_cmds, data);
+       return api_rpcTNP(p, "api_srvsvc_rpc", api_srv_cmds);
 }
 
 #undef OLD_NTDOMAIN
index a09250a80ba7334054a1fe4111b72a846445bb4e..21e4f933f27af1b0a162ea4248a933196f0d0a58 100644 (file)
@@ -80,9 +80,11 @@ static BOOL wks_reply_query_info(WKS_Q_QUERY_INFO *q_u,
 /*******************************************************************
  api_wks_query_info
  ********************************************************************/
-static BOOL api_wks_query_info(prs_struct *data, prs_struct *rdata)
+static BOOL api_wks_query_info(pipes_struct *p)
 {
        WKS_Q_QUERY_INFO q_u;
+       prs_struct *data = &p->in_data.data;
+       prs_struct *rdata = &p->out_data.rdata;
 
        /* grab the net share enum */
        if(!wks_io_q_query_info("", &q_u, data, 0))
@@ -108,9 +110,9 @@ struct api_struct api_wks_cmds[] =
 /*******************************************************************
  receives a wkssvc pipe and responds.
  ********************************************************************/
-BOOL api_wkssvc_rpc(pipes_struct *p, prs_struct *data)
+BOOL api_wkssvc_rpc(pipes_struct *p)
 {
-       return api_rpcTNP(p, "api_wkssvc_rpc", api_wks_cmds, data);
+       return api_rpcTNP(p, "api_wkssvc_rpc", api_wks_cmds);
 }
 
 #undef OLD_NTDOMAIN