Files
tun2socks/core/output.go
2019-07-16 11:37:52 +08:00

47 lines
721 B
Go

package core
/*
#cgo CFLAGS: -I./c/include
#include "lwip/tcp.h"
extern err_t output(struct pbuf *p);
err_t
output_ip4(struct netif *netif, struct pbuf *p, const ip4_addr_t *ipaddr)
{
return output(p);
}
err_t
output_ip6(struct netif *netif, struct pbuf *p, const ip6_addr_t *ipaddr)
{
return output(p);
}
void
set_output()
{
if (netif_list != NULL) {
(*netif_list).output = output_ip4;
(*netif_list).output_ip6 = output_ip6;
}
}
*/
import "C"
import (
"errors"
)
var OutputFn func([]byte) (int, error)
func RegisterOutputFn(fn func([]byte) (int, error)) {
OutputFn = fn
C.set_output()
}
func init() {
OutputFn = func(data []byte) (int, error) {
return 0, errors.New("output function not set")
}
}