r23139: use echo operations once a second in lockbench and openbench to ensure
authorAndrew Tridgell <tridge@samba.org>
Fri, 25 May 2007 10:43:06 +0000 (10:43 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:52:55 +0000 (14:52 -0500)
we detect IP takeover on servers
(This used to be commit b5292a25edf1c071dea19877fb6b31f2501132ef)

source4/torture/raw/lockbench.c
source4/torture/raw/openbench.c

index 508ef88864b35817a8dedba33aeace7d3af894e4..7ec8844cdc2bc85fbad3c80192964c893703f4bd 100644 (file)
@@ -257,6 +257,16 @@ static void report_rate(struct event_context *ev, struct timed_event *te,
        printf("\r");
        fflush(stdout);
        event_add_timed(ev, state, timeval_current_ofs(1, 0), report_rate, state);
+
+       /* send an echo on each interface to ensure it stays alive - this helps
+          with IP takeover */
+       for (i=0;i<nprocs;i++) {
+               struct smb_echo p;
+               p.in.repeat_count = 0;
+               p.in.size = 0;
+               p.in.data = NULL;
+               smb_raw_echo_send(state[i].tree->session->transport, &p);
+       }
 }
 
 /* 
index 0f4cab40627773bd02c098c7d1c75ca053d76973..537f67ea3ab76656c9f08e1719e643164c2799c0 100644 (file)
@@ -297,6 +297,16 @@ static void report_rate(struct event_context *ev, struct timed_event *te,
        printf("\r");
        fflush(stdout);
        event_add_timed(ev, state, timeval_current_ofs(1, 0), report_rate, state);
+
+       /* send an echo on each interface to ensure it stays alive - this helps
+          with IP takeover */
+       for (i=0;i<nprocs;i++) {
+               struct smb_echo p;
+               p.in.repeat_count = 0;
+               p.in.size = 0;
+               p.in.data = NULL;
+               smb_raw_echo_send(state[i].tree->session->transport, &p);
+       }
 }
 
 /* 
@@ -355,6 +365,7 @@ BOOL torture_bench_open(struct torture_context *torture)
                state[i].fnum = smbcli_open(state[i].tree, 
                                            fnames[state->file_num], 
                                            O_RDWR|O_CREAT, DENY_ALL);
+               state[i].old_fnum = state[i].fnum;
                state[i].stage = OPEN_OPEN;
                next_operation(&state[i]);
        }