コード例 #1
0
ファイル: srv_srvsvc.c プロジェクト: DeezNuts12/freestyledash
static BOOL api_srv_net_share_add(pipes_struct *p)
{
	SRV_Q_NET_SHARE_ADD q_u;
	SRV_R_NET_SHARE_ADD r_u;
	prs_struct *data = &p->in_data.data;
	prs_struct *rdata = &p->out_data.rdata;

	ZERO_STRUCT(q_u);
	ZERO_STRUCT(r_u);

	/* Unmarshall the net server add info. */
	if(!srv_io_q_net_share_add("", &q_u, data, 0)) {
		DEBUG(0,("api_srv_net_share_add: Failed to unmarshall SRV_Q_NET_SHARE_ADD.\n"));
		return False;
	}

	r_u.status = _srv_net_share_add(p, &q_u, &r_u);

	if(!srv_io_r_net_share_add("", &r_u, rdata, 0)) {
		DEBUG(0,("api_srv_net_share_add: Failed to marshall SRV_R_NET_SHARE_ADD.\n"));
		return False;
	}

	return True;
}
コード例 #2
0
ファイル: cli_srvsvc.c プロジェクト: Nymphetaminer/dsl-n55u
WERROR cli_srvsvc_net_share_add(struct cli_state *cli, TALLOC_CTX *mem_ctx,
				const char *netname, uint32 type, 
				const char *remark, uint32 perms, 
				uint32 max_uses, uint32 num_uses, 
				const char *path, const char *passwd)
{
	prs_struct qbuf, rbuf;
	SRV_Q_NET_SHARE_ADD q;
	SRV_R_NET_SHARE_ADD r;
	WERROR result = W_ERROR(ERRgeneral);

	ZERO_STRUCT(q);
	ZERO_STRUCT(r);

	/* Initialise parse structures */

	prs_init(&qbuf, MAX_PDU_FRAG_LEN, mem_ctx, MARSHALL);
	prs_init(&rbuf, 0, mem_ctx, UNMARSHALL);

	init_srv_q_net_share_add(&q,cli->srv_name_slash, netname, type, remark,
				 perms, max_uses, num_uses, path, passwd);

	/* Marshall data and send request */

	if (!srv_io_q_net_share_add("", &q, &qbuf, 0) ||
	    !rpc_api_pipe_req(cli, SRV_NET_SHARE_ADD, &qbuf, &rbuf))
		goto done;

	/* Unmarshall response */

	if (!srv_io_r_net_share_add("", &r, &rbuf, 0))
		goto done;

	result = r.status;

 done:
	prs_mem_free(&qbuf);
	prs_mem_free(&rbuf);

	return result;	
}