summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/torture/raw/lockbench.c10
-rw-r--r--source4/torture/raw/openbench.c11
2 files changed, 21 insertions, 0 deletions
diff --git a/source4/torture/raw/lockbench.c b/source4/torture/raw/lockbench.c
index 508ef88864..7ec8844cdc 100644
--- a/source4/torture/raw/lockbench.c
+++ b/source4/torture/raw/lockbench.c
@@ -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);
+ }
}
/*
diff --git a/source4/torture/raw/openbench.c b/source4/torture/raw/openbench.c
index 0f4cab4062..537f67ea3a 100644
--- a/source4/torture/raw/openbench.c
+++ b/source4/torture/raw/openbench.c
@@ -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]);
}