Revert "Fix signing bug found by Volker. That one was *subtle*."
[samba.git] / source / libsmb / clitrans.c
index f43a2aa0284a6c5ccdf2d0444f369eafc45419a7..f212f499940620110264aa97c6ebd4b1da57a0e5 100644 (file)
@@ -95,9 +95,14 @@ BOOL cli_send_trans(struct cli_state *cli, int trans,
                return False;
        }
 
+       /* Note we're in a trans state. Save the sequence
+        * numbers for replies. */
+       client_set_trans_sign_state_on(cli, mid);
+
        if (this_ldata < ldata || this_lparam < lparam) {
                /* receive interim response */
                if (!cli_receive_smb(cli) || cli_is_error(cli)) {
+                       client_set_trans_sign_state_off(cli, mid);
                        return(False);
                }
 
@@ -139,6 +144,7 @@ BOOL cli_send_trans(struct cli_state *cli, int trans,
 
                        show_msg(cli->outbuf);
                        if (!cli_send_smb(cli)) {
+                               client_set_trans_sign_state_off(cli, mid);
                                return False;
                        }
 
@@ -317,6 +323,7 @@ BOOL cli_receive_trans(struct cli_state *cli,int trans,
 
   out:
 
+       client_set_trans_sign_state_off(cli, SVAL(cli->inbuf,smb_mid));
        return ret;
 }
 
@@ -384,9 +391,14 @@ BOOL cli_send_nt_trans(struct cli_state *cli,
                return False;
        }       
 
+       /* Note we're in a trans state. Save the sequence
+        * numbers for replies. */
+       client_set_trans_sign_state_on(cli, mid);
+
        if (this_ldata < ldata || this_lparam < lparam) {
                /* receive interim response */
                if (!cli_receive_smb(cli) || cli_is_error(cli)) {
+                       client_set_trans_sign_state_off(cli, mid);
                        return(False);
                }
 
@@ -428,6 +440,7 @@ BOOL cli_send_nt_trans(struct cli_state *cli,
                        show_msg(cli->outbuf);
 
                        if (!cli_send_smb(cli)) {
+                               client_set_trans_sign_state_off(cli, mid);
                                return False;
                        }
                        
@@ -627,5 +640,6 @@ BOOL cli_receive_nt_trans(struct cli_state *cli,
 
   out:
 
+       client_set_trans_sign_state_off(cli, SVAL(cli->inbuf,smb_mid));
        return ret;
 }