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 | f1839d469e1fc6054b407bd8c4d7c505d4212b45 (patch) | |
tree | 137f85a87be28ed9cab38ac93cbc24693ce0cd2f /source/smbd/ipc.c | |
parent | a6dd6662267eeddf368ff0ffba76b45761bf4eeb (diff) | |
download | samba-f1839d469e1fc6054b407bd8c4d7c505d4212b45.tar.gz samba-f1839d469e1fc6054b407bd8c4d7c505d4212b45.tar.xz samba-f1839d469e1fc6054b407bd8c4d7c505d4212b45.zip |
Fix from Jim McDonough of IBM for using Win9x user manager.
Jeremy.
Diffstat (limited to 'source/smbd/ipc.c')
-rw-r--r-- | source/smbd/ipc.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source/smbd/ipc.c b/source/smbd/ipc.c index 3cc9aca99e2..1418d3444fa 100644 --- a/source/smbd/ipc.c +++ b/source/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, |