# Packages
Package psinet implements psinet database services.
# Functions
CommonLogger wraps a ContextLogger instance with an interface that conforms to common.Logger.
GenerateConfig creates a new Psiphon server config.
InitLogging configures a logger according to the specified config params.
LoadConfig loads and validates a JSON encoded server config.
NewCachedResponse creates a CachedResponse with a fixed buffer of size bufferSize and borrowing buffers from extendedBufferPool.
NewCachedResponseBufferPool creates a new CachedResponseBufferPool with the specified number of buffers.
NewDNSResolver initializes a new DNSResolver, loading it with fresh resolver values.
NewGeoIPData returns a GeoIPData initialized with the expected GEOIP_UNKNOWN_VALUE values to be used when GeoIP lookup fails.
NewGeoIPService initializes a new GeoIPService.
NewIntentionalPanicError creates a new IntentionalPanicError.
NewLogWriter returns an io.PipeWriter that can be used to write to the global logger.
NewMeekServer initializes a new meek server.
NewPanickingLogWriter creates a new PanickingLogWriter.
NewSupportServices initializes a new SupportServices.
NewTrafficRulesSet initializes a TrafficRulesSet with the rules data in the specified config file.
NewTunnelServer initializes a new tunnel server.
RunServices initializes support functions including logging and GeoIP services; and then starts the server components and runs them until os.Interrupt or os.Kill signals are received.
RunWebServer runs a web server which supports tunneled and untunneled Psiphon API requests.
# Constants
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
256KB.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Protocol version 1 clients can handle arbitrary length response bodies.
Protocol version 2 clients initiate a session by sending an encrypted and obfuscated meek cookie with their initial HTTP request.
Protocol version 3 clients include resiliency enhancements and will add a Range header when retrying a request for a partially downloaded response payload.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
CachedResponse is a data structure that supports meek protocol connection interruption resiliency: it stores payload data from the most recent response so that it may be resent if the client fails to receive it.
CachedResponseBufferPool is a fixed-size pool of fixed-size buffers that are used to temporarily extend the capacity of CachedResponses.
Config specifies the configuration and behavior of a Psiphon server.
ContextLogger adds context logging functionality to the underlying logging packages.
CustomJSONFormatter is a customized version of logrus.JSONFormatter.
DNSResolver maintains fresh DNS resolver values, monitoring "/etc/resolv.conf" on platforms where it is available; and otherwise using a default value.
GenerateConfigParams specifies customizations to be applied to a generated server config.
GeoIPData is GeoIP data for a client session.
GeoIPService implements GeoIP lookup and session/GeoIP caching.
HTTPSServer is a wrapper around http.Server which adds the ServeTLS function.
IntentionalPanicError is an error type that is used when calling panic() in a situation where recovers should propagate the panic.
MeekServer implements the meek protocol, which tunnels TCP traffic (in the case of Psiphon, Obfuscated SSH traffic) over HTTP.
PanickingLogWriter wraps an io.Writer and intentionally panics when a Write() fails.
RateLimits is a clone of common.RateLimits with pointers to fields to enable distinguishing between zero values and omitted values in JSON serialized traffic rules.
SupportServices carries common and shared data components across different server components.
TrafficRules specify the limits placed on client traffic.
TrafficRulesFilter defines a filter to match against client attributes.
TrafficRulesSet represents the various traffic rules to apply to Psiphon client tunnels.
TunnelServer is the main server that accepts Psiphon client connections, via various obfuscation protocols, and provides port forwarding (TCP and UDP) services to the Psiphon client.
# Type aliases
LogFields is an alias for the field struct in the underlying logging package.
No description provided by the author
No description provided by the author