1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00

Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into v4-0-gmake4

(This used to be commit 9d3d64e138)
This commit is contained in:
Jelmer Vernooij 2008-04-14 11:55:19 +02:00
commit 7cf29ac84e
6 changed files with 37 additions and 15 deletions

View File

@ -220,6 +220,10 @@ sub SharedLibrary($$)
{
my ($self,$ctx) = @_;
if (!defined($ctx->{LIBRARY_SONAME})) {
$ctx->{LIBRARY_SONAME} = "";
}
$self->output("SHARED_LIBS += $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}\n") if (defined($ctx->{SO_VERSION}));
$self->_prepare_list($ctx, "DEPEND_LIST");

View File

@ -1706,19 +1706,27 @@ union smb_read {
/* static body buffer 48 (0x30) bytes */
/* uint16_t buffer_code; 0x31 = 0x30 + 1 */
uint16_t _pad;
uint8_t _pad;
uint8_t reserved;
uint32_t length;
uint64_t offset;
/* struct smb2_handle handle; */
uint64_t unknown1; /* 0x0000000000000000 */
uint64_t unknown2; /* 0x0000000000000000 */
uint32_t min_count;
uint32_t channel;
uint32_t remaining;
/* the docs give no indication of what
these channel variables are for */
uint16_t channel_offset;
uint16_t channel_length;
} in;
struct {
/* static body buffer 16 (0x10) bytes */
/* uint16_t buffer_code; 0x11 = 0x10 + 1 */
/* uint16_t data_ofs; */
/* uint8_t data_ofs; */
/* uint8_t reserved; */
/* uint32_t data_size; */
uint64_t unknown1; /* 0x0000000000000000 */
uint32_t remaining;
uint32_t reserved;
/* dynamic body */
DATA_BLOB data;

View File

@ -33,12 +33,16 @@ struct smb2_request *smb2_read_send(struct smb2_tree *tree, struct smb2_read *io
req = smb2_request_init_tree(tree, SMB2_OP_READ, 0x30, true, 0);
if (req == NULL) return NULL;
SSVAL(req->out.body, 0x02, 0); /* pad */
SCVAL(req->out.body, 0x02, 0); /* pad */
SCVAL(req->out.body, 0x03, 0); /* reserved */
SIVAL(req->out.body, 0x04, io->in.length);
SBVAL(req->out.body, 0x08, io->in.offset);
smb2_push_handle(req->out.body+0x10, &io->in.file.handle);
SBVAL(req->out.body, 0x20, io->in.unknown1);
SBVAL(req->out.body, 0x28, io->in.unknown2);
SIVAL(req->out.body, 0x20, io->in.min_count);
SIVAL(req->out.body, 0x24, io->in.channel);
SIVAL(req->out.body, 0x28, io->in.remaining);
SSVAL(req->out.body, 0x2C, io->in.channel_offset);
SSVAL(req->out.body, 0x2E, io->in.channel_length);
smb2_transport_send(req);
@ -67,7 +71,8 @@ NTSTATUS smb2_read_recv(struct smb2_request *req,
return status;
}
io->out.unknown1 = BVAL(req->in.body, 0x08);
io->out.remaining = IVAL(req->in.body, 0x08);
io->out.reserved = IVAL(req->in.body, 0x0C);
return smb2_request_destroy(req);
}

View File

@ -1214,7 +1214,8 @@ static NTSTATUS ntvfs_map_read_finish(struct ntvfs_module_context *ntvfs,
break;
case RAW_READ_SMB2:
rd->smb2.out.data.length= rd2->generic.out.nread;
rd->smb2.out.unknown1 = 0;
rd->smb2.out.remaining = 0;
rd->smb2.out.reserved = 0;
break;
default:
return NT_STATUS_INVALID_LEVEL;

View File

@ -167,7 +167,8 @@ static void smb2srv_read_send(struct ntvfs_request *ntvfs)
/* TODO: avoid the memcpy */
SMB2SRV_CHECK(smb2_push_o16s32_blob(&req->out, 0x02, io->smb2.out.data));
SBVAL(req->out.body, 0x08, io->smb2.out.unknown1);
SIVAL(req->out.body, 0x08, io->smb2.out.remaining);
SIVAL(req->out.body, 0x0C, io->smb2.out.reserved);
smb2srv_send_reply(req);
}
@ -185,8 +186,11 @@ void smb2srv_read_recv(struct smb2srv_request *req)
io->smb2.in.length = IVAL(req->in.body, 0x04);
io->smb2.in.offset = BVAL(req->in.body, 0x08);
io->smb2.in.file.ntvfs = smb2srv_pull_handle(req, req->in.body, 0x10);
io->smb2.in.unknown1 = BVAL(req->in.body, 0x20);
io->smb2.in.unknown2 = BVAL(req->in.body, 0x28);
io->smb2.in.min_count = IVAL(req->in.body, 0x20);
io->smb2.in.channel = IVAL(req->in.body, 0x24);
io->smb2.in.remaining = IVAL(req->in.body, 0x28);
io->smb2.in.channel_offset = SVAL(req->in.body, 0x2C);
io->smb2.in.channel_length = SVAL(req->in.body, 0x2E);
SMB2SRV_CHECK_FILE_HANDLE(io->smb2.in.file.ntvfs);

View File

@ -654,7 +654,7 @@ NTSTATUS idmap_xids_to_sids(struct idmap_context *idmap_ctx,
&id[i].sid);
}
if (!NT_STATUS_IS_OK(id[i].status)) {
DEBUG(1, ("idmapping failed for id[%d]\n", i));
DEBUG(1, ("idmapping xid_to_sid failed for id[%d]\n", i));
error_count++;
}
}
@ -699,7 +699,7 @@ NTSTATUS idmap_sids_to_xids(struct idmap_context *idmap_ctx,
&id[i].unixid);
}
if (!NT_STATUS_IS_OK(id[i].status)) {
DEBUG(1, ("idmapping failed for id[%d]\n", i));
DEBUG(1, ("idmapping sid_to_xid failed for id[%d]\n", i));
error_count++;
}
}