diff options
author | Stefan Metzmacher <metze@samba.org> | 2012-11-01 13:53:27 +0100 |
---|---|---|
committer | Christian Ambach <ambi@samba.org> | 2012-11-05 20:43:23 +0100 |
commit | 3d9361612d30725a3d14fa4d3a085256a91800db (patch) | |
tree | 7409ec0b94732258caf04218f7243b739924c59e | |
parent | 157de6c9878e804b963df3c7c834aa38d1fa7ac3 (diff) | |
download | samba-3d9361612d30725a3d14fa4d3a085256a91800db.tar.gz samba-3d9361612d30725a3d14fa4d3a085256a91800db.tar.bz2 samba-3d9361612d30725a3d14fa4d3a085256a91800db.zip |
s3:smbd: pass the current time to make_connection[_smb1]()
Otherwise smbstatus reports the wrong time for tree connects.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Christian Ambach <ambi@samba.org>
Autobuild-User(master): Christian Ambach <ambi@samba.org>
Autobuild-Date(master): Mon Nov 5 20:43:23 CET 2012 on sn-devel-104
-rw-r--r-- | source3/smbd/proto.h | 1 | ||||
-rw-r--r-- | source3/smbd/reply.c | 5 | ||||
-rw-r--r-- | source3/smbd/service.c | 9 |
3 files changed, 9 insertions, 6 deletions
diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h index c80ef14a01..221499cead 100644 --- a/source3/smbd/proto.h +++ b/source3/smbd/proto.h @@ -985,6 +985,7 @@ connection_struct *make_connection_smb2(struct smbd_server_connection *sconn, const char *pdev, NTSTATUS *pstatus); connection_struct *make_connection(struct smbd_server_connection *sconn, + NTTIME now, const char *service_in, const char *pdev, uint64_t vuid, NTSTATUS *status); diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 4423e8e190..8db9c623f7 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -666,6 +666,7 @@ void reply_tcon(struct smb_request *req) const char *p; TALLOC_CTX *ctx = talloc_tos(); struct smbd_server_connection *sconn = req->sconn; + NTTIME now = timeval_to_nttime(&req->request_time); START_PROFILE(SMBtcon); @@ -695,7 +696,7 @@ void reply_tcon(struct smb_request *req) service = service_buf; } - conn = make_connection(sconn,service,dev, + conn = make_connection(sconn, now, service, dev, req->vuid,&nt_status); req->conn = conn; @@ -911,7 +912,7 @@ void reply_tcon_and_X(struct smb_request *req) session_key_updated = true; } - conn = make_connection(sconn, service, client_devicetype, + conn = make_connection(sconn, now, service, client_devicetype, req->vuid, &nt_status); req->conn =conn; diff --git a/source3/smbd/service.c b/source3/smbd/service.c index bb28fbfcc8..2214ac0a2d 100644 --- a/source3/smbd/service.c +++ b/source3/smbd/service.c @@ -922,13 +922,13 @@ static NTSTATUS make_connection_snum(struct smbd_server_connection *sconn, ****************************************************************************/ static connection_struct *make_connection_smb1(struct smbd_server_connection *sconn, + NTTIME now, int snum, struct user_struct *vuser, const char *pdev, NTSTATUS *pstatus) { struct smbXsrv_tcon *tcon; NTSTATUS status; - NTTIME now = 0; struct connection_struct *conn; status = smb1srv_tcon_create(sconn->conn, now, &tcon); @@ -1025,6 +1025,7 @@ connection_struct *make_connection_smb2(struct smbd_server_connection *sconn, ****************************************************************************/ connection_struct *make_connection(struct smbd_server_connection *sconn, + NTTIME now, const char *service_in, const char *pdev, uint64_t vuid, NTSTATUS *status) @@ -1078,7 +1079,7 @@ connection_struct *make_connection(struct smbd_server_connection *sconn, } DEBUG(5, ("making a connection to [homes] service " "created at session setup time\n")); - return make_connection_smb1(sconn, + return make_connection_smb1(sconn, now, vuser->homes_snum, vuser, dev, status); @@ -1087,7 +1088,7 @@ connection_struct *make_connection(struct smbd_server_connection *sconn, lp_servicename(talloc_tos(), vuser->homes_snum))) { DEBUG(5, ("making a connection to 'homes' service [%s] " "created at session setup time\n", service_in)); - return make_connection_smb1(sconn, + return make_connection_smb1(sconn, now, vuser->homes_snum, vuser, dev, status); @@ -1139,7 +1140,7 @@ connection_struct *make_connection(struct smbd_server_connection *sconn, DEBUG(5, ("making a connection to 'normal' service %s\n", service)); - return make_connection_smb1(sconn, snum, vuser, + return make_connection_smb1(sconn, now, snum, vuser, dev, status); } |