zapret/tpws/protocol.h

21 lines
925 B
C
Raw Normal View History

2021-03-04 11:30:38 +00:00
#pragma once
#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
bool IsHttp(const uint8_t *data, size_t len);
2023-10-26 12:12:32 +00:00
// header must be passed like this : "\nHost:"
bool HttpExtractHeader(const uint8_t *data, size_t len, const char *header, char *buf, size_t len_buf);
2021-03-04 11:30:38 +00:00
bool HttpExtractHost(const uint8_t *data, size_t len, char *host, size_t len_host);
2023-10-26 12:12:32 +00:00
bool IsHttpReply(const uint8_t *data, size_t len);
const char *HttpFind2ndLevelDomain(const char *host);
// must be pre-checked by IsHttpReply
int HttpReplyCode(const uint8_t *data, size_t len);
// must be pre-checked by IsHttpReply
bool HttpReplyLooksLikeDPIRedirect(const uint8_t *data, size_t len, const char *host);
2021-03-04 11:30:38 +00:00
bool IsTLSClientHello(const uint8_t *data, size_t len);
bool TLSFindExt(const uint8_t *data, size_t len, uint16_t type, const uint8_t **ext, size_t *len_ext);
bool TLSHelloExtractHost(const uint8_t *data, size_t len, char *host, size_t len_host);