package godebug

import "internal/godebug"

Package godebug makes the settings in the $GODEBUG environment variable available to other packages. These settings are often used for compatibility tweaks, when we need to change a default behavior but want to let users opt back in to the original. For example GODEBUG=http2server=0 disables HTTP/2 support in the net/http server.

In typical usage, code should declare a Setting as a global and then call Value each time the current setting value is needed:

var http2server = godebug.New("http2server")

func ServeConn(c net.Conn) {
	if http2server.Value() == "0" {
		disallow HTTP/2
		...
	}
	...
}

Index

Types

type Setting

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

A Setting is a single setting in the $GODEBUG environment variable.

func New

func New(name string) *Setting

New returns a new Setting for the $GODEBUG setting with the given name.

func (*Setting) Name

func (s *Setting) Name() string

Name returns the name of the setting.

func (*Setting) String

func (s *Setting) String() string

String returns a printable form for the setting: name=value.

func (*Setting) Value

func (s *Setting) Value() string

Value returns the current value for the GODEBUG setting s.

Value maintains an internal cache that is synchronized with changes to the $GODEBUG environment variable, making Value efficient to call as frequently as needed. Clients should therefore typically not attempt their own caching of Value's result.

Source Files

godebug.go

Version
v1.20.0
Published
Jan 30, 2023
Platform
windows/amd64
Imports
3 packages
Last checked
4 minutes ago

Tools for package owners.