This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
stellar-stellar-2022/sdk/include/session.h
yangwei 658108724c add deps directory
update inner include headers
2022-07-14 15:05:18 +08:00

51 lines
1.2 KiB
C

#pragma once
#include "packet.h"
#include <stdint.h>
struct session;
struct session_event;
enum 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_OPENING=0x01,
SESSION_EVENT_RAW_PKT=0x02,
SESSION_EVENT_ORDERED_PKT=0x04,
SESSION_EVENT_META=0x08,
SESSION_EVENT_CLOSING=0x10,
};
typedef int (*fn_session_event_callback)(const struct session *s, int what, struct packet *p, const char *payload, uint32_t len, void **pme);
typedef int (*fn_session_timer)(const struct session *s, void **pme);
void session_manager_trigger_event(struct session *s, session_event_type event, void *event_info);
struct session_event *session_manager_commit(struct packet *p);
struct custom_session_event;
struct custom_session_event *session_manager_custom_session_event_register(const char *event_name, int available_event);
struct session *session_manager_custom_session_derive(const struct session *cur_session, struct custom_session_event *event);
struct session_event *session_manager_fetch_event();