sslh/udp-listener.h
2022-04-02 18:59:32 +02:00

31 lines
848 B
C

#ifndef UDPLISTENER_H
#define UDPLISTENER_H
typedef struct connection* hash_item;
#include "hash.h"
#include "collection.h"
#include "processes.h"
#include "common.h"
/* UDP listener: upon incoming packet, find where it should go
* This is run in its own process and never returns.
*/
void udp_listener(struct listen_endpoint* endpoint, int num_endpoints, int active_endpoint);
/* Process UDP coming from outside (client towards server)
* If it's a new source, probe; otherwise, forward to previous target
* Returns: >= 0 sockfd of newly allocated socket, for new connections
* -1 otherwise
* */
int udp_c2s_forward(int sockfd, struct loop_info* fd_info);
/* Process UDP coming from inside (server towards client) */
void udp_s2c_forward(struct connection* cnx);
void udp_init(struct loop_info* fd_info);
#endif /* UDPLISTENER_H */