nameshift

package module
v0.0.0-...-8210861 Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2024 License: Apache-2.0 Imports: 19 Imported by: 0

README

example

Name

example - prints "example" after a query is handled.

Description

The example plugin prints "example" on every query that got handled by the server. It serves as documentation for writing CoreDNS plugins.

Compilation

This package will always be compiled as part of CoreDNS and not in a standalone way. It will require you to use go get or as a dependency on plugin.cfg.

The manual will have more information about how to configure and extend the server with external plugins.

A simple way to consume this plugin, is by adding the following on plugin.cfg, and recompile it as detailed on coredns.io.

example:github.com/coredns/example

Put this early in the plugin list, so that example is executed before any of the other plugins.

After this you can compile coredns by:

go generate
go build

Or you can instead use make:

make

Syntax

example

Metrics

If monitoring is enabled (via the prometheus directive) the following metric is exported:

  • coredns_example_request_count_total{server} - query count to the example plugin.

The server label indicated which server handled the request, see the metrics plugin for details.

Ready

This plugin reports readiness to the ready plugin. It will be immediately ready.

Examples

In this configuration, we forward all queries to 9.9.9.9 and print "example" whenever we receive a query.

. {
  forward . 9.9.9.9
  example
}

Or without any external connectivity:

. {
  whoami
  example
}

Also See

See the manual.

Documentation

Overview

Package nameshift is a CoreDNS plugin that prints "nameshift" to stdout on every packet received. It serves as an nameshift CoreDNS plugin with numerous code comments.

Index

Constants

View Source
const (
	DefaultRedisAddress  = "127.0.0.1:6379"
	DefaultRedisUsername = "default"
)

Variables

This section is empty.

Functions

func NewCAA

func NewCAA(fqdn string, flag uint8, tag string, value string) dns.RR

Types

type Nameshift

type Nameshift struct {
	Next   plugin.Handler
	Prefix string
	Client *redis.Client
	// contains filtered or unexported fields
}

Nameshift is an nameshift plugin to show how to write a plugin.

func (Nameshift) Name

func (e Nameshift) Name() string

Name implements the Handler interface.

func (Nameshift) Ready

func (e Nameshift) Ready() bool

Ready implements the ready.Readiness interface, once this flips to true CoreDNS assumes this plugin is ready for queries; it is not checked again.

func (Nameshift) ServeDNS

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

ServeDNS implements the plugin.Handler interface. This method gets called when nameshift is used in a Server.

type RedisRecord

type RedisRecord struct {
	SidnIdcode *string `json:"sidnIdcode"`
	Identifier string  `json:"identifier"`
	A          string  `json:"a"`
	Aaaa       string  `json:"aaaa"`
}

Jump to

Keyboard shortcuts

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