freedom

package
v24.12.6 Latest Latest
Warning

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

Go to latest
Published: Dec 6, 2024 License: MPL-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Config_DomainStrategy_name = map[int32]string{
		0:  "AS_IS",
		1:  "USE_IP",
		2:  "USE_IP4",
		3:  "USE_IP6",
		4:  "USE_IP46",
		5:  "USE_IP64",
		6:  "FORCE_IP",
		7:  "FORCE_IP4",
		8:  "FORCE_IP6",
		9:  "FORCE_IP46",
		10: "FORCE_IP64",
	}
	Config_DomainStrategy_value = map[string]int32{
		"AS_IS":      0,
		"USE_IP":     1,
		"USE_IP4":    2,
		"USE_IP6":    3,
		"USE_IP46":   4,
		"USE_IP64":   5,
		"FORCE_IP":   6,
		"FORCE_IP4":  7,
		"FORCE_IP6":  8,
		"FORCE_IP46": 9,
		"FORCE_IP64": 10,
	}
)

Enum value maps for Config_DomainStrategy.

View Source
var File_proxy_freedom_config_proto protoreflect.FileDescriptor

Functions

func GenerateRandomBytes

func GenerateRandomBytes(n int64) ([]byte, error)

func NewPacketReader

func NewPacketReader(conn net.Conn, UDPOverride net.Destination) buf.Reader

func NewPacketWriter

func NewPacketWriter(conn net.Conn, h *Handler, ctx context.Context, UDPOverride net.Destination) buf.Writer

Types

type Config

type Config struct {
	DomainStrategy      Config_DomainStrategy `` /* 150-byte string literal not displayed */
	DestinationOverride *DestinationOverride  `protobuf:"bytes,3,opt,name=destination_override,json=destinationOverride,proto3" json:"destination_override,omitempty"`
	UserLevel           uint32                `protobuf:"varint,4,opt,name=user_level,json=userLevel,proto3" json:"user_level,omitempty"`
	Fragment            *Fragment             `protobuf:"bytes,5,opt,name=fragment,proto3" json:"fragment,omitempty"`
	ProxyProtocol       uint32                `protobuf:"varint,6,opt,name=proxy_protocol,json=proxyProtocol,proto3" json:"proxy_protocol,omitempty"`
	Noises              []*Noise              `protobuf:"bytes,7,rep,name=noises,proto3" json:"noises,omitempty"`
	// contains filtered or unexported fields
}

func (*Config) Descriptor deprecated

func (*Config) Descriptor() ([]byte, []int)

Deprecated: Use Config.ProtoReflect.Descriptor instead.

func (*Config) GetDestinationOverride

func (x *Config) GetDestinationOverride() *DestinationOverride

func (*Config) GetDomainStrategy

func (x *Config) GetDomainStrategy() Config_DomainStrategy

func (*Config) GetFragment

func (x *Config) GetFragment() *Fragment

func (*Config) GetNoises

func (x *Config) GetNoises() []*Noise

func (*Config) GetProxyProtocol

func (x *Config) GetProxyProtocol() uint32

func (*Config) GetUserLevel

func (x *Config) GetUserLevel() uint32

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) ProtoReflect

func (x *Config) ProtoReflect() protoreflect.Message

func (*Config) Reset

func (x *Config) Reset()

func (*Config) String

func (x *Config) String() string

type Config_DomainStrategy

type Config_DomainStrategy int32
const (
	Config_AS_IS      Config_DomainStrategy = 0
	Config_USE_IP     Config_DomainStrategy = 1
	Config_USE_IP4    Config_DomainStrategy = 2
	Config_USE_IP6    Config_DomainStrategy = 3
	Config_USE_IP46   Config_DomainStrategy = 4
	Config_USE_IP64   Config_DomainStrategy = 5
	Config_FORCE_IP   Config_DomainStrategy = 6
	Config_FORCE_IP4  Config_DomainStrategy = 7
	Config_FORCE_IP6  Config_DomainStrategy = 8
	Config_FORCE_IP46 Config_DomainStrategy = 9
	Config_FORCE_IP64 Config_DomainStrategy = 10
)

func (Config_DomainStrategy) Descriptor

func (Config_DomainStrategy) Enum

func (Config_DomainStrategy) EnumDescriptor deprecated

func (Config_DomainStrategy) EnumDescriptor() ([]byte, []int)

Deprecated: Use Config_DomainStrategy.Descriptor instead.

func (Config_DomainStrategy) Number

func (Config_DomainStrategy) String

func (x Config_DomainStrategy) String() string

func (Config_DomainStrategy) Type

type DestinationOverride

type DestinationOverride struct {
	Server *protocol.ServerEndpoint `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
	// contains filtered or unexported fields
}

func (*DestinationOverride) Descriptor deprecated

func (*DestinationOverride) Descriptor() ([]byte, []int)

Deprecated: Use DestinationOverride.ProtoReflect.Descriptor instead.

func (*DestinationOverride) GetServer

func (*DestinationOverride) ProtoMessage

func (*DestinationOverride) ProtoMessage()

func (*DestinationOverride) ProtoReflect

func (x *DestinationOverride) ProtoReflect() protoreflect.Message

func (*DestinationOverride) Reset

func (x *DestinationOverride) Reset()

func (*DestinationOverride) String

func (x *DestinationOverride) String() string

type Fragment

type Fragment struct {
	PacketsFrom uint64 `protobuf:"varint,1,opt,name=packets_from,json=packetsFrom,proto3" json:"packets_from,omitempty"`
	PacketsTo   uint64 `protobuf:"varint,2,opt,name=packets_to,json=packetsTo,proto3" json:"packets_to,omitempty"`
	LengthMin   uint64 `protobuf:"varint,3,opt,name=length_min,json=lengthMin,proto3" json:"length_min,omitempty"`
	LengthMax   uint64 `protobuf:"varint,4,opt,name=length_max,json=lengthMax,proto3" json:"length_max,omitempty"`
	IntervalMin uint64 `protobuf:"varint,5,opt,name=interval_min,json=intervalMin,proto3" json:"interval_min,omitempty"`
	IntervalMax uint64 `protobuf:"varint,6,opt,name=interval_max,json=intervalMax,proto3" json:"interval_max,omitempty"`
	// contains filtered or unexported fields
}

func (*Fragment) Descriptor deprecated

func (*Fragment) Descriptor() ([]byte, []int)

Deprecated: Use Fragment.ProtoReflect.Descriptor instead.

func (*Fragment) GetIntervalMax

func (x *Fragment) GetIntervalMax() uint64

func (*Fragment) GetIntervalMin

func (x *Fragment) GetIntervalMin() uint64

func (*Fragment) GetLengthMax

func (x *Fragment) GetLengthMax() uint64

func (*Fragment) GetLengthMin

func (x *Fragment) GetLengthMin() uint64

func (*Fragment) GetPacketsFrom

func (x *Fragment) GetPacketsFrom() uint64

func (*Fragment) GetPacketsTo

func (x *Fragment) GetPacketsTo() uint64

func (*Fragment) ProtoMessage

func (*Fragment) ProtoMessage()

func (*Fragment) ProtoReflect

func (x *Fragment) ProtoReflect() protoreflect.Message

func (*Fragment) Reset

func (x *Fragment) Reset()

func (*Fragment) String

func (x *Fragment) String() string

type FragmentWriter

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

func (*FragmentWriter) Write

func (f *FragmentWriter) Write(b []byte) (int, error)

type Handler

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

Handler handles Freedom connections.

func (*Handler) Init

func (h *Handler) Init(config *Config, pm policy.Manager, d dns.Client) error

Init initializes the Handler with necessary parameters.

func (*Handler) Process

func (h *Handler) Process(ctx context.Context, link *transport.Link, dialer internet.Dialer) error

Process implements proxy.Outbound.

type Noise

type Noise struct {
	LengthMin uint64 `protobuf:"varint,1,opt,name=length_min,json=lengthMin,proto3" json:"length_min,omitempty"`
	LengthMax uint64 `protobuf:"varint,2,opt,name=length_max,json=lengthMax,proto3" json:"length_max,omitempty"`
	DelayMin  uint64 `protobuf:"varint,3,opt,name=delay_min,json=delayMin,proto3" json:"delay_min,omitempty"`
	DelayMax  uint64 `protobuf:"varint,4,opt,name=delay_max,json=delayMax,proto3" json:"delay_max,omitempty"`
	StrNoise  []byte `protobuf:"bytes,5,opt,name=str_noise,json=strNoise,proto3" json:"str_noise,omitempty"`
	// contains filtered or unexported fields
}

func (*Noise) Descriptor deprecated

func (*Noise) Descriptor() ([]byte, []int)

Deprecated: Use Noise.ProtoReflect.Descriptor instead.

func (*Noise) GetDelayMax

func (x *Noise) GetDelayMax() uint64

func (*Noise) GetDelayMin

func (x *Noise) GetDelayMin() uint64

func (*Noise) GetLengthMax

func (x *Noise) GetLengthMax() uint64

func (*Noise) GetLengthMin

func (x *Noise) GetLengthMin() uint64

func (*Noise) GetStrNoise

func (x *Noise) GetStrNoise() []byte

func (*Noise) ProtoMessage

func (*Noise) ProtoMessage()

func (*Noise) ProtoReflect

func (x *Noise) ProtoReflect() protoreflect.Message

func (*Noise) Reset

func (x *Noise) Reset()

func (*Noise) String

func (x *Noise) String() string

type NoisePacketWriter

type NoisePacketWriter struct {
	buf.Writer

	UDPOverride net.Destination
	// contains filtered or unexported fields
}

func (*NoisePacketWriter) WriteMultiBuffer

func (w *NoisePacketWriter) WriteMultiBuffer(mb buf.MultiBuffer) error

MultiBuffer writer with Noise before first packet

type PacketReader

type PacketReader struct {
	*internet.PacketConnWrapper
	stats.Counter
}

func (*PacketReader) ReadMultiBuffer

func (r *PacketReader) ReadMultiBuffer() (buf.MultiBuffer, error)

type PacketWriter

type PacketWriter struct {
	*internet.PacketConnWrapper
	stats.Counter
	*Handler
	context.Context
	UDPOverride net.Destination
}

func (*PacketWriter) WriteMultiBuffer

func (w *PacketWriter) WriteMultiBuffer(mb buf.MultiBuffer) error

Jump to

Keyboard shortcuts

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