summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2008-02-21 09:53:00 -0800
committerJeremy Allison <jra@samba.org>2008-02-21 09:53:00 -0800
commit3a376f1cfa25f79eab8f41a42383f1bd982830ff (patch)
treec79b241e6b811dd058f7791cdb561587b1533db1 /source3/smbd
parent34f23b7ea755eaef6012b653fbcff42714dddcb7 (diff)
parentbf6dbf8e1b371770a2c9df99b27569c36587df39 (diff)
downloadsamba-3a376f1cfa25f79eab8f41a42383f1bd982830ff.tar.gz
samba-3a376f1cfa25f79eab8f41a42383f1bd982830ff.tar.bz2
samba-3a376f1cfa25f79eab8f41a42383f1bd982830ff.zip
Merge branch 'v3-2-test' of ssh://jra@git.samba.org/data/git/samba into v3-2-test
(This used to be commit beb0a76b93f9dd054dbc4192516e7008e59b27d9)
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/aio.c7
-rw-r--r--source3/smbd/server.c3
-rw-r--r--source3/smbd/sesssetup.c11
3 files changed, 14 insertions, 7 deletions
diff --git a/source3/smbd/aio.c b/source3/smbd/aio.c
index 86fdfe31b7..8c6eaf1498 100644
--- a/source3/smbd/aio.c
+++ b/source3/smbd/aio.c
@@ -351,6 +351,8 @@ bool schedule_aio_write_and_X(connection_struct *conn,
return False;
}
+ release_level_2_oplocks_on_change(fsp);
+
if (!write_through && !lp_syncalways(SNUM(fsp->conn))
&& fsp->aio_write_behind) {
/* Lie to the client and immediately claim we finished the
@@ -421,6 +423,9 @@ static int handle_aio_read_complete(struct aio_extra *aio_ex)
SSVAL(outbuf,smb_vwv7,((nread >> 16) & 1));
SSVAL(smb_buf(outbuf),-2,nread);
+ aio_ex->fsp->fh->pos = aio_ex->acb.aio_offset + nread;
+ aio_ex->fsp->fh->position_information = aio_ex->fsp->fh->pos;
+
DEBUG( 3, ( "handle_aio_read_complete file %s max=%d "
"nread=%d\n",
aio_ex->fsp->fsp_name,
@@ -522,6 +527,8 @@ static int handle_aio_write_complete(struct aio_extra *aio_ex)
DEBUG(5,("handle_aio_write: sync_file for %s returned %s\n",
fsp->fsp_name, nt_errstr(status) ));
}
+
+ aio_ex->fsp->fh->pos = aio_ex->acb.aio_offset + nwritten;
}
show_msg(outbuf);
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 7116027adf..7bf11abfbd 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -988,7 +988,8 @@ static bool init_structs(void )
init_dptrs();
- secrets_init();
+ if (!secrets_init())
+ return False;
return True;
}
diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c
index 3e04da35df..9baa02977a 100644
--- a/source3/smbd/sesssetup.c
+++ b/source3/smbd/sesssetup.c
@@ -259,7 +259,7 @@ static void reply_spnego_kerberos(struct smb_request *req,
fstring user;
int sess_vuid = req->vuid;
NTSTATUS ret = NT_STATUS_OK;
- PAC_DATA *pac_data = NULL;
+ struct PAC_DATA *pac_data = NULL;
DATA_BLOB ap_rep, ap_rep_wrapped, response;
auth_serversupplied_info *server_info = NULL;
DATA_BLOB session_key = data_blob_null;
@@ -268,7 +268,7 @@ static void reply_spnego_kerberos(struct smb_request *req,
fstring real_username;
bool map_domainuser_to_guest = False;
bool username_was_mapped;
- PAC_LOGON_INFO *logon_info = NULL;
+ struct PAC_LOGON_INFO *logon_info = NULL;
ZERO_STRUCT(ticket);
ZERO_STRUCT(ap_rep);
@@ -394,10 +394,9 @@ static void reply_spnego_kerberos(struct smb_request *req,
domain = p+1;
- if (logon_info && logon_info->info3.hdr_logon_dom.uni_str_len) {
- unistr2_to_ascii(netbios_domain_name,
- &logon_info->info3.uni_logon_dom,
- sizeof(netbios_domain_name));
+ if (logon_info && logon_info->info3.base.domain.string) {
+ fstrcpy(netbios_domain_name,
+ logon_info->info3.base.domain.string);
domain = netbios_domain_name;
DEBUG(10, ("Mapped to [%s] (using PAC)\n", domain));