62 lines
1.5 KiB
C
62 lines
1.5 KiB
C
#ifndef _SESSION_H
|
|
#define _SESSION_H
|
|
|
|
#ifdef __cpluscplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#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 session_event_type
|
|
{
|
|
SESSION_EVENT_UNKNOWN = (0x00),
|
|
SESSION_EVENT_OPENING = (0x01 << 1),
|
|
SESSION_EVENT_RAWPKT = (0x01 << 2),
|
|
SESSION_EVENT_ORDPKT = (0x01 << 3),
|
|
SESSION_EVENT_META = (0x01 << 4),
|
|
SESSION_EVENT_CLOSING = (0x01 << 5),
|
|
SESSION_EVENT_ALL = (0x01 << 1 | 0x01 << 2 | 0x01 << 3 | 0x01 << 4 | 0x01 << 5),
|
|
};
|
|
|
|
enum error_event_type
|
|
{
|
|
ERROR_EVENT_DETTACH = (0x1 << 10),
|
|
};
|
|
|
|
struct stellar_session_event_extras;
|
|
|
|
typedef void(fn_session_error_callback)(const struct stellar_session *s, enum error_event_type event, void **pme);
|
|
typedef void(fn_session_event_callback)(const struct stellar_session *s, enum session_event_type event, struct stellar_packet *p, const char *payload, uint16_t len, void **pme);
|
|
|
|
void session_manager_trigger_event(struct stellar_session *s, enum 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 *session_name);
|
|
|
|
const char *stellar_session_get_name(const struct stellar_session *session);
|
|
|
|
#ifdef __cpluscplus
|
|
}
|
|
#endif
|
|
|
|
#endif |