static WERROR dcesrv_srvsvc_NetCharDevGetInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct srvsvc_NetCharDevGetInfo *r)
{
- ZERO_STRUCT(r->out);
+ ZERO_STRUCTP(r->out.info);
switch (r->in.level) {
case 0:
static WERROR dcesrv_srvsvc_NetCharDevQGetInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct srvsvc_NetCharDevQGetInfo *r)
{
- ZERO_STRUCT(r->out);
+ ZERO_STRUCTP(r->out.info);
switch (r->in.level) {
case 0:
static WERROR dcesrv_srvsvc_NetFileGetInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct srvsvc_NetFileGetInfo *r)
{
- ZERO_STRUCT(r->out);
+ ZERO_STRUCTP(r->out.info);
switch (r->in.level) {
case 2:
struct share_context *sctx = NULL;
struct share_config *scfg = NULL;
- ZERO_STRUCT(r->out);
+ ZERO_STRUCTP(r->out.info);
/* TODO: - access check
*/
return status;
}
- r->out.info.info0 = info.info0;
+ r->out.info->info0 = info.info0;
return WERR_OK;
}
case 1:
return status;
}
- r->out.info.info1 = info.info1;
+ r->out.info->info1 = info.info1;
return WERR_OK;
}
case 2:
return status;
}
- r->out.info.info2 = info.info2;
+ r->out.info->info2 = info.info2;
return WERR_OK;
}
case 501:
return status;
}
- r->out.info.info501 = info.info501;
+ r->out.info->info501 = info.info501;
return WERR_OK;
}
case 502:
return status;
}
- r->out.info.info502 = info.info502;
+ r->out.info->info502 = info.info502;
return WERR_OK;
}
case 1005:
return status;
}
- r->out.info.info1005 = info.info1005;
+ r->out.info->info1005 = info.info1005;
return WERR_OK;
}
default:
{
status = dcesrv_srvsvc_fill_share_info(info, &count,
r->in.share_name, r->in.level,
- r->in.info.info0->name,
+ r->in.info->info0->name,
NULL,
NULL,
NULL,
{
status = dcesrv_srvsvc_fill_share_info(info, &count,
r->in.share_name, r->in.level,
- r->in.info.info1->name,
+ r->in.info->info1->name,
NULL,
- r->in.info.info1->comment,
+ r->in.info->info1->comment,
NULL,
- r->in.info.info1->type,
+ r->in.info->info1->type,
0,
0,
NULL);
{
status = dcesrv_srvsvc_fill_share_info(info, &count,
r->in.share_name, r->in.level,
- r->in.info.info2->name,
- r->in.info.info2->path,
- r->in.info.info2->comment,
- r->in.info.info2->password,
- r->in.info.info2->type,
- r->in.info.info2->max_users,
+ r->in.info->info2->name,
+ r->in.info->info2->path,
+ r->in.info->info2->comment,
+ r->in.info->info2->password,
+ r->in.info->info2->type,
+ r->in.info->info2->max_users,
0,
NULL);
if (W_ERROR_EQUAL(status, WERR_OK)) {
{
status = dcesrv_srvsvc_fill_share_info(info, &count,
r->in.share_name, r->in.level,
- r->in.info.info501->name,
+ r->in.info->info501->name,
NULL,
- r->in.info.info501->comment,
+ r->in.info->info501->comment,
NULL,
- r->in.info.info501->type,
+ r->in.info->info501->type,
0,
- r->in.info.info501->csc_policy,
+ r->in.info->info501->csc_policy,
NULL);
if (W_ERROR_EQUAL(status, WERR_OK)) {
return status;
{
status = dcesrv_srvsvc_fill_share_info(info, &count,
r->in.share_name, r->in.level,
- r->in.info.info502->name,
- r->in.info.info502->path,
- r->in.info.info502->comment,
- r->in.info.info502->password,
- r->in.info.info502->type,
- r->in.info.info502->max_users,
+ r->in.info->info502->name,
+ r->in.info->info502->path,
+ r->in.info->info502->comment,
+ r->in.info->info502->password,
+ r->in.info->info502->type,
+ r->in.info->info502->max_users,
0,
- r->in.info.info502->sd_buf.sd);
+ r->in.info->info502->sd_buf.sd);
if (W_ERROR_EQUAL(status, WERR_OK)) {
return status;
}
r->in.share_name, r->in.level,
NULL,
NULL,
- r->in.info.info1004->comment,
+ r->in.info->info1004->comment,
NULL,
0,
0,
{
struct dcesrv_context *dce_ctx = dce_call->conn->dce_ctx;
- ZERO_STRUCT(r->out);
+ ZERO_STRUCTP(r->out.info);
switch (r->in.level) {
case 100:
info100->server_name = dcesrv_common_get_server_name(mem_ctx, dce_ctx, r->in.server_unc);
W_ERROR_HAVE_NO_MEMORY(info100->server_name);
- r->out.info.info100 = info100;
+ r->out.info->info100 = info100;
return WERR_OK;
}
case 101:
info101->comment = talloc_strdup(mem_ctx, lp_serverstring(dce_ctx->lp_ctx));
W_ERROR_HAVE_NO_MEMORY(info101->comment);
- r->out.info.info101 = info101;
+ r->out.info->info101 = info101;
return WERR_OK;
}
case 102:
info102->userpath = dcesrv_common_get_userpath(mem_ctx, dce_ctx);
W_ERROR_HAVE_NO_MEMORY(info102->userpath);
- r->out.info.info102 = info102;
+ r->out.info->info102 = info102;
return WERR_OK;
}
default:
static WERROR dcesrv_srvsvc_NetTransportEnum(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct srvsvc_NetTransportEnum *r)
{
- r->out.level = r->in.level;
- r->out.totalentries = 0;
- r->out.resume_handle = NULL;
+ r->out.transports->level = r->in.transports->level;
+ *r->out.totalentries = 0;
+ if (r->out.resume_handle) {
+ *r->out.resume_handle = 0;
+ }
- switch (r->in.level) {
+ switch (r->in.transports->level) {
case 0:
{
- r->out.transports.ctr0 = talloc(mem_ctx, struct srvsvc_NetTransportCtr0);
- W_ERROR_HAVE_NO_MEMORY(r->out.transports.ctr0);
+ r->out.transports->ctr.ctr0 = talloc(mem_ctx, struct srvsvc_NetTransportCtr0);
+ W_ERROR_HAVE_NO_MEMORY(r->out.transports->ctr.ctr0);
- r->out.transports.ctr0->count = 0;
- r->out.transports.ctr0->array = NULL;
+ r->out.transports->ctr.ctr0->count = 0;
+ r->out.transports->ctr.ctr0->array = NULL;
return WERR_NOT_SUPPORTED;
}
case 1:
{
- r->out.transports.ctr1 = talloc(mem_ctx, struct srvsvc_NetTransportCtr1);
- W_ERROR_HAVE_NO_MEMORY(r->out.transports.ctr1);
+ r->out.transports->ctr.ctr1 = talloc(mem_ctx, struct srvsvc_NetTransportCtr1);
+ W_ERROR_HAVE_NO_MEMORY(r->out.transports->ctr.ctr1);
- r->out.transports.ctr1->count = 0;
- r->out.transports.ctr1->array = NULL;
+ r->out.transports->ctr.ctr1->count = 0;
+ r->out.transports->ctr.ctr1->array = NULL;
return WERR_NOT_SUPPORTED;
}
case 2:
{
- r->out.transports.ctr2 = talloc(mem_ctx, struct srvsvc_NetTransportCtr2);
- W_ERROR_HAVE_NO_MEMORY(r->out.transports.ctr2);
+ r->out.transports->ctr.ctr2 = talloc(mem_ctx, struct srvsvc_NetTransportCtr2);
+ W_ERROR_HAVE_NO_MEMORY(r->out.transports->ctr.ctr2);
- r->out.transports.ctr2->count = 0;
- r->out.transports.ctr2->array = NULL;
+ r->out.transports->ctr.ctr2->count = 0;
+ r->out.transports->ctr.ctr2->array = NULL;
return WERR_NOT_SUPPORTED;
}
case 3:
{
- r->out.transports.ctr3 = talloc(mem_ctx, struct srvsvc_NetTransportCtr3);
- W_ERROR_HAVE_NO_MEMORY(r->out.transports.ctr3);
+ r->out.transports->ctr.ctr3 = talloc(mem_ctx, struct srvsvc_NetTransportCtr3);
+ W_ERROR_HAVE_NO_MEMORY(r->out.transports->ctr.ctr3);
- r->out.transports.ctr3->count = 0;
- r->out.transports.ctr3->array = NULL;
+ r->out.transports->ctr.ctr3->count = 0;
+ r->out.transports->ctr.ctr3->array = NULL;
return WERR_NOT_SUPPORTED;
}