Helper functions for contruct_reply.
****************************************************************************/
-static uint32 common_flags2 = FLAGS2_LONG_PATH_COMPONENTS|FLAGS2_EXTENDED_SECURITY;
+static uint32 common_flags2 = FLAGS2_LONG_PATH_COMPONENTS|FLAGS2_EXTENDED_SECURITY|FLAGS2_32_BIT_ERROR_CODES;
-void add_to_common_flags2(uint32 v)
+void remove_from_common_flags2(uint32 v)
{
- common_flags2 |= v;
+ common_flags2 &= ~v;
}
void construct_reply_common(char *inbuf,char *outbuf)
if (global_client_caps == 0) {
global_client_caps = IVAL(inbuf,smb_vwv10);
- if (global_client_caps & CAP_STATUS32) {
- add_to_common_flags2(FLAGS2_32_BIT_ERROR_CODES);
+ if (!(global_client_caps & CAP_STATUS32)) {
+ remove_from_common_flags2(FLAGS2_32_BIT_ERROR_CODES);
}
}
if(global_client_caps == 0) {
global_client_caps = IVAL(inbuf,smb_vwv11);
- if (global_client_caps & CAP_STATUS32) {
- add_to_common_flags2(FLAGS2_32_BIT_ERROR_CODES);
+ if (!(global_client_caps & CAP_STATUS32)) {
+ remove_from_common_flags2(FLAGS2_32_BIT_ERROR_CODES);
}
/* client_caps is used as final determination if client is NT or Win95.