checkhttpv1

package
v1.1.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: Mar 24, 2023 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Package checkhttpv1 is a reverse proxy.

It translates gRPC into RESTful JSON APIs.

Code generated by protoc-gen-deepcopy. DO NOT EDIT.

Index

Constants

This section is empty.

Variables

View Source
var (
	SocketAddress_Protocol_name = map[int32]string{
		0: "TCP",
		1: "UDP",
	}
	SocketAddress_Protocol_value = map[string]int32{
		"TCP": 0,
		"UDP": 1,
	}
)

Enum value maps for SocketAddress_Protocol.

View Source
var File_aperture_flowcontrol_checkhttp_v1_checkhttp_proto protoreflect.FileDescriptor
View Source
var FlowControlServiceHTTP_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "aperture.flowcontrol.checkhttp.v1.FlowControlServiceHTTP",
	HandlerType: (*FlowControlServiceHTTPServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CheckHTTP",
			Handler:    _FlowControlServiceHTTP_CheckHTTP_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "aperture/flowcontrol/checkhttp/v1/checkhttp.proto",
}

FlowControlServiceHTTP_ServiceDesc is the grpc.ServiceDesc for FlowControlServiceHTTP service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func RegisterFlowControlServiceHTTPHandler

func RegisterFlowControlServiceHTTPHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error

RegisterFlowControlServiceHTTPHandler registers the http handlers for service FlowControlServiceHTTP to "mux". The handlers forward requests to the grpc endpoint over "conn".

func RegisterFlowControlServiceHTTPHandlerClient

func RegisterFlowControlServiceHTTPHandlerClient(ctx context.Context, mux *runtime.ServeMux, client FlowControlServiceHTTPClient) error

RegisterFlowControlServiceHTTPHandlerClient registers the http handlers for service FlowControlServiceHTTP to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "FlowControlServiceHTTPClient". Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "FlowControlServiceHTTPClient" doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in "FlowControlServiceHTTPClient" to call the correct interceptors.

func RegisterFlowControlServiceHTTPHandlerFromEndpoint

func RegisterFlowControlServiceHTTPHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error)

RegisterFlowControlServiceHTTPHandlerFromEndpoint is same as RegisterFlowControlServiceHTTPHandler but automatically dials to "endpoint" and closes the connection when "ctx" gets done.

func RegisterFlowControlServiceHTTPHandlerServer

func RegisterFlowControlServiceHTTPHandlerServer(ctx context.Context, mux *runtime.ServeMux, server FlowControlServiceHTTPServer) error

RegisterFlowControlServiceHTTPHandlerServer registers the http handlers for service FlowControlServiceHTTP to "mux". UnaryRPC :call FlowControlServiceHTTPServer directly. StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterFlowControlServiceHTTPHandlerFromEndpoint instead.

func RegisterFlowControlServiceHTTPServer

func RegisterFlowControlServiceHTTPServer(s grpc.ServiceRegistrar, srv FlowControlServiceHTTPServer)

Types

type CheckHTTPRequest

type CheckHTTPRequest struct {

	// The source of a network activity, such as starting a TCP connection.
	// In a multi hop network activity, the source represents the sender of the
	// last hop.
	Source *SocketAddress `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"`
	// The destination of a network activity, such as accepting a TCP connection.
	// In a multi hop network activity, the destination represents the receiver of
	// the last hop.
	Destination *SocketAddress `protobuf:"bytes,2,opt,name=destination,proto3" json:"destination,omitempty"`
	// Represents a network request, such as an HTTP request.
	Request *CheckHTTPRequest_HttpRequest `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"`
	// contains filtered or unexported fields
}

func (*CheckHTTPRequest) DeepCopy

func (in *CheckHTTPRequest) DeepCopy() *CheckHTTPRequest

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CheckHTTPRequest. Required by controller-gen.

func (*CheckHTTPRequest) DeepCopyInterface

func (in *CheckHTTPRequest) DeepCopyInterface() interface{}

DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new CheckHTTPRequest. Required by controller-gen.

func (*CheckHTTPRequest) DeepCopyInto

func (in *CheckHTTPRequest) DeepCopyInto(out *CheckHTTPRequest)

DeepCopyInto supports using CheckHTTPRequest within kubernetes types, where deepcopy-gen is used.

func (*CheckHTTPRequest) Descriptor deprecated

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

Deprecated: Use CheckHTTPRequest.ProtoReflect.Descriptor instead.

func (*CheckHTTPRequest) GetDestination

func (x *CheckHTTPRequest) GetDestination() *SocketAddress

func (*CheckHTTPRequest) GetRequest

func (*CheckHTTPRequest) GetSource

func (x *CheckHTTPRequest) GetSource() *SocketAddress

func (*CheckHTTPRequest) MarshalJSON

func (msg *CheckHTTPRequest) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*CheckHTTPRequest) ProtoMessage

func (*CheckHTTPRequest) ProtoMessage()

func (*CheckHTTPRequest) ProtoReflect

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

func (*CheckHTTPRequest) Reset

func (x *CheckHTTPRequest) Reset()

func (*CheckHTTPRequest) String

func (x *CheckHTTPRequest) String() string

func (*CheckHTTPRequest) UnmarshalJSON

func (msg *CheckHTTPRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type CheckHTTPRequest_HttpRequest

type CheckHTTPRequest_HttpRequest struct {

	// The HTTP request method, such as “GET“, “POST“.
	Method string `protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"`
	// The HTTP request headers.
	Headers map[string]string `` /* 155-byte string literal not displayed */
	// The request target, as it appears in the first line of the HTTP request. This includes
	// the URL path and query-string. No decoding is performed.
	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
	// The HTTP request “Host“ header value.
	Host string `protobuf:"bytes,4,opt,name=host,proto3" json:"host,omitempty"`
	// The HTTP URL scheme, such as “http“ and “https“.
	Scheme string `protobuf:"bytes,5,opt,name=scheme,proto3" json:"scheme,omitempty"`
	// The HTTP request size in bytes. If unknown, it must be -1.
	Size int64 `protobuf:"varint,6,opt,name=size,proto3" json:"size,omitempty"`
	// The network protocol used with the request, such as "HTTP/1.0", "HTTP/1.1", or "HTTP/2".
	Protocol string `protobuf:"bytes,7,opt,name=protocol,proto3" json:"protocol,omitempty"`
	// The HTTP request body.
	Body string `protobuf:"bytes,8,opt,name=body,proto3" json:"body,omitempty"`
	// contains filtered or unexported fields
}

This message defines attributes for an HTTP request. HTTP/1.x, HTTP/2, gRPC are all considered as HTTP requests.

func (*CheckHTTPRequest_HttpRequest) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CheckHTTPRequest_HttpRequest. Required by controller-gen.

func (*CheckHTTPRequest_HttpRequest) DeepCopyInterface

func (in *CheckHTTPRequest_HttpRequest) DeepCopyInterface() interface{}

DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new CheckHTTPRequest_HttpRequest. Required by controller-gen.

func (*CheckHTTPRequest_HttpRequest) DeepCopyInto

DeepCopyInto supports using CheckHTTPRequest_HttpRequest within kubernetes types, where deepcopy-gen is used.

func (*CheckHTTPRequest_HttpRequest) Descriptor deprecated

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

Deprecated: Use CheckHTTPRequest_HttpRequest.ProtoReflect.Descriptor instead.

func (*CheckHTTPRequest_HttpRequest) GetBody

func (x *CheckHTTPRequest_HttpRequest) GetBody() string

func (*CheckHTTPRequest_HttpRequest) GetHeaders

func (x *CheckHTTPRequest_HttpRequest) GetHeaders() map[string]string

func (*CheckHTTPRequest_HttpRequest) GetHost

func (x *CheckHTTPRequest_HttpRequest) GetHost() string

func (*CheckHTTPRequest_HttpRequest) GetMethod

func (x *CheckHTTPRequest_HttpRequest) GetMethod() string

func (*CheckHTTPRequest_HttpRequest) GetPath

func (x *CheckHTTPRequest_HttpRequest) GetPath() string

func (*CheckHTTPRequest_HttpRequest) GetProtocol

func (x *CheckHTTPRequest_HttpRequest) GetProtocol() string

func (*CheckHTTPRequest_HttpRequest) GetScheme

func (x *CheckHTTPRequest_HttpRequest) GetScheme() string

func (*CheckHTTPRequest_HttpRequest) GetSize

func (x *CheckHTTPRequest_HttpRequest) GetSize() int64

func (*CheckHTTPRequest_HttpRequest) MarshalJSON

func (msg *CheckHTTPRequest_HttpRequest) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*CheckHTTPRequest_HttpRequest) ProtoMessage

func (*CheckHTTPRequest_HttpRequest) ProtoMessage()

func (*CheckHTTPRequest_HttpRequest) ProtoReflect

func (*CheckHTTPRequest_HttpRequest) Reset

func (x *CheckHTTPRequest_HttpRequest) Reset()

func (*CheckHTTPRequest_HttpRequest) String

func (*CheckHTTPRequest_HttpRequest) UnmarshalJSON

func (msg *CheckHTTPRequest_HttpRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type CheckHTTPResponse

type CheckHTTPResponse struct {

	// Status “OK“ allows the request. Any other status indicates the request should be denied
	Status *status.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	// An message that contains HTTP response attributes.
	//
	// Types that are assignable to HttpResponse:
	//	*CheckHTTPResponse_DeniedResponse
	//	*CheckHTTPResponse_OkResponse
	HttpResponse isCheckHTTPResponse_HttpResponse `protobuf_oneof:"http_response"`
	// Optional response metadata that will be emitted as dynamic metadata to be consumed by the next
	// filter.
	DynamicMetadata *structpb.Struct `protobuf:"bytes,4,opt,name=dynamic_metadata,json=dynamicMetadata,proto3" json:"dynamic_metadata,omitempty"`
	// contains filtered or unexported fields
}

func (*CheckHTTPResponse) DeepCopy

func (in *CheckHTTPResponse) DeepCopy() *CheckHTTPResponse

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CheckHTTPResponse. Required by controller-gen.

func (*CheckHTTPResponse) DeepCopyInterface

func (in *CheckHTTPResponse) DeepCopyInterface() interface{}

DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new CheckHTTPResponse. Required by controller-gen.

func (*CheckHTTPResponse) DeepCopyInto

func (in *CheckHTTPResponse) DeepCopyInto(out *CheckHTTPResponse)

DeepCopyInto supports using CheckHTTPResponse within kubernetes types, where deepcopy-gen is used.

func (*CheckHTTPResponse) Descriptor deprecated

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

Deprecated: Use CheckHTTPResponse.ProtoReflect.Descriptor instead.

func (*CheckHTTPResponse) GetDeniedResponse

func (x *CheckHTTPResponse) GetDeniedResponse() *DeniedHttpResponse

func (*CheckHTTPResponse) GetDynamicMetadata

func (x *CheckHTTPResponse) GetDynamicMetadata() *structpb.Struct

func (*CheckHTTPResponse) GetHttpResponse

func (m *CheckHTTPResponse) GetHttpResponse() isCheckHTTPResponse_HttpResponse

func (*CheckHTTPResponse) GetOkResponse

func (x *CheckHTTPResponse) GetOkResponse() *OkHttpResponse

func (*CheckHTTPResponse) GetStatus

func (x *CheckHTTPResponse) GetStatus() *status.Status

func (*CheckHTTPResponse) MarshalJSON

func (msg *CheckHTTPResponse) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*CheckHTTPResponse) ProtoMessage

func (*CheckHTTPResponse) ProtoMessage()

func (*CheckHTTPResponse) ProtoReflect

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

func (*CheckHTTPResponse) Reset

func (x *CheckHTTPResponse) Reset()

func (*CheckHTTPResponse) String

func (x *CheckHTTPResponse) String() string

func (*CheckHTTPResponse) UnmarshalJSON

func (msg *CheckHTTPResponse) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type CheckHTTPResponse_DeniedResponse

type CheckHTTPResponse_DeniedResponse struct {
	// Supplies http attributes for a denied response.
	DeniedResponse *DeniedHttpResponse `protobuf:"bytes,2,opt,name=denied_response,json=deniedResponse,proto3,oneof"`
}

type CheckHTTPResponse_OkResponse

type CheckHTTPResponse_OkResponse struct {
	// Supplies http attributes for an ok response.
	OkResponse *OkHttpResponse `protobuf:"bytes,3,opt,name=ok_response,json=okResponse,proto3,oneof"`
}

type DeniedHttpResponse

type DeniedHttpResponse struct {

	// This field allows the authorization service to send an HTTP response status code to the
	// downstream client. If not set, Envoy sends “403 Forbidden“ HTTP status code by default.
	Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
	// This field allows the authorization service to send HTTP response headers
	// to the downstream client.
	Headers map[string]string `` /* 155-byte string literal not displayed */
	// This field allows the authorization service to send a response body data
	// to the downstream client.
	Body string `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`
	// contains filtered or unexported fields
}

HTTP attributes for a denied response.

func (*DeniedHttpResponse) DeepCopy

func (in *DeniedHttpResponse) DeepCopy() *DeniedHttpResponse

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeniedHttpResponse. Required by controller-gen.

func (*DeniedHttpResponse) DeepCopyInterface

func (in *DeniedHttpResponse) DeepCopyInterface() interface{}

DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new DeniedHttpResponse. Required by controller-gen.

func (*DeniedHttpResponse) DeepCopyInto

func (in *DeniedHttpResponse) DeepCopyInto(out *DeniedHttpResponse)

DeepCopyInto supports using DeniedHttpResponse within kubernetes types, where deepcopy-gen is used.

func (*DeniedHttpResponse) Descriptor deprecated

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

Deprecated: Use DeniedHttpResponse.ProtoReflect.Descriptor instead.

func (*DeniedHttpResponse) GetBody

func (x *DeniedHttpResponse) GetBody() string

func (*DeniedHttpResponse) GetHeaders

func (x *DeniedHttpResponse) GetHeaders() map[string]string

func (*DeniedHttpResponse) GetStatus

func (x *DeniedHttpResponse) GetStatus() int32

func (*DeniedHttpResponse) MarshalJSON

func (msg *DeniedHttpResponse) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DeniedHttpResponse) ProtoMessage

func (*DeniedHttpResponse) ProtoMessage()

func (*DeniedHttpResponse) ProtoReflect

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

func (*DeniedHttpResponse) Reset

func (x *DeniedHttpResponse) Reset()

func (*DeniedHttpResponse) String

func (x *DeniedHttpResponse) String() string

func (*DeniedHttpResponse) UnmarshalJSON

func (msg *DeniedHttpResponse) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type FlowControlServiceHTTPClient

type FlowControlServiceHTTPClient interface {
	// Performs Aperture Flowcontrol check based on the fields received with the
	// incoming request, and returns status `OK` or not `OK`.
	CheckHTTP(ctx context.Context, in *CheckHTTPRequest, opts ...grpc.CallOption) (*CheckHTTPResponse, error)
}

FlowControlServiceHTTPClient is the client API for FlowControlServiceHTTP service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type FlowControlServiceHTTPServer

type FlowControlServiceHTTPServer interface {
	// Performs Aperture Flowcontrol check based on the fields received with the
	// incoming request, and returns status `OK` or not `OK`.
	CheckHTTP(context.Context, *CheckHTTPRequest) (*CheckHTTPResponse, error)
}

FlowControlServiceHTTPServer is the server API for FlowControlServiceHTTP service. All implementations should embed UnimplementedFlowControlServiceHTTPServer for forward compatibility

type OkHttpResponse

type OkHttpResponse struct {

	// HTTP entity headers in addition to the original request headers.
	Headers         map[string]string `` /* 155-byte string literal not displayed */
	DynamicMetadata *structpb.Struct  `protobuf:"bytes,2,opt,name=dynamic_metadata,json=dynamicMetadata,proto3" json:"dynamic_metadata,omitempty"`
	// contains filtered or unexported fields
}

HTTP attributes for an OK response.

func (*OkHttpResponse) DeepCopy

func (in *OkHttpResponse) DeepCopy() *OkHttpResponse

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OkHttpResponse. Required by controller-gen.

func (*OkHttpResponse) DeepCopyInterface

func (in *OkHttpResponse) DeepCopyInterface() interface{}

DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new OkHttpResponse. Required by controller-gen.

func (*OkHttpResponse) DeepCopyInto

func (in *OkHttpResponse) DeepCopyInto(out *OkHttpResponse)

DeepCopyInto supports using OkHttpResponse within kubernetes types, where deepcopy-gen is used.

func (*OkHttpResponse) Descriptor deprecated

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

Deprecated: Use OkHttpResponse.ProtoReflect.Descriptor instead.

func (*OkHttpResponse) GetDynamicMetadata

func (x *OkHttpResponse) GetDynamicMetadata() *structpb.Struct

func (*OkHttpResponse) GetHeaders

func (x *OkHttpResponse) GetHeaders() map[string]string

func (*OkHttpResponse) MarshalJSON

func (msg *OkHttpResponse) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*OkHttpResponse) ProtoMessage

func (*OkHttpResponse) ProtoMessage()

func (*OkHttpResponse) ProtoReflect

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

func (*OkHttpResponse) Reset

func (x *OkHttpResponse) Reset()

func (*OkHttpResponse) String

func (x *OkHttpResponse) String() string

func (*OkHttpResponse) UnmarshalJSON

func (msg *OkHttpResponse) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type SocketAddress

type SocketAddress struct {
	Protocol SocketAddress_Protocol `` /* 132-byte string literal not displayed */
	// The address for this socket.
	Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	// The port for this socket.
	Port uint32 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
	// contains filtered or unexported fields
}

func (*SocketAddress) DeepCopy

func (in *SocketAddress) DeepCopy() *SocketAddress

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SocketAddress. Required by controller-gen.

func (*SocketAddress) DeepCopyInterface

func (in *SocketAddress) DeepCopyInterface() interface{}

DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new SocketAddress. Required by controller-gen.

func (*SocketAddress) DeepCopyInto

func (in *SocketAddress) DeepCopyInto(out *SocketAddress)

DeepCopyInto supports using SocketAddress within kubernetes types, where deepcopy-gen is used.

func (*SocketAddress) Descriptor deprecated

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

Deprecated: Use SocketAddress.ProtoReflect.Descriptor instead.

func (*SocketAddress) GetAddress

func (x *SocketAddress) GetAddress() string

func (*SocketAddress) GetPort

func (x *SocketAddress) GetPort() uint32

func (*SocketAddress) GetProtocol

func (x *SocketAddress) GetProtocol() SocketAddress_Protocol

func (*SocketAddress) MarshalJSON

func (msg *SocketAddress) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*SocketAddress) ProtoMessage

func (*SocketAddress) ProtoMessage()

func (*SocketAddress) ProtoReflect

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

func (*SocketAddress) Reset

func (x *SocketAddress) Reset()

func (*SocketAddress) String

func (x *SocketAddress) String() string

func (*SocketAddress) UnmarshalJSON

func (msg *SocketAddress) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type SocketAddress_Protocol

type SocketAddress_Protocol int32
const (
	SocketAddress_TCP SocketAddress_Protocol = 0
	SocketAddress_UDP SocketAddress_Protocol = 1
)

func (SocketAddress_Protocol) Descriptor

func (SocketAddress_Protocol) Enum

func (SocketAddress_Protocol) EnumDescriptor deprecated

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

Deprecated: Use SocketAddress_Protocol.Descriptor instead.

func (SocketAddress_Protocol) Number

func (SocketAddress_Protocol) String

func (x SocketAddress_Protocol) String() string

func (SocketAddress_Protocol) Type

type UnimplementedFlowControlServiceHTTPServer

type UnimplementedFlowControlServiceHTTPServer struct {
}

UnimplementedFlowControlServiceHTTPServer should be embedded to have forward compatible implementations.

func (UnimplementedFlowControlServiceHTTPServer) CheckHTTP

type UnsafeFlowControlServiceHTTPServer

type UnsafeFlowControlServiceHTTPServer interface {
	// contains filtered or unexported methods
}

UnsafeFlowControlServiceHTTPServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to FlowControlServiceHTTPServer will result in compilation errors.

Jump to

Keyboard shortcuts

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