diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-10-17 22:28:26 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:59:59 -0500 |
commit | ca7e02fd3708a048cd691e6c2fc0357ffcc3b694 (patch) | |
tree | 320c69a9e953113ced59659cba4406445a74cd83 /source4/torture/local | |
parent | 9a499a801006950bd44d30e8b136685c3a197d48 (diff) | |
download | samba-ca7e02fd3708a048cd691e6c2fc0357ffcc3b694.tar.gz samba-ca7e02fd3708a048cd691e6c2fc0357ffcc3b694.tar.bz2 samba-ca7e02fd3708a048cd691e6c2fc0357ffcc3b694.zip |
r3026: - added automatic retry to messages when the servers listen queue is
full. This means callers can just "send and forget" rather than
having to check for a temporary failure. The mechanism takes nice
advantage of the timed events handling is our events code. A message
will only fail now if we completely run out of some resource (such
as memory).
- changed the test code not to do retries itself, but only to warn on real failures
(This used to be commit 8cddc610a25e64c1ad39dd6a2fc2e7f467e04fc9)
Diffstat (limited to 'source4/torture/local')
-rw-r--r-- | source4/torture/local/messaging.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/source4/torture/local/messaging.c b/source4/torture/local/messaging.c index d4aaf80f4f..6177bc82a8 100644 --- a/source4/torture/local/messaging.c +++ b/source4/torture/local/messaging.c @@ -28,9 +28,10 @@ static void ping_message(void *msg_ctx, void *private, uint32_t msg_type, servid_t src, DATA_BLOB *data) { NTSTATUS status; - do { - status = messaging_send(msg_ctx, src, MY_PONG, data); - } while (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)); + status = messaging_send(msg_ctx, src, MY_PONG, data); + if (!NT_STATUS_IS_OK(status)) { + printf("pong failed - %s\n", nt_errstr(status)); + } } static void pong_message(void *msg_ctx, void *private, @@ -85,15 +86,17 @@ static BOOL test_ping_speed(TALLOC_CTX *mem_ctx) status1 = messaging_send(msg_ctx, 1, MY_PING, &data); status2 = messaging_send(msg_ctx, 1, MY_PING, NULL); - if (NT_STATUS_IS_OK(status1)) { - ping_count++; + if (!NT_STATUS_IS_OK(status1)) { + printf("msg1 failed - %s\n", nt_errstr(status1)); } - if (NT_STATUS_IS_OK(status2)) { - ping_count++; + if (!NT_STATUS_IS_OK(status2)) { + printf("msg2 failed - %s\n", nt_errstr(status2)); } - while (ping_count > pong_count + 10) { + ping_count += 2; + + while (ping_count > pong_count + 20) { event_loop_once(ev); } } |