psi

package
v2.0.9+incompatible Latest Latest
Warning

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

Go to latest
Published: Aug 6, 2019 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExportExchangePayload

func ExportExchangePayload() string

ExportExchangePayload creates a payload for client-to-client server connection info exchange.

ExportExchangePayload will succeed only when Psiphon is running, between Start and Stop.

The return value is a payload that may be exchanged with another client; when "", the export failed and a diagnostic has been logged.

func GetBuildInfo

func GetBuildInfo() string

Get build info from tunnel-core

func GetPacketTunnelDNSResolverIPv4Address

func GetPacketTunnelDNSResolverIPv4Address() string

func GetPacketTunnelDNSResolverIPv6Address

func GetPacketTunnelDNSResolverIPv6Address() string

func GetPacketTunnelMTU

func GetPacketTunnelMTU() int

func ImportExchangePayload

func ImportExchangePayload(payload string) bool

ImportExchangePayload imports a payload generated by ExportExchangePayload.

If an import occurs when Psiphon is working to establsh a tunnel, the newly imported server entry is prioritized.

The return value indicates a successful import. If the import failed, a a diagnostic notice has been logged.

func NoticeUserLog

func NoticeUserLog(message string)

func ReconnectTunnel

func ReconnectTunnel()

ReconnectTunnel initiates a reconnect of the current tunnel, if one is running.

func SendFeedback

func SendFeedback(configJson, diagnosticsJson, b64EncodedPublicKey, uploadServer, uploadPath, uploadServerHeaders string) error

Encrypt and upload feedback.

func SetDynamicConfig

func SetDynamicConfig(newSponsorID, newAuthorizationsList string)

SetDynamicConfig overrides the sponsor ID and authorizations fields set in the config passed to Start. SetDynamicConfig has no effect if no Controller is started.

The input newAuthorizationsList is a space-delimited list of base64 authorizations. This is a workaround for gobind type limitations.

func SetNoticeFiles

func SetNoticeFiles(
	homepageFilename,
	rotatingFilename string,
	rotatingFileSize,
	rotatingSyncFrequency int) error

func Start

func Start(
	configJson,
	embeddedServerEntryList,
	embeddedServerEntryListFilename string,
	provider PsiphonProvider,
	useDeviceBinder,
	useIPv6Synthesizer bool) error

func Stop

func Stop()

func WriteRuntimeProfiles

func WriteRuntimeProfiles(outputDirectory string, cpuSampleDurationSeconds, blockSampleDurationSeconds int)

WriteRuntimeProfiles writes Go runtime profile information to a set of files in the specified output directory. See common.WriteRuntimeProfiles for more details.

If called before Start, log notices will emit to stderr.

Types

type PsiphonProvider

type PsiphonProvider interface {
	Notice(noticeJSON string)
	HasNetworkConnectivity() int
	BindToDevice(fileDescriptor int) (string, error)
	IPv6Synthesize(IPv4Addr string) string
	GetPrimaryDnsServer() string
	GetSecondaryDnsServer() string
	GetNetworkID() string
}

Jump to

Keyboard shortcuts

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