diff options
| author | Andrew Bartlett <abartlet@samba.org> | 2014-01-15 14:48:40 +1300 |
|---|---|---|
| committer | Andrew Bartlett <abartlet@samba.org> | 2014-02-12 13:17:13 +1300 |
| commit | 86850860f871700da02000f5b7af374563134344 (patch) | |
| tree | f667e5e2a3e45f60fa7c37501b4f2b436f9e8041 /source4/smb_server | |
| parent | aea623e050530ad79c47e590373ad8241eb3914d (diff) | |
| download | samba-86850860f871700da02000f5b7af374563134344.tar.gz samba-86850860f871700da02000f5b7af374563134344.tar.xz samba-86850860f871700da02000f5b7af374563134344.zip | |
lib/param: Normalise "read raw" and "write raw" parameters
They have been changed to function like normal parameters,
removing a special case in the loadparm system.
Andrew Bartlett
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Michael Adam <obnox@samba.org>
Diffstat (limited to 'source4/smb_server')
| -rw-r--r-- | source4/smb_server/smb/negprot.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/source4/smb_server/smb/negprot.c b/source4/smb_server/smb/negprot.c index a2d04446e4..d4a1dc9c08 100644 --- a/source4/smb_server/smb/negprot.c +++ b/source4/smb_server/smb/negprot.c @@ -88,7 +88,13 @@ this any more it probably doesn't matter ****************************************************************************/ static void reply_coreplus(struct smbsrv_request *req, uint16_t choice) { - uint16_t raw = (lpcfg_readraw(req->smb_conn->lp_ctx)?1:0) | (lpcfg_writeraw(req->smb_conn->lp_ctx)?2:0); + uint16_t raw; + if (lpcfg_async_smb_echo_handler(req->smb_conn->lp_ctx)) { + raw = 0; + } else { + raw = (lpcfg_read_raw(req->smb_conn->lp_ctx)?1:0) | + (lpcfg_write_raw(req->smb_conn->lp_ctx)?2:0); + } smbsrv_setup_reply(req, 13, 0); @@ -119,7 +125,13 @@ static void reply_coreplus(struct smbsrv_request *req, uint16_t choice) ****************************************************************************/ static void reply_lanman1(struct smbsrv_request *req, uint16_t choice) { - int raw = (lpcfg_readraw(req->smb_conn->lp_ctx)?1:0) | (lpcfg_writeraw(req->smb_conn->lp_ctx)?2:0); + uint16_t raw; + if (lpcfg_async_smb_echo_handler(req->smb_conn->lp_ctx)) { + raw = 0; + } else { + raw = (lpcfg_read_raw(req->smb_conn->lp_ctx)?1:0) | + (lpcfg_write_raw(req->smb_conn->lp_ctx)?2:0); + } int secword=0; time_t t = req->request_time.tv_sec; @@ -174,9 +186,15 @@ static void reply_lanman1(struct smbsrv_request *req, uint16_t choice) ****************************************************************************/ static void reply_lanman2(struct smbsrv_request *req, uint16_t choice) { - int raw = (lpcfg_readraw(req->smb_conn->lp_ctx)?1:0) | (lpcfg_writeraw(req->smb_conn->lp_ctx)?2:0); int secword=0; time_t t = req->request_time.tv_sec; + uint16_t raw; + if (lpcfg_async_smb_echo_handler(req->smb_conn->lp_ctx)) { + raw = 0; + } else { + raw = (lpcfg_read_raw(req->smb_conn->lp_ctx)?1:0) | + (lpcfg_write_raw(req->smb_conn->lp_ctx)?2:0); + } req->smb_conn->negotiate.encrypted_passwords = lpcfg_encrypt_passwords(req->smb_conn->lp_ctx); @@ -272,8 +290,9 @@ static void reply_nt1(struct smbsrv_request *req, uint16_t choice) capabilities |= CAP_LARGE_FILES; } - if (lpcfg_readraw(req->smb_conn->lp_ctx) && - lpcfg_writeraw(req->smb_conn->lp_ctx)) { + if (!lpcfg_async_smb_echo_handler(req->smb_conn->lp_ctx) && + lpcfg_read_raw(req->smb_conn->lp_ctx) && + lpcfg_write_raw(req->smb_conn->lp_ctx)) { capabilities |= CAP_RAW_MODE; } |
