Branch data Line data Source code
1 : : #ifndef __CR_SK_INET_H__
2 : : #define __CR_SK_INET_H__
3 : :
4 : : #include <netinet/tcp.h>
5 : :
6 : : #include "sockets.h"
7 : : #include "files.h"
8 : : #include "list.h"
9 : : #include "protobuf.h"
10 : : #include "../protobuf/sk-inet.pb-c.h"
11 : :
12 : : #define INET_ADDR_LEN 40
13 : : #ifndef TCP_REPAIR
14 : : #define TCP_REPAIR 19 /* TCP sock is under repair right now */
15 : : #define TCP_REPAIR_QUEUE 20
16 : : #define TCP_QUEUE_SEQ 21
17 : : #define TCP_REPAIR_OPTIONS 22
18 : : #endif
19 : :
20 : : struct inet_sk_desc {
21 : : struct socket_desc sd;
22 : : unsigned int type;
23 : : unsigned int proto;
24 : : unsigned int src_port;
25 : : unsigned int dst_port;
26 : : unsigned int state;
27 : : unsigned int rqlen;
28 : : unsigned int wqlen;
29 : : unsigned int src_addr[4];
30 : : unsigned int dst_addr[4];
31 : : unsigned short shutdown;
32 : :
33 : : int rfd;
34 : : struct list_head rlist;
35 : : };
36 : :
37 : : struct inet_port;
38 : : struct inet_sk_info {
39 : : InetSkEntry *ie;
40 : : struct file_desc d;
41 : : struct inet_port *port;
42 : : struct list_head rlist;
43 : : };
44 : :
45 : : int inet_bind(int sk, struct inet_sk_info *);
46 : : int inet_connect(int sk, struct inet_sk_info *);
47 : :
48 : 8 : static inline void tcp_repair_off(int fd)
49 : : {
50 : 8 : int aux = 0;
51 : :
52 [ - + ]: 8 : if (sys_setsockopt(fd, SOL_TCP, TCP_REPAIR, &aux, sizeof(aux)) < 0)
53 : 0 : pr_perror("Failed to turn off repair mode on socket");
54 : 8 : }
55 : :
56 : : void tcp_locked_conn_add(struct inet_sk_info *);
57 : : void rst_unlock_tcp_connections(void);
58 : : void cpt_unlock_tcp_connections(void);
59 : :
60 : : int dump_one_tcp(int sk, struct inet_sk_desc *sd);
61 : : int restore_one_tcp(int sk, struct inet_sk_info *si);
62 : :
63 : : #define SK_EST_PARAM "tcp-established"
64 : :
65 : : struct cr_options;
66 : : void show_tcp_stream(int fd, struct cr_options *);
67 : :
68 : : int check_tcp_repair(void);
69 : :
70 : : extern int rst_tcp_socks_size;
71 : : extern int rst_tcp_socks_remap(void *addr);
72 : :
73 : : #endif /* __CR_SK_INET_H__ */
|