bincommon

package
v1.57.5 Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2023 License: Apache-2.0 Imports: 11 Imported by: 4

Documentation

Overview

Package bincommon is the common code and flag handling between the fortio (fortio_main.go) and fcurl (fcurl.go) executables.

Index

Constants

This section is empty.

Variables

View Source
var (

	// PayloadSizeFlag is the value of -payload-size.
	PayloadSizeFlag = flag.Int("payload-size", 0, "Additional random payload size, replaces -payload when set > 0,"+
		" must be smaller than -maxpayloadsizekb. Setting this switches http to POST.")
	// PayloadFlag is the value of -payload.
	PayloadFlag = flag.String("payload", "", "Payload string to send along")
	// PayloadFileFlag is the value of -paylaod-file.
	PayloadFileFlag = flag.String("payload-file", "", "File `path` to be use as payload (POST for http), replaces -payload when set.")
	// PayloadStreamFlag for streaming payload from stdin (curl only).
	PayloadStreamFlag = flag.Bool("stream", false, "Stream payload from stdin (only for fortio curl mode)")

	// CertFlag is the flag for the path for the client custom certificate.
	CertFlag = flag.String("cert", "", "`Path` to the certificate file to be used for client or server TLS")
	// KeyFlag is the flag for the path for the key for the `cert`.
	KeyFlag = flag.String("key", "", "`Path` to the key file matching the -cert")
	// CACertFlag is the flag for the path of the custom CA to verify server certificates in client calls.
	CACertFlag = flag.String("cacert", "",
		"`Path` to a custom CA certificate file to be used for the TLS client connections, "+
			"if empty, use https:// prefix for standard internet/system CAs")

	// LogErrorsFlag determines if the non ok http error codes get logged as they occur or not.
	LogErrorsFlag = flag.Bool("log-errors", true, "Log http non 2xx/418 error codes as they occur")
	// RunIDFlag is optional RunID to be present in json results (and default json result filename if not 0).
	RunIDFlag = flag.Int64("runid", 0, "Optional RunID to add to json result and auto save filename, to match server mode")

	// ConnectionReuseRange Dynamic string flag to set the max connection reuse range.
	ConnectionReuseRange = dflag.Flag("connection-reuse", dflag.New("",
		"Range `min:max` for the max number of connections to reuse for each thread, default to unlimited. "+
			"e.g. 10:30 means randomly choose a max connection reuse threshold between 10 and 30 requests.").
		WithValidator(ConnectionReuseRangeValidator(&httpOpts)))
	// NoReResolveFlag is false if we want to resolve the DNS name for each new connection.
	NoReResolveFlag = flag.Bool("no-reresolve", false, "Keep the initial DNS resolution and "+
		"don't re-resolve when making new connections (because of error or reuse limit reached)")
	MethodFlag = flag.String("X", "", "HTTP method to use instead of GET/POST depending on payload/content-type")
)

Functions

func ConnectionReuseRangeValidator added in v1.34.0

func ConnectionReuseRangeValidator(httpOpts *fhttp.HTTPOptions) func(string) error

ConnectionReuseRangeValidator returns a validator function that checks if the connection reuse range is valid and set in httpOpts.

func FetchURL

func FetchURL(o *fhttp.HTTPOptions)

FetchURL is fetching url content and exiting with 1 upon error. common part between fortio_main and fcurl.

func SharedHTTPOptions

func SharedHTTPOptions() *fhttp.HTTPOptions

SharedHTTPOptions is the flag->httpoptions transfer code shared between fortio_main and fcurl.

func SharedMain

func SharedMain()

SharedMain is the common part of main from fortio_main and fcurl. It sets up the common flags, the rest of usage/argument/flag handling is now moved to the fortio.org/cli and fortio.org/scli packages.

func TLSInsecure added in v1.12.2

func TLSInsecure() bool

TLSInsecure returns true if -k or -https-insecure was passed.

Types

type FortioHook added in v1.39.0

type FortioHook func(*fhttp.HTTPOptions, *periodic.RunnerOptions)

FortioHook is used in cli and rapi to customize the run and introduce for instance clienttrace and otel access logger.

Jump to

Keyboard shortcuts

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