mirror of
https://github.com/samba-team/samba.git
synced 2025-02-09 09:57:48 +03:00
s4:rpc_server: convert dcesrv_auth_response() into a generic dcesrv_auth_pkt_push()
Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
This commit is contained in:
parent
bc73cd97ee
commit
1a46ff2a0f
@ -225,6 +225,7 @@ _PUBLIC_ NTSTATUS dcesrv_reply(struct dcesrv_call_state *call)
|
|||||||
uint32_t length;
|
uint32_t length;
|
||||||
struct data_blob_list_item *rep;
|
struct data_blob_list_item *rep;
|
||||||
struct ncacn_packet pkt;
|
struct ncacn_packet pkt;
|
||||||
|
bool ok;
|
||||||
|
|
||||||
rep = talloc_zero(call, struct data_blob_list_item);
|
rep = talloc_zero(call, struct data_blob_list_item);
|
||||||
NT_STATUS_HAVE_NO_MEMORY(rep);
|
NT_STATUS_HAVE_NO_MEMORY(rep);
|
||||||
@ -250,7 +251,11 @@ _PUBLIC_ NTSTATUS dcesrv_reply(struct dcesrv_call_state *call)
|
|||||||
pkt.u.response.stub_and_verifier.data = stub.data;
|
pkt.u.response.stub_and_verifier.data = stub.data;
|
||||||
pkt.u.response.stub_and_verifier.length = length;
|
pkt.u.response.stub_and_verifier.length = length;
|
||||||
|
|
||||||
if (!dcesrv_auth_response(call, &rep->blob, sig_size, &pkt)) {
|
ok = dcesrv_auth_pkt_push(call, &rep->blob, sig_size,
|
||||||
|
DCERPC_RESPONSE_LENGTH,
|
||||||
|
&pkt.u.response.stub_and_verifier,
|
||||||
|
&pkt);
|
||||||
|
if (!ok) {
|
||||||
return dcesrv_fault(call, DCERPC_FAULT_OTHER);
|
return dcesrv_fault(call, DCERPC_FAULT_OTHER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -521,12 +521,13 @@ bool dcesrv_auth_pkt_pull(struct dcesrv_call_state *call,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
push a signed or sealed dcerpc request packet into a blob
|
push a signed or sealed dcerpc request packet into a blob
|
||||||
*/
|
*/
|
||||||
bool dcesrv_auth_response(struct dcesrv_call_state *call,
|
bool dcesrv_auth_pkt_push(struct dcesrv_call_state *call,
|
||||||
DATA_BLOB *blob, size_t sig_size,
|
DATA_BLOB *blob, size_t sig_size,
|
||||||
|
uint8_t payload_offset,
|
||||||
|
const DATA_BLOB *payload,
|
||||||
const struct ncacn_packet *pkt)
|
const struct ncacn_packet *pkt)
|
||||||
{
|
{
|
||||||
struct dcesrv_connection *dce_conn = call->conn;
|
struct dcesrv_connection *dce_conn = call->conn;
|
||||||
@ -540,8 +541,8 @@ bool dcesrv_auth_response(struct dcesrv_call_state *call,
|
|||||||
status = dcerpc_ncacn_push_pkt_auth(&tmp_auth,
|
status = dcerpc_ncacn_push_pkt_auth(&tmp_auth,
|
||||||
dce_conn->auth_state.gensec_security,
|
dce_conn->auth_state.gensec_security,
|
||||||
call, blob, sig_size,
|
call, blob, sig_size,
|
||||||
DCERPC_RESPONSE_LENGTH,
|
payload_offset,
|
||||||
&pkt->u.response.stub_and_verifier,
|
payload,
|
||||||
pkt);
|
pkt);
|
||||||
return NT_STATUS_IS_OK(status);
|
return NT_STATUS_IS_OK(status);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user