NTSTATUS smb2cli_create_recv(struct tevent_req *req,
uint64_t *fid_persistent,
uint64_t *fid_volatile,
- struct smb_create_returns *cr)
+ struct smb_create_returns *cr,
+ TALLOC_CTX *mem_ctx,
+ struct smb2_create_blobs *blobs)
{
struct smb2cli_create_state *state =
tevent_req_data(req,
if (cr) {
*cr = state->cr;
}
+ if (blobs) {
+ blobs->num_blobs = state->blobs.num_blobs;
+ blobs->blobs = talloc_move(mem_ctx, &state->blobs.blobs);
+ }
return NT_STATUS_OK;
}
struct smb2_create_blobs *blobs,
uint64_t *fid_persistent,
uint64_t *fid_volatile,
- struct smb_create_returns *cr)
+ struct smb_create_returns *cr,
+ TALLOC_CTX *mem_ctx,
+ struct smb2_create_blobs *ret_blobs)
{
TALLOC_CTX *frame = talloc_stackframe();
struct tevent_context *ev;
if (!tevent_req_poll_ntstatus(req, ev, &status)) {
goto fail;
}
- status = smb2cli_create_recv(req, fid_persistent, fid_volatile, cr);
+ status = smb2cli_create_recv(req, fid_persistent, fid_volatile, cr,
+ mem_ctx, ret_blobs);
fail:
TALLOC_FREE(frame);
return status;
NTSTATUS smb2cli_create_recv(struct tevent_req *req,
uint64_t *fid_persistent,
uint64_t *fid_volatile,
- struct smb_create_returns *cr);
+ struct smb_create_returns *cr,
+ TALLOC_CTX *mem_ctx,
+ struct smb2_create_blobs *blobs);
NTSTATUS smb2cli_create(struct smbXcli_conn *conn,
uint32_t timeout_msec,
struct smbXcli_session *session,
struct smb2_create_blobs *blobs,
uint64_t *fid_persistent,
uint64_t *fid_volatile,
- struct smb_create_returns *cr);
+ struct smb_create_returns *cr,
+ TALLOC_CTX *mem_ctx,
+ struct smb2_create_blobs *ret_blobs);
struct tevent_req *smb2cli_close_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_IS_OK(status)) {
printf("smb2cli_create returned %s\n", nt_errstr(status));
return false;
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_IS_OK(status)) {
printf("smb2cli_create returned %s\n", nt_errstr(status));
return false;
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_IS_OK(status)) {
printf("smb2cli_create on cli1 %s\n", nt_errstr(status));
return false;
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED) &&
!NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_NAME_DELETED)) {
printf("smb2cli_create on cli2 %s\n", nt_errstr(status));
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_NAME_DELETED) &&
!NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_NAME_DELETED))
{
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_IS_OK(status)) {
printf("smb2cli_create on cli2 %s\n", nt_errstr(status));
return false;
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_IS_OK(status)) {
printf("smb2cli_create on cli %s\n", nt_errstr(status));
return false;
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_IS_OK(status)) {
printf("smb2cli_create on cli2 %s\n", nt_errstr(status));
return false;
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) {
printf("smb2cli_create %s\n", nt_errstr(status));
return false;
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) {
printf("smb2cli_create %s\n", nt_errstr(status));
return false;
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) {
printf("smb2cli_create %s\n", nt_errstr(status));
return false;
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_IS_OK(status)) {
printf("smb2cli_create %s\n", nt_errstr(status));
return false;
NULL, /* smb2_create_blobs *blobs */
&dir_persistent,
&dir_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_IS_OK(status)) {
printf("smb2cli_create returned %s\n", nt_errstr(status));
return false;
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) {
printf("smb2cli_create %s\n", nt_errstr(status));
return false;
NULL, /* smb2_create_blobs *blobs */
&dir_persistent,
&dir_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) {
printf("smb2cli_create returned %s\n", nt_errstr(status));
return false;
NULL, /* smb2_create_blobs *blobs */
&fid_persistent,
&fid_volatile,
- NULL);
+ NULL, NULL, NULL);
if (!NT_STATUS_IS_OK(status)) {
printf("smb2cli_create %s\n", nt_errstr(status));
return false;