第一版讨论稿。
This commit is contained in:
52
interface/tfe_connection.h
Normal file
52
interface/tfe_connection.h
Normal file
@@ -0,0 +1,52 @@
|
||||
|
||||
#define TFE_STRING_MAX 2048
|
||||
#define TFE_SYMBOL_MAX 64
|
||||
struct tfe_conn_ctx
|
||||
{
|
||||
sockaddr_t dst;
|
||||
struct pxy_conn_desc src;
|
||||
struct pxy_conn_desc dst;
|
||||
int cur_dir//1: c2s; 2:s2c
|
||||
char* sni;
|
||||
};
|
||||
struct tfe_conn_inner
|
||||
{
|
||||
int a;
|
||||
struct tfe_conn_ctx conn_desc;
|
||||
void **proto_arg;
|
||||
};
|
||||
|
||||
|
||||
//Return 1 for identify as its ttraffic;
|
||||
//Return 0 for unknown traffic;
|
||||
typedef int proto_pend_cb_t(const struct tfe_conn_ctx* c, struct evbuffer *data, void **pme);
|
||||
|
||||
enum tfe_proto_action
|
||||
{
|
||||
PROTO_ATCION_FORWARD,
|
||||
PROTO_ACTION_DEFER,
|
||||
PROTO_ACTION_STEAL,
|
||||
PROTO_ACTION_PASSTHROUGH,
|
||||
PROTO_ACTION_CLOSE
|
||||
};
|
||||
|
||||
typedef tfe_proto_action proto_read_cb_t(const struct tfe_conn_ctx* ctx, struct evbuffer *data, void **pme);
|
||||
|
||||
typedef void proto_close_cb_t(const struct tfe_conn_ctx* ctx, int ev, void **pme);
|
||||
|
||||
//typedef int proto_onwrite_cb_t(struct tfe_conn_ctx*, struct evbuffer *data, void **pme);
|
||||
|
||||
struct tfe_proto_module
|
||||
{
|
||||
char symbol[TFE_SYMBOL_MAX];
|
||||
proto_pend_cb_t *on_pend;
|
||||
proto_read_cb_t *on_read;
|
||||
proto_close_cb_t *on_close;
|
||||
// proto_onwrite_cb_t *onwrite;
|
||||
|
||||
};
|
||||
int tfe_io_write(struct pxy_conn_desc* dest,int dir,struct evbuffer *data);
|
||||
|
||||
int tfe_xxx_proto_init(struct tfe_proto_module*m);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user