#ifndef OS_H
#define OS_H

#include "config.h"
#include "transdata.h"

/*****************
**linux.c/bsd.c **
******************/
int os_init(void);
int get_orig_dest(int fd, struct sockaddr_in *addr);
int get_local_address(const int fd, struct sockaddr_in *addr);
int bindtodevice(int fd);

#ifdef TRANS_DATA
struct fd_request {
	enum { CONNECT, LISTEN, UNLISTEN, NONE } type;
	struct sockaddr_in local;
	struct sockaddr_in remote;
	int ports[2];
};

int kernel_transdata_setup(void);
int kernel_td_connect(struct fd_request req);
int kernel_td_listen(struct fd_request req);
int kernel_td_unlisten(struct fd_request req);
void kernel_td_flush(void);
#endif
#endif /*OS_H */


syntax highlighted by Code2HTML, v. 0.9.1