forked from tunnel-collections/go-tun2socks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tcp_callback.go
62 lines (46 loc) · 1.25 KB
/
tcp_callback.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package core
/*
#cgo CFLAGS: -I./c/include
#include "lwip/tcp.h"
extern err_t tcpAcceptFn(void *arg, struct tcp_pcb *newpcb, err_t err);
void
set_tcp_accept_callback(struct tcp_pcb *pcb) {
tcp_accept(pcb, tcpAcceptFn);
}
extern err_t tcpRecvFn(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err);
void
set_tcp_recv_callback(struct tcp_pcb *pcb) {
tcp_recv(pcb, tcpRecvFn);
}
extern err_t tcpSentFn(void *arg, struct tcp_pcb *tpcb, u16_t len);
void
set_tcp_sent_callback(struct tcp_pcb *pcb) {
tcp_sent(pcb, tcpSentFn);
}
extern void tcpErrFn(void *arg, err_t err);
void
set_tcp_err_callback(struct tcp_pcb *pcb) {
tcp_err(pcb, tcpErrFn);
}
extern err_t tcpPollFn(void *arg, struct tcp_pcb *tpcb);
void
set_tcp_poll_callback(struct tcp_pcb *pcb, u8_t interval) {
tcp_poll(pcb, tcpPollFn, interval);
}
*/
import "C"
func setTCPAcceptCallback(pcb *C.struct_tcp_pcb) {
C.set_tcp_accept_callback(pcb)
}
func setTCPRecvCallback(pcb *C.struct_tcp_pcb) {
C.set_tcp_recv_callback(pcb)
}
func setTCPSentCallback(pcb *C.struct_tcp_pcb) {
C.set_tcp_sent_callback(pcb)
}
func setTCPErrCallback(pcb *C.struct_tcp_pcb) {
C.set_tcp_err_callback(pcb)
}
func setTCPPollCallback(pcb *C.struct_tcp_pcb, interval C.u8_t) {
C.set_tcp_poll_callback(pcb, interval)
}