45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
#pragma once
|
|
|
|
#include "packet.h"
|
|
#include "event.h"
|
|
#include <stdint.h>
|
|
|
|
struct stellar_session;
|
|
|
|
enum stellar_session_type
|
|
{
|
|
SESSION_TYPE_CUSTOM,
|
|
SESSION_TYPE_IP,
|
|
SESSION_TYPE_TCP,
|
|
SESSION_TYPE_UDP,
|
|
SESSION_TYPE_ICMP,
|
|
SESSION_TYPE_PPTP,
|
|
SESSION_TYPE_L2TP,
|
|
SESSION_TYPE_SOCKS,
|
|
SESSION_TYPE_GTPU,
|
|
SESSION_TYPE_HTTP,
|
|
SESSION_TYPE_MAIL,
|
|
SESSION_TYPE_DNS,
|
|
SESSION_TYPE_MAX,
|
|
};
|
|
|
|
enum stellar_session_event_type
|
|
{
|
|
SESSION_EVENT_OPENING = 1<<1,
|
|
SESSION_EVENT_RAW_PKT = 1<<2,
|
|
SESSION_EVENT_ORDERED_PKT = 1<<3,
|
|
SESSION_EVENT_META = 1<<4,
|
|
SESSION_EVENT_TIMEOUT = 1<<5,
|
|
SESSION_EVENT_CLOSING = 1<<6,
|
|
};
|
|
|
|
struct stellar_session_event_extras;
|
|
|
|
typedef int (*fn_session_event_callback)(const struct stellar_session *s, int what, struct stellar_packet *p, const char *payload, uint32_t len, void **pme);
|
|
|
|
void session_manager_trigger_event(struct stellar_session *s,
|
|
stellar_session_event_type type,
|
|
struct stellar_session_event_extras *info);
|
|
|
|
struct stellar_session *session_manager_session_derive(const struct stellar_session *this_session,
|
|
const char *new_session_type_name); |