diff options
author | Jeremy Allison <jra@samba.org> | 2001-03-13 23:16:39 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2001-03-13 23:16:39 +0000 |
commit | 88028299c6f059399383f69125eff3b797236c40 (patch) | |
tree | f826208d9c02648c3f75a61ae37fc676974dfaf9 /source3 | |
parent | ff0462cde830a306105b9d585a36239f27e38f23 (diff) | |
download | samba-88028299c6f059399383f69125eff3b797236c40.tar.gz samba-88028299c6f059399383f69125eff3b797236c40.tar.bz2 samba-88028299c6f059399383f69125eff3b797236c40.zip |
Fix from Jim McDonough of IBM for using Win9x user manager.
Jeremy.
(This used to be commit f1839d469e1fc6054b407bd8c4d7c505d4212b45)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/smbd/ipc.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source3/smbd/ipc.c b/source3/smbd/ipc.c index 3cc9aca99e..1418d3444f 100644 --- a/source3/smbd/ipc.c +++ b/source3/smbd/ipc.c @@ -36,6 +36,7 @@ extern fstring local_machine; #define NERR_notsupported 50 extern int smb_read_error; +extern uint32 global_client_caps; /******************************************************************* copies parameters and data, as needed, into the smb buffer @@ -102,8 +103,14 @@ void send_trans_reply(char *outbuf, if (buffer_too_large) { /* issue a buffer size warning. on a DCE/RPC pipe, expect an SMBreadX... */ - SIVAL(outbuf, smb_flg2, SVAL(outbuf, smb_flg2) | FLAGS2_32_BIT_ERROR_CODES); - SIVAL(outbuf, smb_rcls, 0x80000000 | STATUS_BUFFER_OVERFLOW); + if (!(global_client_caps & (CAP_NT_SMBS | CAP_STATUS32 ))) { + /* Win9x version. */ + SSVAL(outbuf, smb_err, ERRmoredata); + SCVAL(outbuf, smb_rcls, ERRDOS); + } else { + SIVAL(outbuf, smb_flg2, SVAL(outbuf, smb_flg2) | FLAGS2_32_BIT_ERROR_CODES); + SIVAL(outbuf, smb_rcls, 0x80000000 | STATUS_BUFFER_OVERFLOW); + } } copy_trans_params_and_data(outbuf, align, |