summaryrefslogtreecommitdiffstats
path: root/source4/smb_server
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2014-01-15 14:48:40 +1300
committerAndrew Bartlett <abartlet@samba.org>2014-02-12 13:17:13 +1300
commit86850860f871700da02000f5b7af374563134344 (patch)
treef667e5e2a3e45f60fa7c37501b4f2b436f9e8041 /source4/smb_server
parentaea623e050530ad79c47e590373ad8241eb3914d (diff)
downloadsamba-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.c29
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;
}