mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 22:54:05 +08:00
[CIFS] Rename server time zone field
Server time zone is not really a time zone, rather a time adjustement in seconds. CC: Guenter Kukkukk <linux@kukkukk.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
parent
25ee4a98c6
commit
175ec9e11c
@ -465,7 +465,7 @@ static struct super_operations cifs_super_ops = {
|
||||
.umount_begin = cifs_umount_begin,
|
||||
.remount_fs = cifs_remount,
|
||||
#ifdef CONFIG_CIFS_STATS2
|
||||
cifs_show_stats,
|
||||
.cifs_show_stats,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -153,7 +153,7 @@ struct TCP_Server_Info {
|
||||
char sessid[4]; /* unique token id for this session */
|
||||
/* (returned on Negotiate */
|
||||
int capabilities; /* allow selective disabling of caps by smb sess */
|
||||
__u16 timeZone;
|
||||
__u16 timeAdj; /* Adjust for difference in server time zone in sec */
|
||||
__u16 CurrentMid; /* multiplex id - rotating counter */
|
||||
char cryptKey[CIFS_CRYPTO_KEY_SIZE];
|
||||
/* 16th byte of RFC1001 workstation name is always null */
|
||||
|
@ -417,7 +417,10 @@ typedef struct lanman_neg_rsp {
|
||||
__le16 MaxNumberVcs;
|
||||
__le16 RawMode;
|
||||
__le32 SessionKey;
|
||||
__le32 ServerTime;
|
||||
struct {
|
||||
__le16 Time;
|
||||
__le16 Date;
|
||||
} __attribute__((packed)) SrvTime;
|
||||
__le16 ServerTimeZone;
|
||||
__le16 EncryptionKeyLength;
|
||||
__le16 Reserved;
|
||||
|
@ -473,7 +473,6 @@ CIFSSMBNegotiate(unsigned int xid, struct cifsSesInfo *ses)
|
||||
server->maxRw = 0;/* we do not need to use raw anyway */
|
||||
server->capabilities = CAP_MPX_MODE;
|
||||
}
|
||||
server->timeZone = le16_to_cpu(rsp->ServerTimeZone);
|
||||
tmp = le16_to_cpu(rsp->ServerTimeZone);
|
||||
if (tmp == (int)0xffff) {
|
||||
/* OS/2 often does not set timezone therefore
|
||||
@ -492,11 +491,11 @@ CIFSSMBNegotiate(unsigned int xid, struct cifsSesInfo *ses)
|
||||
tmp = (int)(utc.tv_sec - ts.tv_sec);
|
||||
adjust = tmp < 0 ? -29 : 29;
|
||||
tmp = ((tmp + adjust) / 60) * 60;
|
||||
server->timeZone = tmp;
|
||||
server->timeAdj = tmp;
|
||||
} else {
|
||||
server->timeZone = tmp * 60; /* also in seconds */
|
||||
server->timeAdj = tmp * 60; /* also in seconds */
|
||||
}
|
||||
cFYI(1,("server->timeZone: %d seconds", server->timeZone));
|
||||
cFYI(1,("server->timeAdj: %d seconds", server->timeAdj));
|
||||
|
||||
|
||||
/* BB get server time for time conversions and add
|
||||
@ -557,7 +556,7 @@ CIFSSMBNegotiate(unsigned int xid, struct cifsSesInfo *ses)
|
||||
cFYI(0, ("Max buf = %d", ses->server->maxBuf));
|
||||
GETU32(ses->server->sessid) = le32_to_cpu(pSMBr->SessionKey);
|
||||
server->capabilities = le32_to_cpu(pSMBr->Capabilities);
|
||||
server->timeZone = le16_to_cpu(pSMBr->ServerTimeZone);
|
||||
server->timeAdj = le16_to_cpu(pSMBr->ServerTimeZone) * 60;
|
||||
if (pSMBr->EncryptionKeyLength == CIFS_CRYPTO_KEY_SIZE) {
|
||||
memcpy(server->cryptKey, pSMBr->u.EncryptionKey,
|
||||
CIFS_CRYPTO_KEY_SIZE);
|
||||
|
@ -3320,15 +3320,16 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
|
||||
if(linuxExtEnabled == 0)
|
||||
pSesInfo->capabilities &= (~CAP_UNIX);
|
||||
/* pSesInfo->sequence_number = 0;*/
|
||||
cFYI(1,("Security Mode: 0x%x Capabilities: 0x%x Time Zone: %d",
|
||||
cFYI(1,("Security Mode: 0x%x Capabilities: 0x%x TimeAdjust: %d",
|
||||
pSesInfo->server->secMode,
|
||||
pSesInfo->server->capabilities,
|
||||
pSesInfo->server->timeZone));
|
||||
pSesInfo->server->timeAdj));
|
||||
if(experimEnabled < 2)
|
||||
rc = CIFS_SessSetup(xid, pSesInfo,
|
||||
first_time, nls_info);
|
||||
else if (extended_security
|
||||
&& (pSesInfo->capabilities & CAP_EXTENDED_SECURITY)
|
||||
&& (pSesInfo->capabilities
|
||||
& CAP_EXTENDED_SECURITY)
|
||||
&& (pSesInfo->server->secType == NTLMSSP)) {
|
||||
rc = -EOPNOTSUPP;
|
||||
} else if (extended_security
|
||||
@ -3342,7 +3343,7 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
|
||||
if (!rc) {
|
||||
if(ntlmv2_flag) {
|
||||
char * v2_response;
|
||||
cFYI(1,("Can use more secure NTLM version 2 password hash"));
|
||||
cFYI(1,("more secure NTLM ver2 hash"));
|
||||
if(CalcNTLMv2_partial_mac_key(pSesInfo,
|
||||
nls_info)) {
|
||||
rc = -ENOMEM;
|
||||
|
Loading…
Reference in New Issue
Block a user