erratic

package
v0.0.0-...-2ec96e0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2017 License: Apache-2.0 Imports: 10 Imported by: 0

README

erratic

erratic is a middleware useful for testing client behavior. It returns a static response to all queries, but the responses can be:

  • delayed by some duration
  • dropped all together
  • the truncated bit can be set

The erratic middleware will respond to every A or AAAA query. For any other type it will return a SERVFAIL response. The reply for A will return 192.0.2.53 (see RFC 5737), for AAAA it returns 2001:DB8::53 (see RFC 3849).

Syntax

erratic {
    drop [AMOUNT]
    truncate [AMOUNT]
    delay [AMOUNT [DURATION]]
}
  • drop: drop 1 per AMOUNT of queries, the default is 2.
  • truncate: truncate 1 per AMOUNT of queries, the default is 2.
  • delay: delay 1 per AMOUNT of queries for DURATION, the default for AMOUNT is 2 and the default for DURATION is 100ms.

Examples

.:53 {
    erratic {
        drop 3
    }
}

Or even shorter if the defaults suits you. Note this only drops queries, it does not delay them.

. {
    erratic
}

Delay 1 in 3 queries for 50ms

. {
    erratic {
        delay 3 50ms
    }
}

Delay 1 in 3 and truncate 1 in 5.

. {
    erratic {
        delay 3 5ms
        truncate 5
    }
}

Drop every second query.

. {
    erratic {
        drop 2
        truncate 2
    }
}

Documentation

Overview

Package erratic implements a middleware that returns erratic answers (delayed, dropped).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Erratic

type Erratic struct {
	// contains filtered or unexported fields
}

Erratic is a middleware that returns erratic repsonses to each client.

func (*Erratic) Name

func (e *Erratic) Name() string

Name implements the Handler interface.

func (*Erratic) ServeDNS

func (e *Erratic) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error)

ServeDNS implements the middleware.Handler interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL