// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.26.0
// 	protoc        v4.23.4
// source: http.proto

package proto

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// addrType 连接地址信息
// addrType 类型包含字段如下, 设变量名为 addr
type AddrType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Transport string `protobuf:"bytes,1,opt,name=transport,proto3" json:"transport,omitempty"` // addr.transport(string)tranport: http、tcp、udp
	Addr      string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`           // addr.transport(string)目的地址， 获取失败时返回空字符串，形如：
	// "192.0.2.1:25", "[20012001:1]:80"
	Port string `protobuf:"bytes,3,opt,name=port,proto3" json:"port,omitempty"` // addr.port(string)端口号， 获取失败时返回 ""
}

func (x *AddrType) Reset() {
	*x = AddrType{}
	if protoimpl.UnsafeEnabled {
		mi := &file_http_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AddrType) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddrType) ProtoMessage() {}

func (x *AddrType) ProtoReflect() protoreflect.Message {
	mi := &file_http_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddrType.ProtoReflect.Descriptor instead.
func (*AddrType) Descriptor() ([]byte, []int) {
	return file_http_proto_rawDescGZIP(), []int{0}
}

func (x *AddrType) GetTransport() string {
	if x != nil {
		return x.Transport
	}
	return ""
}

func (x *AddrType) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

func (x *AddrType) GetPort() string {
	if x != nil {
		return x.Port
	}
	return ""
}

// connInfoType 连接信息，包含源地址和目的地址, 可以通过 response.conn
// connInfoType 类型包含字段如下, 设变量名为 conn
type ConnInfoType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Source      *AddrType `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"`           // conn.source(addrType)源地址信息
	Destination *AddrType `protobuf:"bytes,2,opt,name=destination,proto3" json:"destination,omitempty"` // conn.destination(addrType)目的地址信息
}

func (x *ConnInfoType) Reset() {
	*x = ConnInfoType{}
	if protoimpl.UnsafeEnabled {
		mi := &file_http_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ConnInfoType) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ConnInfoType) ProtoMessage() {}

func (x *ConnInfoType) ProtoReflect() protoreflect.Message {
	mi := &file_http_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ConnInfoType.ProtoReflect.Descriptor instead.
func (*ConnInfoType) Descriptor() ([]byte, []int) {
	return file_http_proto_rawDescGZIP(), []int{1}
}

func (x *ConnInfoType) GetSource() *AddrType {
	if x != nil {
		return x.Source
	}
	return nil
}

func (x *ConnInfoType) GetDestination() *AddrType {
	if x != nil {
		return x.Destination
	}
	return nil
}

// UrlType url 类型，可以 request.url、response.url 和 reverse.url 调用
// UrlType 类型包含的字段如下, 设变量名为 url, 以
// http://example.com:8080/a?c=d#x=y 为例:
type UrlType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Scheme   string `protobuf:"bytes,1,opt,name=scheme,proto3" json:"scheme,omitempty"`     // url.schema(string)url 的 scheme, 示例为 "http"
	Domain   string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"`     // url.domain(string)url 的域名，示例例为 "example.com"
	Host     string `protobuf:"bytes,3,opt,name=host,proto3" json:"host,omitempty"`         // url.host(string)url 的主机名，示例为 "example.com:8080"
	Port     string `protobuf:"bytes,4,opt,name=port,proto3" json:"port,omitempty"`         // url.port(string)url 的 port，注意这里也是字符串。 示例为 "8080"
	Path     string `protobuf:"bytes,5,opt,name=path,proto3" json:"path,omitempty"`         // url.path(string)url 的 path， 示例为 "/a"
	Query    string `protobuf:"bytes,6,opt,name=query,proto3" json:"query,omitempty"`       // url.query(string)url 的 query, 示例为 "c=d"
	Fragment string `protobuf:"bytes,7,opt,name=fragment,proto3" json:"fragment,omitempty"` // url.fragment(string)url 的锚点，示例为 "x=y"
}

func (x *UrlType) Reset() {
	*x = UrlType{}
	if protoimpl.UnsafeEnabled {
		mi := &file_http_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UrlType) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UrlType) ProtoMessage() {}

func (x *UrlType) ProtoReflect() protoreflect.Message {
	mi := &file_http_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UrlType.ProtoReflect.Descriptor instead.
func (*UrlType) Descriptor() ([]byte, []int) {
	return file_http_proto_rawDescGZIP(), []int{2}
}

func (x *UrlType) GetScheme() string {
	if x != nil {
		return x.Scheme
	}
	return ""
}

func (x *UrlType) GetDomain() string {
	if x != nil {
		return x.Domain
	}
	return ""
}

func (x *UrlType) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *UrlType) GetPort() string {
	if x != nil {
		return x.Port
	}
	return ""
}

func (x *UrlType) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *UrlType) GetQuery() string {
	if x != nil {
		return x.Query
	}
	return ""
}

func (x *UrlType) GetFragment() string {
	if x != nil {
		return x.Fragment
	}
	return ""
}

// reverseType 反连平台类型
// reverseType 类型包含字段如下, 设变量名为 reverse（需要先使用 newReverse()
// 生成实例)
type Reverse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Url                *UrlType `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`                                                              // reverse.url(UrlType)反连平台的url
	Domain             string   `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"`                                                        // reverse.domain(string)反连平台的域名
	Ip                 string   `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"`                                                                // reverse.ip(string)反连平台的ip地址
	IsDomainNameServer bool     `protobuf:"varint,4,opt,name=is_domain_name_server,json=isDomainNameServer,proto3" json:"is_domain_name_server,omitempty"` // reverse.is_domain_name_server(bool)反连平台的domain是否同时是nameserver
	Wait               int64    `protobuf:"varint,5,opt,name=wait,proto3" json:"wait,omitempty"`                                                           // reverse.wait(timeout)(func(timeout int) bool)
}

func (x *Reverse) Reset() {
	*x = Reverse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_http_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Reverse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Reverse) ProtoMessage() {}

func (x *Reverse) ProtoReflect() protoreflect.Message {
	mi := &file_http_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Reverse.ProtoReflect.Descriptor instead.
func (*Reverse) Descriptor() ([]byte, []int) {
	return file_http_proto_rawDescGZIP(), []int{3}
}

func (x *Reverse) GetUrl() *UrlType {
	if x != nil {
		return x.Url
	}
	return nil
}

func (x *Reverse) GetDomain() string {
	if x != nil {
		return x.Domain
	}
	return ""
}

func (x *Reverse) GetIp() string {
	if x != nil {
		return x.Ip
	}
	return ""
}

func (x *Reverse) GetIsDomainNameServer() bool {
	if x != nil {
		return x.IsDomainNameServer
	}
	return false
}

func (x *Reverse) GetWait() int64 {
	if x != nil {
		return x.Wait
	}
	return 0
}

type OOB struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Filter       string `protobuf:"bytes,1,opt,name=Filter,proto3" json:"Filter,omitempty"`
	HTTP         string `protobuf:"bytes,2,opt,name=HTTP,proto3" json:"HTTP,omitempty"`
	DNS          string `protobuf:"bytes,3,opt,name=DNS,proto3" json:"DNS,omitempty"`
	ProtocolHTTP string `protobuf:"bytes,4,opt,name=ProtocolHTTP,proto3" json:"ProtocolHTTP,omitempty"` // 默认值 "http"
	ProtocolDNS  string `protobuf:"bytes,5,opt,name=ProtocolDNS,proto3" json:"ProtocolDNS,omitempty"`   // 默认值 "dns"
}

func (x *OOB) Reset() {
	*x = OOB{}
	if protoimpl.UnsafeEnabled {
		mi := &file_http_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OOB) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OOB) ProtoMessage() {}

func (x *OOB) ProtoReflect() protoreflect.Message {
	mi := &file_http_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OOB.ProtoReflect.Descriptor instead.
func (*OOB) Descriptor() ([]byte, []int) {
	return file_http_proto_rawDescGZIP(), []int{4}
}

func (x *OOB) GetFilter() string {
	if x != nil {
		return x.Filter
	}
	return ""
}

func (x *OOB) GetHTTP() string {
	if x != nil {
		return x.HTTP
	}
	return ""
}

func (x *OOB) GetDNS() string {
	if x != nil {
		return x.DNS
	}
	return ""
}

func (x *OOB) GetProtocolHTTP() string {
	if x != nil {
		return x.ProtocolHTTP
	}
	return ""
}

func (x *OOB) GetProtocolDNS() string {
	if x != nil {
		return x.ProtocolDNS
	}
	return ""
}

// request 扫描请求
type Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Url     *UrlType          `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`                                                                                                 // request.url(UrlType)自定义类型UrlType,请查看UrlType的说明
	Method  string            `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"`                                                                                           // request.method(string)原始请求的方法
	Headers map[string]string `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // request.headers(map[string]string)原始请求的HTTP头，是一个键值对（均为小写），我们可以通过headers['server']来获取值。如果键不存在，则获取到的值是空字符串。注意，该空字符串不能用于
	// == 以外的操作，否则不存在的时候将报错，需要先 in
	// 判断下。详情参考下文常用函数章节。
	ContentType string `protobuf:"bytes,4,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` // request.contnet_type(string)原始请求的 content-type 头的值,
	// 等于request.headers["Content-Type"]
	Body []byte `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"` // request.body([]byte)原始请求的
	// body，需要使用字节流相关方法来判断。如果是 GET， body 为空。
	Raw       []byte `protobuf:"bytes,6,opt,name=raw,proto3" json:"raw,omitempty"`                              // request.raw([]byte)原始请求
	RawHeader []byte `protobuf:"bytes,7,opt,name=raw_header,json=rawHeader,proto3" json:"raw_header,omitempty"` // request.raw_header([]byte)原始的 header
}

func (x *Request) Reset() {
	*x = Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_http_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Request) ProtoMessage() {}

func (x *Request) ProtoReflect() protoreflect.Message {
	mi := &file_http_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Request.ProtoReflect.Descriptor instead.
func (*Request) Descriptor() ([]byte, []int) {
	return file_http_proto_rawDescGZIP(), []int{5}
}

func (x *Request) GetUrl() *UrlType {
	if x != nil {
		return x.Url
	}
	return nil
}

func (x *Request) GetMethod() string {
	if x != nil {
		return x.Method
	}
	return ""
}

func (x *Request) GetHeaders() map[string]string {
	if x != nil {
		return x.Headers
	}
	return nil
}

func (x *Request) GetContentType() string {
	if x != nil {
		return x.ContentType
	}
	return ""
}

func (x *Request) GetBody() []byte {
	if x != nil {
		return x.Body
	}
	return nil
}

func (x *Request) GetRaw() []byte {
	if x != nil {
		return x.Raw
	}
	return nil
}

func (x *Request) GetRawHeader() []byte {
	if x != nil {
		return x.RawHeader
	}
	return nil
}

// response 请求的响应，通用属性包含：raw
type Response struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Url     *UrlType          `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`                                                                                                 // response.url(UrlType)自定义类型 UrlType, 请查看下方 UrlType 的说明
	Status  int32             `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`                                                                                          // response.status(int)返回包的satus code
	Headers map[string]string `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // response.headers(map[string]string)返回包的HTTP头，类似
	// request.headers。
	ContentType string `protobuf:"bytes,4,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` // response.content_type(string)返回包的content-type头的值
	Body        []byte `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"`                                  // response.body([]byte)返回包的Body，因为是一个字节流（bytes）而非字符串，后面判断的时候需要使用字节流相关的方法
	Latency     int64  `protobuf:"varint,6,opt,name=latency,proto3" json:"latency,omitempty"`                           // response.latency(int)响应的延迟时间，可以用于 sql
	// 时间盲注的判断，单位毫秒 (ms)
	Conn      *ConnInfoType `protobuf:"bytes,7,opt,name=conn,proto3" json:"conn,omitempty"`                            // response.conn(connInfoType)连接相关信息
	Raw       []byte        `protobuf:"bytes,8,opt,name=raw,proto3" json:"raw,omitempty"`                              // response.raw([]byte)原始响应
	RawHeader []byte        `protobuf:"bytes,9,opt,name=raw_header,json=rawHeader,proto3" json:"raw_header,omitempty"` // response.raw_header([]byte)原始的 header
}

func (x *Response) Reset() {
	*x = Response{}
	if protoimpl.UnsafeEnabled {
		mi := &file_http_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Response) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Response) ProtoMessage() {}

func (x *Response) ProtoReflect() protoreflect.Message {
	mi := &file_http_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Response.ProtoReflect.Descriptor instead.
func (*Response) Descriptor() ([]byte, []int) {
	return file_http_proto_rawDescGZIP(), []int{6}
}

func (x *Response) GetUrl() *UrlType {
	if x != nil {
		return x.Url
	}
	return nil
}

func (x *Response) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *Response) GetHeaders() map[string]string {
	if x != nil {
		return x.Headers
	}
	return nil
}

func (x *Response) GetContentType() string {
	if x != nil {
		return x.ContentType
	}
	return ""
}

func (x *Response) GetBody() []byte {
	if x != nil {
		return x.Body
	}
	return nil
}

func (x *Response) GetLatency() int64 {
	if x != nil {
		return x.Latency
	}
	return 0
}

func (x *Response) GetConn() *ConnInfoType {
	if x != nil {
		return x.Conn
	}
	return nil
}

func (x *Response) GetRaw() []byte {
	if x != nil {
		return x.Raw
	}
	return nil
}

func (x *Response) GetRawHeader() []byte {
	if x != nil {
		return x.RawHeader
	}
	return nil
}

var File_http_proto protoreflect.FileDescriptor

var file_http_proto_rawDesc = []byte{
	0x0a, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x22, 0x50, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x1c, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a,
	0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64,
	0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x6a, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66,
	0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64,
	0x64, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x31,
	0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x72,
	0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x22, 0xa7, 0x01, 0x0a, 0x07, 0x55, 0x72, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
	0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a,
	0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73,
	0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65,
	0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12,
	0x1a, 0x0a, 0x08, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x07,
	0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x72, 0x6c,
	0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d,
	0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69,
	0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
	0x70, 0x12, 0x31, 0x0a, 0x15, 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x12, 0x69, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65,
	0x72, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x03, 0x4f, 0x4f, 0x42,
	0x12, 0x16, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x54, 0x54, 0x50,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x48, 0x54, 0x54, 0x50, 0x12, 0x10, 0x0a, 0x03,
	0x44, 0x4e, 0x53, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x4e, 0x53, 0x12, 0x22,
	0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x54, 0x54, 0x50, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x54,
	0x54, 0x50, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x44, 0x4e,
	0x53, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x44, 0x4e, 0x53, 0x22, 0x9e, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x20, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x72, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x75,
	0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x35, 0x0a, 0x07, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x72, 0x61, 0x77, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61,
	0x77, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09,
	0x72, 0x61, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe3, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x20, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x72, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x03, 0x75, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x36, 0x0a, 0x07,
	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74,
	0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6c,
	0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x61,
	0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x63, 0x6f, 0x6e, 0x6e, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x6e,
	0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x6e, 0x12, 0x10,
	0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x72, 0x61, 0x77,
	0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x77, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x72, 0x61, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a,
	0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
	0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x5a, 0x08, 0x2e,
	0x2f, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_http_proto_rawDescOnce sync.Once
	file_http_proto_rawDescData = file_http_proto_rawDesc
)

func file_http_proto_rawDescGZIP() []byte {
	file_http_proto_rawDescOnce.Do(func() {
		file_http_proto_rawDescData = protoimpl.X.CompressGZIP(file_http_proto_rawDescData)
	})
	return file_http_proto_rawDescData
}

var file_http_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
var file_http_proto_goTypes = []interface{}{
	(*AddrType)(nil),     // 0: proto.AddrType
	(*ConnInfoType)(nil), // 1: proto.ConnInfoType
	(*UrlType)(nil),      // 2: proto.UrlType
	(*Reverse)(nil),      // 3: proto.Reverse
	(*OOB)(nil),          // 4: proto.OOB
	(*Request)(nil),      // 5: proto.Request
	(*Response)(nil),     // 6: proto.Response
	nil,                  // 7: proto.Request.HeadersEntry
	nil,                  // 8: proto.Response.HeadersEntry
}
var file_http_proto_depIdxs = []int32{
	0, // 0: proto.ConnInfoType.source:type_name -> proto.AddrType
	0, // 1: proto.ConnInfoType.destination:type_name -> proto.AddrType
	2, // 2: proto.Reverse.url:type_name -> proto.UrlType
	2, // 3: proto.Request.url:type_name -> proto.UrlType
	7, // 4: proto.Request.headers:type_name -> proto.Request.HeadersEntry
	2, // 5: proto.Response.url:type_name -> proto.UrlType
	8, // 6: proto.Response.headers:type_name -> proto.Response.HeadersEntry
	1, // 7: proto.Response.conn:type_name -> proto.ConnInfoType
	8, // [8:8] is the sub-list for method output_type
	8, // [8:8] is the sub-list for method input_type
	8, // [8:8] is the sub-list for extension type_name
	8, // [8:8] is the sub-list for extension extendee
	0, // [0:8] is the sub-list for field type_name
}

func init() { file_http_proto_init() }
func file_http_proto_init() {
	if File_http_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_http_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddrType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_http_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ConnInfoType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_http_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UrlType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_http_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Reverse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_http_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OOB); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_http_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_http_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Response); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_http_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   9,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_http_proto_goTypes,
		DependencyIndexes: file_http_proto_depIdxs,
		MessageInfos:      file_http_proto_msgTypes,
	}.Build()
	File_http_proto = out.File
	file_http_proto_rawDesc = nil
	file_http_proto_goTypes = nil
	file_http_proto_depIdxs = nil
}
