diff options
Diffstat (limited to 'source3/rpc_server/srv_srvsvc_nt.c')
-rw-r--r-- | source3/rpc_server/srv_srvsvc_nt.c | 460 |
1 files changed, 226 insertions, 234 deletions
diff --git a/source3/rpc_server/srv_srvsvc_nt.c b/source3/rpc_server/srv_srvsvc_nt.c index a9adaf3200..06c84b60e9 100644 --- a/source3/rpc_server/srv_srvsvc_nt.c +++ b/source3/rpc_server/srv_srvsvc_nt.c @@ -1063,11 +1063,11 @@ static WERROR net_file_enum_3(pipes_struct *p, union srvsvc_NetFileCtr *ctr, uin /******************************************************************* *******************************************************************/ -WERROR _srvsvc_NetFileEnum(pipes_struct *p, const char *server_unc, const char *path, const char *user, uint32_t *level, union srvsvc_NetFileCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle) +WERROR _srvsvc_NetFileEnum(pipes_struct *p, struct srvsvc_NetFileEnum *r) { - switch ( *level ) { + switch ( *r->in.level ) { case 3: - return net_file_enum_3(p, ctr, resume_handle, totalentries ); + return net_file_enum_3(p, r->in.ctr, r->in.resume_handle, r->out.totalentries ); default: return WERR_UNKNOWN_LEVEL; } @@ -1079,11 +1079,11 @@ WERROR _srvsvc_NetFileEnum(pipes_struct *p, const char *server_unc, const char * net server get info ********************************************************************/ -WERROR _srvsvc_NetSrvGetInfo(pipes_struct *p, const char *server_unc, uint32_t level, union srvsvc_NetSrvInfo *info) +WERROR _srvsvc_NetSrvGetInfo(pipes_struct *p, struct srvsvc_NetSrvGetInfo *r) { WERROR status = WERR_OK; - ZERO_STRUCTP(info); + ZERO_STRUCTP(r->out.info); DEBUG(5,("srv_net_srv_get_info: %d\n", __LINE__)); @@ -1092,42 +1092,42 @@ WERROR _srvsvc_NetSrvGetInfo(pipes_struct *p, const char *server_unc, uint32_t l return WERR_ACCESS_DENIED; } - switch (level) { + switch (r->in.level) { /* Technically level 102 should only be available to Administrators but there isn't anything super-secret here, as most of it is made up. */ case 102: - info->info102 = talloc_zero(p->mem_ctx, struct srvsvc_NetSrvInfo102); - - info->info102->platform_id = 500; - info->info102->version_major = lp_major_announce_version(); - info->info102->version_minor = lp_minor_announce_version(); - info->info102->server_name = global_myname(); - info->info102->server_type = lp_default_server_announce(); - info->info102->userpath = "C:\\"; - info->info102->licenses = 10000; - info->info102->anndelta = 3000; - info->info102->disc = 0xf; - info->info102->users = 0xffffffff; - info->info102->hidden = 0; - info->info102->announce = 240; - info->info102->comment = lp_serverstring(); + r->out.info->info102 = talloc_zero(p->mem_ctx, struct srvsvc_NetSrvInfo102); + + r->out.info->info102->platform_id = 500; + r->out.info->info102->version_major = lp_major_announce_version(); + r->out.info->info102->version_minor = lp_minor_announce_version(); + r->out.info->info102->server_name = global_myname(); + r->out.info->info102->server_type = lp_default_server_announce(); + r->out.info->info102->userpath = "C:\\"; + r->out.info->info102->licenses = 10000; + r->out.info->info102->anndelta = 3000; + r->out.info->info102->disc = 0xf; + r->out.info->info102->users = 0xffffffff; + r->out.info->info102->hidden = 0; + r->out.info->info102->announce = 240; + r->out.info->info102->comment = lp_serverstring(); break; case 101: - info->info101 = talloc_zero(p->mem_ctx, struct srvsvc_NetSrvInfo101); - info->info101->platform_id = 500; - info->info101->server_name = global_myname(); - info->info101->version_major = lp_major_announce_version(); - info->info101->version_minor = lp_minor_announce_version(); - info->info101->server_type = lp_default_server_announce(); - info->info101->comment = lp_serverstring(); + r->out.info->info101 = talloc_zero(p->mem_ctx, struct srvsvc_NetSrvInfo101); + r->out.info->info101->platform_id = 500; + r->out.info->info101->server_name = global_myname(); + r->out.info->info101->version_major = lp_major_announce_version(); + r->out.info->info101->version_minor = lp_minor_announce_version(); + r->out.info->info101->server_type = lp_default_server_announce(); + r->out.info->info101->comment = lp_serverstring(); break; case 100: - info->info100 = talloc_zero(p->mem_ctx, struct srvsvc_NetSrvInfo100); - info->info100->platform_id = 500; - info->info100->server_name = global_myname(); + r->out.info->info100 = talloc_zero(p->mem_ctx, struct srvsvc_NetSrvInfo100); + r->out.info->info100->platform_id = 500; + r->out.info->info100->server_name = global_myname(); break; default: return WERR_UNKNOWN_LEVEL; @@ -1143,11 +1143,11 @@ WERROR _srvsvc_NetSrvGetInfo(pipes_struct *p, const char *server_unc, uint32_t l net server set info ********************************************************************/ -WERROR _srvsvc_NetSrvSetInfo(pipes_struct *p, const char *server_unc, uint32_t level, union srvsvc_NetSrvInfo info, uint32_t *parm_error) +WERROR _srvsvc_NetSrvSetInfo(pipes_struct *p, struct srvsvc_NetSrvSetInfo *r) { /* Set up the net server set info structure. */ - if (parm_error) { - *parm_error = 0; + if (r->out.parm_error) { + *r->out.parm_error = 0; } return WERR_OK; } @@ -1156,44 +1156,44 @@ WERROR _srvsvc_NetSrvSetInfo(pipes_struct *p, const char *server_unc, uint32_t l net conn enum ********************************************************************/ -WERROR _srvsvc_NetConnEnum(pipes_struct *p, const char *server_unc, const char *path, uint32_t *level, union srvsvc_NetConnCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle) +WERROR _srvsvc_NetConnEnum(pipes_struct *p, struct srvsvc_NetConnEnum *r) { DEBUG(5,("srv_net_conn_enum: %d\n", __LINE__)); - ZERO_STRUCTP(ctr); + ZERO_STRUCTP(r->out.ctr); /* set up the */ - return init_srv_conn_info_ctr(p, ctr, *level, resume_handle, totalentries); + return init_srv_conn_info_ctr(p, r->out.ctr, *r->in.level, r->in.resume_handle, r->out.totalentries); } /******************************************************************* net sess enum ********************************************************************/ -WERROR _srvsvc_NetSessEnum(pipes_struct *p, const char *server_unc, const char *client, const char *user, uint32_t *level, union srvsvc_NetSessCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle) +WERROR _srvsvc_NetSessEnum(pipes_struct *p, struct srvsvc_NetSessEnum *r) { DEBUG(5,("_srv_net_sess_enum: %d\n", __LINE__)); - ZERO_STRUCTP(ctr); + ZERO_STRUCTP(r->out.ctr); /* set up the */ - return init_srv_sess_info_ctr(p, ctr, - *level, - resume_handle, - totalentries); + return init_srv_sess_info_ctr(p, r->out.ctr, + *r->in.level, + r->in.resume_handle, + r->out.totalentries); } /******************************************************************* net sess del ********************************************************************/ -WERROR _srvsvc_NetSessDel(pipes_struct *p, const char *server_unc, const char *client, const char *user) +WERROR _srvsvc_NetSessDel(pipes_struct *p, struct srvsvc_NetSessDel *r) { struct sessionid *session_list; int num_sessions, snum; WERROR status; - char *machine = talloc_strdup(p->mem_ctx, server_unc); + char *machine = talloc_strdup(p->mem_ctx, r->in.server_unc); /* strip leading backslashes if any */ while (machine[0] == '\\') { @@ -1216,8 +1216,8 @@ WERROR _srvsvc_NetSessDel(pipes_struct *p, const char *server_unc, const char *c for (snum = 0; snum < num_sessions; snum++) { - if ((strequal(session_list[snum].username, user) || user[0] == '\0' ) && - strequal(session_list[snum].remote_machine, machine)) { + if ((strequal(session_list[snum].username, r->in.user) || r->in.user[0] == '\0' ) && + strequal(session_list[snum].remote_machine, machine)) { if (message_send_pid(pid_to_procid(session_list[snum].pid), MSG_SHUTDOWN, NULL, 0, False)) status = WERR_OK; @@ -1237,7 +1237,7 @@ done: Net share enum all. ********************************************************************/ -WERROR _srvsvc_NetShareEnumAll(pipes_struct *p, const char *server_unc, uint32_t *level, union srvsvc_NetShareCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle) +WERROR _srvsvc_NetShareEnumAll(pipes_struct *p, struct srvsvc_NetShareEnumAll *r) { DEBUG(5,("_srv_net_share_enum: %d\n", __LINE__)); @@ -1247,15 +1247,15 @@ WERROR _srvsvc_NetShareEnumAll(pipes_struct *p, const char *server_unc, uint32_t } /* Create the list of shares for the response. */ - return init_srv_share_info_ctr(p, ctr, *level, - resume_handle, totalentries, True); + return init_srv_share_info_ctr(p, r->out.ctr, *r->in.level, + r->in.resume_handle, r->out.totalentries, True); } /******************************************************************* Net share enum. ********************************************************************/ -WERROR _srvsvc_NetShareEnum(pipes_struct *p, const char *server_unc, uint32_t *level, union srvsvc_NetShareCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle) +WERROR _srvsvc_NetShareEnum(pipes_struct *p, struct srvsvc_NetShareEnum *r) { DEBUG(5,("_srv_net_share_enum: %d\n", __LINE__)); @@ -1265,79 +1265,72 @@ WERROR _srvsvc_NetShareEnum(pipes_struct *p, const char *server_unc, uint32_t *l } /* Create the list of shares for the response. */ - return init_srv_share_info_ctr(p, ctr, *level, - resume_handle, totalentries, False); + return init_srv_share_info_ctr(p, r->out.ctr, *r->in.level, + r->in.resume_handle, r->out.totalentries, False); } /******************************************************************* Net share get info. ********************************************************************/ -WERROR _srvsvc_NetShareGetInfo(pipes_struct *p, const char *server_unc, const char *share_name, uint32_t level, union srvsvc_NetShareInfo *info) +WERROR _srvsvc_NetShareGetInfo(pipes_struct *p, struct srvsvc_NetShareGetInfo *r) { const struct share_params *params; - params = get_share_params(p->mem_ctx, share_name); + params = get_share_params(p->mem_ctx, r->in.share_name); if (params != NULL) { - switch (level) { + switch (r->in.level) { case 0: - info->info0 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo0); - init_srv_share_info_0(p, info->info0, - params); + r->out.info->info0 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo0); + init_srv_share_info_0(p, r->out.info->info0, params); break; case 1: - info->info1 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1); - init_srv_share_info_1(p, info->info1, - params); + r->out.info->info1 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1); + init_srv_share_info_1(p, r->out.info->info1, params); break; case 2: - info->info2 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo2); - init_srv_share_info_2(p, info->info2, - params); + r->out.info->info2 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo2); + init_srv_share_info_2(p, r->out.info->info2, params); break; case 501: - info->info501 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo501); - init_srv_share_info_501(p, info->info501, - params); + r->out.info->info501 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo501); + init_srv_share_info_501(p, r->out.info->info501, params); break; case 502: - info->info502 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo502); - init_srv_share_info_502(p, info->info502, - params); + r->out.info->info502 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo502); + init_srv_share_info_502(p, r->out.info->info502, params); break; /* here for completeness */ case 1004: - info->info1004 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1004); - init_srv_share_info_1004(p, info->info1004, - params); + r->out.info->info1004 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1004); + init_srv_share_info_1004(p, r->out.info->info1004, params); break; case 1005: - info->info1005 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1005); - init_srv_share_info_1005(p, info->info1005, - params); + r->out.info->info1005 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1005); + init_srv_share_info_1005(p, r->out.info->info1005, params); break; /* here for completeness 1006 - 1501 */ case 1006: - info->info1006 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1006); - init_srv_share_info_1006(p, info->info1006, + r->out.info->info1006 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1006); + init_srv_share_info_1006(p, r->out.info->info1006, params); break; case 1007: - info->info1007 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1007); - init_srv_share_info_1007(p, info->info1007, + r->out.info->info1007 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1007); + init_srv_share_info_1007(p, r->out.info->info1007, params); break; case 1501: - info->info1501 = talloc(p->mem_ctx, struct sec_desc_buf); - init_srv_share_info_1501(p, info->info1501, + r->out.info->info1501 = talloc(p->mem_ctx, struct sec_desc_buf); + init_srv_share_info_1501(p, r->out.info->info1501, params); break; default: DEBUG(5,("init_srv_net_share_get_info: unsupported " - "switch value %d\n", level)); + "switch value %d\n", r->in.level)); return WERR_UNKNOWN_LEVEL; break; } @@ -1630,10 +1623,7 @@ static WERROR change_share(const char *share_name, const char *path, Net share set info. Modify share details. ********************************************************************/ -WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc, - const char *share_name, uint32_t level, - union srvsvc_NetShareInfo info, - uint32_t *parm_error) +WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, struct srvsvc_NetShareSetInfo *r) { pstring comment; pstring pathname; @@ -1648,18 +1638,18 @@ WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc, DEBUG(5,("_srv_net_share_set_info: %d\n", __LINE__)); - if (parm_error) { - *parm_error = 0; + if (r->out.parm_error) { + *r->out.parm_error = 0; } - if ( strequal(share_name,"IPC$") - || ( lp_enable_asu_support() && strequal(share_name,"ADMIN$") ) - || strequal(share_name,"global") ) + if ( strequal(r->in.share_name,"IPC$") + || ( lp_enable_asu_support() && strequal(r->in.share_name,"ADMIN$") ) + || strequal(r->in.share_name,"global") ) { return WERR_ACCESS_DENIED; } - fstrcpy(tmp_share_name, share_name); + fstrcpy(tmp_share_name, r->in.share_name); snum = find_service(tmp_share_name); /* Does this share exist ? */ @@ -1678,31 +1668,31 @@ WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc, if ( p->pipe_user.ut.uid != sec_initial_uid() && !is_disk_op ) return WERR_ACCESS_DENIED; - switch (level) { + switch (r->in.level) { case 1: pstrcpy(pathname, lp_pathname(snum)); - pstrcpy(comment, info.info1->comment); - type = info.info1->type; + pstrcpy(comment, r->in.info.info1->comment); + type = r->in.info.info1->type; psd = NULL; break; case 2: - pstrcpy(comment, info.info2->comment); - pstrcpy(pathname, info.info2->path); - type = info.info2->type; - max_connections = (info.info2->max_users == 0xffffffff) ? - 0 : info.info2->max_users; + pstrcpy(comment, r->in.info.info2->comment); + pstrcpy(pathname, r->in.info.info2->path); + type = r->in.info.info2->type; + max_connections = (r->in.info.info2->max_users == 0xffffffff) ? + 0 : r->in.info.info2->max_users; psd = NULL; break; case 502: - pstrcpy(comment, info.info502->comment); - pstrcpy(pathname, info.info502->path); - type = info.info502->type; - psd = info.info502->sd; + pstrcpy(comment, r->in.info.info502->comment); + pstrcpy(pathname, r->in.info.info502->path); + type = r->in.info.info502->type; + psd = r->in.info.info502->sd; map_generic_share_sd_bits(psd); break; case 1004: pstrcpy(pathname, lp_pathname(snum)); - pstrcpy(comment, info.info1004->comment); + pstrcpy(comment, r->in.info.info1004->comment); type = STYPE_DISKTREE; break; case 1005: @@ -1710,7 +1700,7 @@ WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc, user, so we must compare it to see if it's what is set in smb.conf, so that we can contine other ops like setting ACLs on a share */ - if (((info.info1005->dfs_flags & + if (((r->in.info.info1005->dfs_flags & SHARE_1005_CSC_POLICY_MASK) >> SHARE_1005_CSC_POLICY_SHIFT) == lp_csc_policy(snum)) return WERR_OK; @@ -1726,13 +1716,13 @@ WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc, case 1501: pstrcpy(pathname, lp_pathname(snum)); pstrcpy(comment, lp_comment(snum)); - psd = info.info1501->sd; + psd = r->in.info.info1501->sd; map_generic_share_sd_bits(psd); type = STYPE_DISKTREE; break; default: DEBUG(5,("_srv_net_share_set_info: unsupported switch value " - "%d\n", level)); + "%d\n", r->in.level)); return WERR_UNKNOWN_LEVEL; } @@ -1778,10 +1768,10 @@ WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc, &sd_size); if (old_sd && !sec_desc_equal(old_sd, psd)) { - if (!set_share_security(share_name, psd)) { + if (!set_share_security(r->in.share_name, psd)) { DEBUG(0,("_srv_net_share_set_info: Failed to " "change security info in share %s.\n", - share_name )); + r->in.share_name )); } } } @@ -1797,9 +1787,7 @@ WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc, "comment" "max connections = " ********************************************************************/ -WERROR _srvsvc_NetShareAdd(pipes_struct *p, const char *server_unc, - uint32_t level, union srvsvc_NetShareInfo info, - uint32_t *parm_error) +WERROR _srvsvc_NetShareAdd(pipes_struct *p, struct srvsvc_NetShareAdd *r) { pstring share_name; pstring comment; @@ -1814,8 +1802,8 @@ WERROR _srvsvc_NetShareAdd(pipes_struct *p, const char *server_unc, DEBUG(5,("_srv_net_share_add: %d\n", __LINE__)); - if (parm_error) { - *parm_error = 0; + if (r->out.parm_error) { + *r->out.parm_error = 0; } is_disk_op = user_has_privileges( p->pipe_user.nt_user_token, @@ -1824,7 +1812,7 @@ WERROR _srvsvc_NetShareAdd(pipes_struct *p, const char *server_unc, if (p->pipe_user.ut.uid != sec_initial_uid() && !is_disk_op ) return WERR_ACCESS_DENIED; - switch (level) { + switch (r->in.level) { case 0: /* No path. Not enough info in a level 0 to do anything. */ return WERR_ACCESS_DENIED; @@ -1832,22 +1820,22 @@ WERROR _srvsvc_NetShareAdd(pipes_struct *p, const char *server_unc, /* Not enough info in a level 1 to do anything. */ return WERR_ACCESS_DENIED; case 2: - pstrcpy(share_name, info.info2->name); - pstrcpy(comment, info.info2->comment); - pstrcpy(pathname, info.info2->path); - max_connections = (info.info2->max_users == 0xffffffff) ? - 0 : info.info2->max_users; - type = info.info2->type; + pstrcpy(share_name, r->in.info.info2->name); + pstrcpy(comment, r->in.info.info2->comment); + pstrcpy(pathname, r->in.info.info2->path); + max_connections = (r->in.info.info2->max_users == 0xffffffff) ? + 0 : r->in.info.info2->max_users; + type = r->in.info.info2->type; break; case 501: /* No path. Not enough info in a level 501 to do anything. */ return WERR_ACCESS_DENIED; case 502: - pstrcpy(share_name, info.info502->name); - pstrcpy(comment, info.info502->comment); - pstrcpy(pathname, info.info502->path); - type = info.info502->type; - psd = info.info502->sd; + pstrcpy(share_name, r->in.info.info502->name); + pstrcpy(comment, r->in.info.info502->comment); + pstrcpy(pathname, r->in.info.info502->path); + type = r->in.info.info502->type; + psd = r->in.info.info502->sd; map_generic_share_sd_bits(psd); break; @@ -1864,7 +1852,7 @@ WERROR _srvsvc_NetShareAdd(pipes_struct *p, const char *server_unc, return WERR_ACCESS_DENIED; default: DEBUG(5,("_srv_net_share_add: unsupported switch value %d\n", - level)); + r->in.level)); return WERR_UNKNOWN_LEVEL; } @@ -1933,8 +1921,7 @@ WERROR _srvsvc_NetShareAdd(pipes_struct *p, const char *server_unc, a parameter. ********************************************************************/ -WERROR _srvsvc_NetShareDel(pipes_struct *p, const char *server_unc, - const char *share_name, uint32_t reserved) +WERROR _srvsvc_NetShareDel(pipes_struct *p, struct srvsvc_NetShareDel *r) { struct share_params *params; SE_PRIV se_diskop = SE_DISK_OPERATOR; @@ -1943,14 +1930,14 @@ WERROR _srvsvc_NetShareDel(pipes_struct *p, const char *server_unc, DEBUG(5,("_srv_net_share_del: %d\n", __LINE__)); - if ( strequal(share_name,"IPC$") - || ( lp_enable_asu_support() && strequal(share_name,"ADMIN$") ) - || strequal(share_name,"global") ) + if ( strequal(r->in.share_name, "IPC$") + || ( lp_enable_asu_support() && strequal(r->in.share_name,"ADMIN$") ) + || strequal(r->in.share_name, "global") ) { return WERR_ACCESS_DENIED; } - if (!(params = get_share_params(p->mem_ctx, share_name))) { + if (!(params = get_share_params(p->mem_ctx, r->in.share_name))) { return WERR_NO_SUCH_SHARE; } @@ -1979,19 +1966,24 @@ WERROR _srvsvc_NetShareDel(pipes_struct *p, const char *server_unc, return WERR_OK; } -WERROR _srvsvc_NetShareDelSticky(pipes_struct *p, const char *server_unc, - const char *share_name, uint32_t reserved) +WERROR _srvsvc_NetShareDelSticky(pipes_struct *p, struct srvsvc_NetShareDelSticky *r) { + struct srvsvc_NetShareDel s; + DEBUG(5,("_srv_net_share_del_stick: %d\n", __LINE__)); - return _srvsvc_NetShareDel(p, server_unc, share_name, reserved); + s.in.server_unc = r->in.server_unc; + s.in.share_name = r->in.share_name; + s.in.reserved = r->in.reserved; + + return _srvsvc_NetShareDel(p, &s); } /******************************************************************* time of day ********************************************************************/ -WERROR _srvsvc_NetRemoteTOD(pipes_struct *p, const char *server_unc, struct srvsvc_NetRemoteTODInfo *tod) +WERROR _srvsvc_NetRemoteTOD(pipes_struct *p, struct srvsvc_NetRemoteTOD *r) { struct tm *t; time_t unixdate = time(NULL); @@ -2007,18 +1999,18 @@ WERROR _srvsvc_NetRemoteTOD(pipes_struct *p, const char *server_unc, struct srvs t = gmtime(&unixdate); /* set up the */ - tod->elapsed = unixdate; - tod->msecs = 0; - tod->hours = t->tm_hour; - tod->mins = t->tm_min; - tod->secs = t->tm_sec; - tod->hunds = 0; - tod->timezone = zone; - tod->tinterval = 10000; - tod->day = t->tm_mday; - tod->month = t->tm_mon + 1; - tod->year = 1900+t->tm_year; - tod->weekday = t->tm_wday; + r->out.info->elapsed = unixdate; + r->out.info->msecs = 0; + r->out.info->hours = t->tm_hour; + r->out.info->mins = t->tm_min; + r->out.info->secs = t->tm_sec; + r->out.info->hunds = 0; + r->out.info->timezone = zone; + r->out.info->tinterval = 10000; + r->out.info->day = t->tm_mday; + r->out.info->month = t->tm_mon + 1; + r->out.info->year = 1900+t->tm_year; + r->out.info->weekday = t->tm_wday; DEBUG(5,("_srv_net_remote_tod: %d\n", __LINE__)); @@ -2029,7 +2021,7 @@ WERROR _srvsvc_NetRemoteTOD(pipes_struct *p, const char *server_unc, struct srvs Win9x NT tools get security descriptor. ***********************************************************************************/ -WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p, const char *server_unc, const char *share, const char *file, uint32_t securityinformation, struct sec_desc_buf *sd_buf) +WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p, struct srvsvc_NetGetFileSecurity *r) { SEC_DESC *psd = NULL; size_t sd_size; @@ -2049,11 +2041,11 @@ WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p, const char *server_unc, const null_pw = data_blob(NULL, 0); become_root(); - conn = make_connection(share, null_pw, "A:", p->pipe_user.vuid, &nt_status); + conn = make_connection(r->in.share, null_pw, "A:", p->pipe_user.vuid, &nt_status); unbecome_root(); if (conn == NULL) { - DEBUG(3,("_srv_net_file_query_secdesc: Unable to connect to %s\n", share)); + DEBUG(3,("_srv_net_file_query_secdesc: Unable to connect to %s\n", r->in.share)); status = ntstatus_to_werror(nt_status); goto error_exit; } @@ -2065,26 +2057,26 @@ WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p, const char *server_unc, const } became_user = True; - pstrcpy(tmp_file, file); + pstrcpy(tmp_file, r->in.file); nt_status = unix_convert(conn, tmp_file, False, NULL, &st); if (!NT_STATUS_IS_OK(nt_status)) { - DEBUG(3,("_srv_net_file_query_secdesc: bad pathname %s\n", file)); + DEBUG(3,("_srv_net_file_query_secdesc: bad pathname %s\n", r->in.file)); status = WERR_ACCESS_DENIED; goto error_exit; } - nt_status = check_name(conn, file); + nt_status = check_name(conn, r->in.file); if (!NT_STATUS_IS_OK(nt_status)) { - DEBUG(3,("_srv_net_file_query_secdesc: can't access %s\n", file)); + DEBUG(3,("_srv_net_file_query_secdesc: can't access %s\n", r->in.file)); status = WERR_ACCESS_DENIED; goto error_exit; } - nt_status = open_file_stat(conn, file, &st, &fsp); + nt_status = open_file_stat(conn, r->in.file, &st, &fsp); if (!NT_STATUS_IS_OK(nt_status)) { /* Perhaps it is a directory */ if (NT_STATUS_EQUAL(nt_status, NT_STATUS_FILE_IS_A_DIRECTORY)) - nt_status = open_directory(conn, file, &st, + nt_status = open_directory(conn, r->in.file, &st, READ_CONTROL_ACCESS, FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_OPEN, @@ -2092,7 +2084,7 @@ WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p, const char *server_unc, const NULL, &fsp); if (!NT_STATUS_IS_OK(nt_status)) { - DEBUG(3,("_srv_net_file_query_secdesc: Unable to open file %s\n", file)); + DEBUG(3,("_srv_net_file_query_secdesc: Unable to open file %s\n", r->in.file)); status = WERR_ACCESS_DENIED; goto error_exit; } @@ -2101,13 +2093,13 @@ WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p, const char *server_unc, const sd_size = SMB_VFS_GET_NT_ACL(fsp, fsp->fsp_name, (OWNER_SECURITY_INFORMATION|GROUP_SECURITY_INFORMATION|DACL_SECURITY_INFORMATION), &psd); if (sd_size == 0) { - DEBUG(3,("_srv_net_file_query_secdesc: Unable to get NT ACL for file %s\n", file)); + DEBUG(3,("_srv_net_file_query_secdesc: Unable to get NT ACL for file %s\n", r->in.file)); status = WERR_ACCESS_DENIED; goto error_exit; } - sd_buf->sd_size= sd_size; - sd_buf->sd = psd; + r->out.sd_buf->sd_size= sd_size; + r->out.sd_buf->sd = psd; psd->dacl->revision = (uint16) NT4_ACL_REVISION; @@ -2135,7 +2127,7 @@ error_exit: Win9x NT tools set security descriptor. ***********************************************************************************/ -WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p, const char *server_unc, const char *share, const char *file, uint32_t securityinformation, struct sec_desc_buf sd_buf) +WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p, struct srvsvc_NetSetFileSecurity *r) { BOOL ret; DATA_BLOB null_pw; @@ -2153,11 +2145,11 @@ WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p, const char *server_unc, const null_pw = data_blob(NULL, 0); become_root(); - conn = make_connection(share, null_pw, "A:", p->pipe_user.vuid, &nt_status); + conn = make_connection(r->in.share, null_pw, "A:", p->pipe_user.vuid, &nt_status); unbecome_root(); if (conn == NULL) { - DEBUG(3,("_srv_net_file_set_secdesc: Unable to connect to %s\n", share)); + DEBUG(3,("_srv_net_file_set_secdesc: Unable to connect to %s\n", r->in.share)); status = ntstatus_to_werror(nt_status); goto error_exit; } @@ -2169,28 +2161,28 @@ WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p, const char *server_unc, const } became_user = True; - pstrcpy(tmp_file, file); + pstrcpy(tmp_file, r->in.file); nt_status = unix_convert(conn, tmp_file, False, NULL, &st); if (!NT_STATUS_IS_OK(nt_status)) { - DEBUG(3,("_srv_net_file_set_secdesc: bad pathname %s\n", file)); + DEBUG(3,("_srv_net_file_set_secdesc: bad pathname %s\n", r->in.file)); status = WERR_ACCESS_DENIED; goto error_exit; } - nt_status = check_name(conn, file); + nt_status = check_name(conn, r->in.file); if (!NT_STATUS_IS_OK(nt_status)) { - DEBUG(3,("_srv_net_file_set_secdesc: can't access %s\n", file)); + DEBUG(3,("_srv_net_file_set_secdesc: can't access %s\n", r->in.file)); status = WERR_ACCESS_DENIED; goto error_exit; } - nt_status = open_file_stat(conn, file, &st, &fsp); + nt_status = open_file_stat(conn, r->in.file, &st, &fsp); if (!NT_STATUS_IS_OK(nt_status)) { /* Perhaps it is a directory */ if (NT_STATUS_EQUAL(nt_status, NT_STATUS_FILE_IS_A_DIRECTORY)) - nt_status = open_directory(conn, file, &st, + nt_status = open_directory(conn, r->in.file, &st, FILE_READ_ATTRIBUTES, FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_OPEN, @@ -2198,16 +2190,16 @@ WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p, const char *server_unc, const NULL, &fsp); if (!NT_STATUS_IS_OK(nt_status)) { - DEBUG(3,("_srv_net_file_set_secdesc: Unable to open file %s\n", file)); + DEBUG(3,("_srv_net_file_set_secdesc: Unable to open file %s\n", r->in.file)); status = WERR_ACCESS_DENIED; goto error_exit; } } - ret = SMB_VFS_SET_NT_ACL(fsp, fsp->fsp_name, securityinformation, sd_buf.sd); + ret = SMB_VFS_SET_NT_ACL(fsp, fsp->fsp_name, r->in.securityinformation, r->in.sd_buf.sd); if (ret == False) { - DEBUG(3,("_srv_net_file_set_secdesc: Unable to set NT ACL on file %s\n", file)); + DEBUG(3,("_srv_net_file_set_secdesc: Unable to set NT ACL on file %s\n", r->in.file)); status = WERR_ACCESS_DENIED; goto error_exit; } @@ -2280,38 +2272,38 @@ static const char *next_server_disk_enum(uint32 *resume) return disk; } -WERROR _srvsvc_NetDiskEnum(pipes_struct *p, const char *server_unc, uint32_t level, struct srvsvc_NetDiskInfo *info, uint32_t maxlen, uint32_t *totalentries, uint32_t *resume_handle) +WERROR _srvsvc_NetDiskEnum(pipes_struct *p, struct srvsvc_NetDiskEnum *r) { uint32 i; const char *disk_name; WERROR status = WERR_OK; - *totalentries = init_server_disk_enum(resume_handle); - info->count = 0; + *r->out.totalentries = init_server_disk_enum(r->in.resume_handle); + r->out.info->count = 0; - if(!(info->disks = TALLOC_ARRAY(p->mem_ctx, struct srvsvc_NetDiskInfo0, MAX_SERVER_DISK_ENTRIES))) { + if(!(r->out.info->disks = TALLOC_ARRAY(p->mem_ctx, struct srvsvc_NetDiskInfo0, MAX_SERVER_DISK_ENTRIES))) { return WERR_NOMEM; } /*allow one struct srvsvc_NetDiskInfo0 for null terminator*/ - for(i = 0; i < MAX_SERVER_DISK_ENTRIES -1 && (disk_name = next_server_disk_enum(resume_handle)); i++) { + for(i = 0; i < MAX_SERVER_DISK_ENTRIES -1 && (disk_name = next_server_disk_enum(r->in.resume_handle)); i++) { - info->count++; - (*totalentries)++; + r->out.info->count++; + (*r->out.totalentries)++; /*copy disk name into a unicode string*/ - info->disks[i].disk = disk_name; + r->out.info->disks[i].disk = disk_name; } /* add a terminating null string. Is this there if there is more data to come? */ - info->count++; - (*totalentries)++; + r->out.info->count++; + (*r->out.totalentries)++; - info->disks[i].disk = ""; + r->out.info->disks[i].disk = ""; return status; } @@ -2319,29 +2311,29 @@ WERROR _srvsvc_NetDiskEnum(pipes_struct *p, const char *server_unc, uint32_t lev /******************************************************************** ********************************************************************/ -WERROR _srvsvc_NetNameValidate(pipes_struct *p, const char *server_unc, const char *name, uint32_t name_type, uint32_t flags) +WERROR _srvsvc_NetNameValidate(pipes_struct *p, struct srvsvc_NetNameValidate *r) { int len; - if ((flags != 0x0) && (flags != 0x80000000)) { + if ((r->in.flags != 0x0) && (r->in.flags != 0x80000000)) { return WERR_INVALID_PARAM; } - switch ( name_type ) { + switch ( r->in.name_type ) { case 0x9: - len = strlen_m(name); + len = strlen_m(r->in.name); - if ((flags == 0x0) && (len > 81)) { - DEBUG(5,("_srv_net_name_validate: share name too long (%s > 81 chars)\n", name)); + if ((r->in.flags == 0x0) && (len > 81)) { + DEBUG(5,("_srv_net_name_validate: share name too long (%s > 81 chars)\n", r->in.name)); return WERR_INVALID_NAME; } - if ((flags == 0x80000000) && (len > 13)) { - DEBUG(5,("_srv_net_name_validate: share name too long (%s > 13 chars)\n", name)); + if ((r->in.flags == 0x80000000) && (len > 13)) { + DEBUG(5,("_srv_net_name_validate: share name too long (%s > 13 chars)\n", r->in.name)); return WERR_INVALID_NAME; } - if ( ! validate_net_name( name, INVALID_SHARENAME_CHARS, sizeof(name) ) ) { - DEBUG(5,("_srv_net_name_validate: Bad sharename \"%s\"\n", name)); + if ( ! validate_net_name( r->in.name, INVALID_SHARENAME_CHARS, sizeof(r->in.name) ) ) { + DEBUG(5,("_srv_net_name_validate: Bad sharename \"%s\"\n", r->in.name)); return WERR_INVALID_NAME; } break; @@ -2357,216 +2349,216 @@ WERROR _srvsvc_NetNameValidate(pipes_struct *p, const char *server_unc, const ch /******************************************************************** ********************************************************************/ -WERROR _srvsvc_NetFileClose(pipes_struct *p, const char *server_unc, uint32_t fid) +WERROR _srvsvc_NetFileClose(pipes_struct *p, struct srvsvc_NetFileClose *r) { return WERR_ACCESS_DENIED; } -WERROR _srvsvc_NetCharDevEnum(pipes_struct *p, const char *server_unc, uint32_t *level, union srvsvc_NetCharDevCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle) +WERROR _srvsvc_NetCharDevEnum(pipes_struct *p, struct srvsvc_NetCharDevEnum *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetCharDevGetInfo(pipes_struct *p, const char *server_unc, const char *device_name, uint32_t level, union srvsvc_NetCharDevInfo *info) +WERROR _srvsvc_NetCharDevGetInfo(pipes_struct *p, struct srvsvc_NetCharDevGetInfo *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetCharDevControl(pipes_struct *p, const char *server_unc, const char *device_name, uint32_t opcode) +WERROR _srvsvc_NetCharDevControl(pipes_struct *p, struct srvsvc_NetCharDevControl *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetCharDevQEnum(pipes_struct *p, const char *server_unc, const char *user, uint32_t *level, union srvsvc_NetCharDevQCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle) +WERROR _srvsvc_NetCharDevQEnum(pipes_struct *p, struct srvsvc_NetCharDevQEnum *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetCharDevQGetInfo(pipes_struct *p, const char *server_unc, const char *queue_name, const char *user, uint32_t level, union srvsvc_NetCharDevQInfo *info) +WERROR _srvsvc_NetCharDevQGetInfo(pipes_struct *p, struct srvsvc_NetCharDevQGetInfo *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetCharDevQSetInfo(pipes_struct *p, const char *server_unc, const char *queue_name, uint32_t level, union srvsvc_NetCharDevQInfo info, uint32_t *parm_error) +WERROR _srvsvc_NetCharDevQSetInfo(pipes_struct *p, struct srvsvc_NetCharDevQSetInfo *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetCharDevQPurge(pipes_struct *p, const char *server_unc, const char *queue_name) +WERROR _srvsvc_NetCharDevQPurge(pipes_struct *p, struct srvsvc_NetCharDevQPurge *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetCharDevQPurgeSelf(pipes_struct *p, const char *server_unc, const char *queue_name, const char *computer_name) +WERROR _srvsvc_NetCharDevQPurgeSelf(pipes_struct *p, struct srvsvc_NetCharDevQPurgeSelf *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetFileGetInfo(pipes_struct *p, const char *server_unc, uint32_t fid, uint32_t level, union srvsvc_NetFileInfo *info) +WERROR _srvsvc_NetFileGetInfo(pipes_struct *p, struct srvsvc_NetFileGetInfo *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetShareCheck(pipes_struct *p, const char *server_unc, const char *device_name, enum srvsvc_ShareType *type) +WERROR _srvsvc_NetShareCheck(pipes_struct *p, struct srvsvc_NetShareCheck *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetServerStatisticsGet(pipes_struct *p, const char *server_unc, const char *service, uint32_t level, uint32_t options, struct srvsvc_Statistics *stats) +WERROR _srvsvc_NetServerStatisticsGet(pipes_struct *p, struct srvsvc_NetServerStatisticsGet *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetTransportAdd(pipes_struct *p, const char *server_unc, uint32_t level, union srvsvc_NetTransportInfo info) +WERROR _srvsvc_NetTransportAdd(pipes_struct *p, struct srvsvc_NetTransportAdd *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetTransportEnum(pipes_struct *p, const char *server_unc, uint32_t *level, union srvsvc_NetTransportCtr *transports, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle) +WERROR _srvsvc_NetTransportEnum(pipes_struct *p, struct srvsvc_NetTransportEnum *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetTransportDel(pipes_struct *p, const char *server_unc, uint32_t unknown, struct srvsvc_NetTransportInfo0 transport) +WERROR _srvsvc_NetTransportDel(pipes_struct *p, struct srvsvc_NetTransportDel *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetSetServiceBits(pipes_struct *p, const char *server_unc, const char *transport, uint32_t servicebits, uint32_t updateimmediately) +WERROR _srvsvc_NetSetServiceBits(pipes_struct *p, struct srvsvc_NetSetServiceBits *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetPathType(pipes_struct *p, const char *server_unc, const char *path, uint32_t pathflags, uint32_t *pathtype) +WERROR _srvsvc_NetPathType(pipes_struct *p, struct srvsvc_NetPathType *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetPathCanonicalize(pipes_struct *p, const char *server_unc, const char *path, uint8_t *can_path, uint32_t maxbuf, const char *prefix, uint32_t *pathtype, uint32_t pathflags) +WERROR _srvsvc_NetPathCanonicalize(pipes_struct *p, struct srvsvc_NetPathCanonicalize *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetPathCompare(pipes_struct *p, const char *server_unc, const char *path1, const char *path2, uint32_t pathtype, uint32_t pathflags) +WERROR _srvsvc_NetPathCompare(pipes_struct *p, struct srvsvc_NetPathCompare *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NETRPRNAMECANONICALIZE(pipes_struct *p) +WERROR _srvsvc_NETRPRNAMECANONICALIZE(pipes_struct *p, struct srvsvc_NETRPRNAMECANONICALIZE *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetPRNameCompare(pipes_struct *p, const char *server_unc, const char *name1, const char *name2, uint32_t name_type, uint32_t flags) +WERROR _srvsvc_NetPRNameCompare(pipes_struct *p, struct srvsvc_NetPRNameCompare *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetShareDelStart(pipes_struct *p, const char *server_unc, const char *share, uint32_t reserved, struct policy_handle *hnd) +WERROR _srvsvc_NetShareDelStart(pipes_struct *p, struct srvsvc_NetShareDelStart *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetShareDelCommit(pipes_struct *p, struct policy_handle *hnd) +WERROR _srvsvc_NetShareDelCommit(pipes_struct *p, struct srvsvc_NetShareDelCommit *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetServerTransportAddEx(pipes_struct *p, const char *server_unc, uint32_t level, union srvsvc_NetTransportInfo info) +WERROR _srvsvc_NetServerTransportAddEx(pipes_struct *p, struct srvsvc_NetServerTransportAddEx *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NetServerSetServiceBitsEx(pipes_struct *p, const char *server_unc, const char *emulated_server_unc, const char *transport, uint32_t servicebitsofinterest, uint32_t servicebits, uint32_t updateimmediately) +WERROR _srvsvc_NetServerSetServiceBitsEx(pipes_struct *p, struct srvsvc_NetServerSetServiceBitsEx *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NETRDFSGETVERSION(pipes_struct *p) +WERROR _srvsvc_NETRDFSGETVERSION(pipes_struct *p, struct srvsvc_NETRDFSGETVERSION *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NETRDFSCREATELOCALPARTITION(pipes_struct *p) +WERROR _srvsvc_NETRDFSCREATELOCALPARTITION(pipes_struct *p, struct srvsvc_NETRDFSCREATELOCALPARTITION *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NETRDFSDELETELOCALPARTITION(pipes_struct *p) +WERROR _srvsvc_NETRDFSDELETELOCALPARTITION(pipes_struct *p, struct srvsvc_NETRDFSDELETELOCALPARTITION *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NETRDFSSETLOCALVOLUMESTATE(pipes_struct *p) +WERROR _srvsvc_NETRDFSSETLOCALVOLUMESTATE(pipes_struct *p, struct srvsvc_NETRDFSSETLOCALVOLUMESTATE *R) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NETRDFSSETSERVERINFO(pipes_struct *p) +WERROR _srvsvc_NETRDFSSETSERVERINFO(pipes_struct *p, struct srvsvc_NETRDFSSETSERVERINFO *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NETRDFSCREATEEXITPOINT(pipes_struct *p) +WERROR _srvsvc_NETRDFSCREATEEXITPOINT(pipes_struct *p, struct srvsvc_NETRDFSCREATEEXITPOINT *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NETRDFSDELETEEXITPOINT(pipes_struct *p) +WERROR _srvsvc_NETRDFSDELETEEXITPOINT(pipes_struct *p, struct srvsvc_NETRDFSDELETEEXITPOINT *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NETRSERVERTRANSPORTDELEX(pipes_struct *p) +WERROR _srvsvc_NETRSERVERTRANSPORTDELEX(pipes_struct *p, struct srvsvc_NETRSERVERTRANSPORTDELEX *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NETRDFSMANAGERREPORTSITEINFO(pipes_struct *p) +WERROR _srvsvc_NETRDFSMANAGERREPORTSITEINFO(pipes_struct *p, struct srvsvc_NETRDFSMANAGERREPORTSITEINFO *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NETRDFSMODIFYPREFIX(pipes_struct *p) +WERROR _srvsvc_NETRDFSMODIFYPREFIX(pipes_struct *p, struct srvsvc_NETRDFSMODIFYPREFIX *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; } -WERROR _srvsvc_NETRDFSFIXLOCALVOLUME(pipes_struct *p) +WERROR _srvsvc_NETRDFSFIXLOCALVOLUME(pipes_struct *p, struct srvsvc_NETRDFSFIXLOCALVOLUME *r) { p->rng_fault_state = True; return WERR_NOT_SUPPORTED; |