2024-10-28 09:32:24 +03:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
|
|
|
#include "params.h"
|
|
|
|
|
|
|
|
#define SPLIT_FLAG_DISORDER 0x01
|
|
|
|
#define SPLIT_FLAG_OOB 0x02
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
// common state
|
|
|
|
t_l7proto l7proto;
|
|
|
|
bool bTamperInCutoff;
|
|
|
|
bool b_ah_check;
|
2024-10-14 14:58:31 +03:00
|
|
|
bool b_not_act;
|
2024-10-28 09:32:24 +03:00
|
|
|
char *hostname;
|
|
|
|
struct desync_profile *dp; // desync profile cache
|
|
|
|
} t_ctrack;
|
|
|
|
|
|
|
|
void apply_desync_profile(t_ctrack *ctrack, const struct sockaddr *dest);
|
|
|
|
|
2024-11-13 22:05:06 +03:00
|
|
|
void tamper_out(t_ctrack *ctrack, const struct sockaddr *dest, uint8_t *segment,size_t segment_buffer_size,size_t *size, size_t *multisplit_pos, int *multisplit_count, uint8_t *split_flags);
|
2024-10-15 11:23:37 +03:00
|
|
|
void tamper_in(t_ctrack *ctrack, const struct sockaddr *client, uint8_t *segment,size_t segment_buffer_size,size_t *size);
|
2024-10-28 09:32:24 +03:00
|
|
|
// connection reset by remote leg
|
2024-10-15 11:23:37 +03:00
|
|
|
void rst_in(t_ctrack *ctrack, const struct sockaddr *client);
|
2024-10-28 09:32:24 +03:00
|
|
|
// local leg closed connection (timeout waiting response ?)
|
2024-10-15 11:23:37 +03:00
|
|
|
void hup_out(t_ctrack *ctrack, const struct sockaddr *client);
|
2024-11-14 14:03:37 +03:00
|
|
|
|
|
|
|
void packet_debug(const uint8_t *data, size_t sz);
|