func (pp *proxyParser) parseProxyProto() error {
	buf := make([]byte, 16)
	{
		_, err := io.ReadFull(pp.r, buf[:8])
		if err != nil {
			return err
		}
		if string(buf[:6]) == "PROXY " {
			pp.Version = PROXY_V1
			return pp.parseProxyV1Proto(buf[6:8])
		}
	}
	{
		_, err := io.ReadFull(pp.r, buf[8:])
		if err != nil {
			return err
		}
		if bytes.Equal(buf[:12], []byte(PROXY_V2_SIG)) {
			pp.Version = PROXY_V2
			return pp.parseProxyV2Proto(buf[12:16])
		}
	}
	return fmt.Errorf("unknown PROXY protocol")
}
// parseProxyProto parse PROXY v1 or v2 data
parseProxyProto parse PROXY v1 or v2 data
// parseProxyProto parse PROXY v1 or v2 data
func (pp *proxyParser) parseProxyProto() error {
	buf := make([]byte, 16)
	{
		_, err := io.ReadFull(pp.r, buf[:8])
		if err != nil {
			return err
		}
		if string(buf[:6]) == "PROXY " {
			pp.Version = PROXY_V1
			return pp.parseProxyV1Proto(buf[6:8])
		}
	}
	{
		_, err := io.ReadFull(pp.r, buf[8:])
		if err != nil {
			return err
		}
		if bytes.Equal(buf[:12], []byte(PROXY_V2_SIG)) {
			pp.Version = PROXY_V2
			return pp.parseProxyV2Proto(buf[12:16])
		}
	}
	return fmt.Errorf("unknown PROXY protocol")
}
func ( pp * proxyParser ) parseProxyProto ( ) error { buf := make ( [ ] byte , 16 ) { _ , err := io . ReadFull ( pp . r , buf [ : 8 ] ) if err != nil { return err } if string ( buf [ : 6 ] ) == " " { pp . Version = PROXY_V1 return pp . parseProxyV1Proto ( buf [ 6 : 8 ] ) } } { _ , err := io . ReadFull ( pp . r , buf [ 8 : ] ) if err != nil { return err } if bytes . Equal ( buf [ : 12 ] , [ ] byte ( PROXY_V2_SIG ) ) { pp . Version = PROXY_V2 return pp . parseProxyV2Proto ( buf [ 12 : 16 ] ) } } return fmt . Errorf ( " " ) }
parseProxyProto parse PROXY v1 or v2 data
parseProxyProto parse PROXY v1 or v2 data