diff options
Diffstat (limited to 'source3/smbd/reply.c')
-rw-r--r-- | source3/smbd/reply.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 6b1d28abe0..4b0400fe6c 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -636,7 +636,8 @@ static int bad_password_error(char *inbuf,char *outbuf) { enum remote_arch_types ra_type = get_remote_arch(); - if(ra_type == RA_WINNT && (global_client_caps & (CAP_NT_SMBS | CAP_STATUS32 ))) { + if(((ra_type == RA_WINNT) || (ra_type == RA_WIN2K)) && + (global_client_caps & (CAP_NT_SMBS | CAP_STATUS32 ))) { SSVAL(outbuf,smb_flg2,FLAGS2_32_BIT_ERROR_CODES); return(ERROR(0,0xc0000000|NT_STATUS_LOGON_FAILURE)); } @@ -702,11 +703,10 @@ int reply_sesssetup_and_X(connection_struct *conn, char *inbuf,char *outbuf,int circumstances. */ - if(ra_type == RA_WINNT || ra_type == RA_WIN95) { - if(global_client_caps & (CAP_NT_SMBS | CAP_STATUS32)) - set_remote_arch( RA_WINNT); - else + if(ra_type == RA_WINNT || ra_type == RA_WIN2K || ra_type == RA_WIN95) { + if(!(global_client_caps & (CAP_NT_SMBS | CAP_STATUS32))) { set_remote_arch( RA_WIN95); + } } if (passlen1 != 24 && passlen2 != 24) |