Do not require NetworkExtension to know its own name
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
@@ -32,15 +32,14 @@ var loggerFunc unsafe.Pointer
|
||||
var versionString *C.char
|
||||
|
||||
type CLogger struct {
|
||||
level C.int
|
||||
interfaceName string
|
||||
level C.int
|
||||
}
|
||||
|
||||
func (l *CLogger) Write(p []byte) (int, error) {
|
||||
if uintptr(loggerFunc) == 0 {
|
||||
return 0, errors.New("No logger initialized")
|
||||
}
|
||||
message := C.CString(l.interfaceName + ": " + string(p))
|
||||
message := C.CString(string(p))
|
||||
C.callLogger(loggerFunc, l.level, message)
|
||||
C.free(unsafe.Pointer(message))
|
||||
return len(p), nil
|
||||
@@ -75,17 +74,13 @@ func wgSetLogger(loggerFn uintptr) {
|
||||
}
|
||||
|
||||
//export wgTurnOn
|
||||
func wgTurnOn(ifnameRef string, settings string, tunFd int32) int32 {
|
||||
interfaceName := string([]byte(ifnameRef))
|
||||
|
||||
func wgTurnOn(settings string, tunFd int32) int32 {
|
||||
logger := &Logger{
|
||||
Debug: log.New(&CLogger{level: 0, interfaceName: interfaceName}, "", 0),
|
||||
Info: log.New(&CLogger{level: 1, interfaceName: interfaceName}, "", 0),
|
||||
Error: log.New(&CLogger{level: 2, interfaceName: interfaceName}, "", 0),
|
||||
Debug: log.New(&CLogger{level: 0}, "", 0),
|
||||
Info: log.New(&CLogger{level: 1}, "", 0),
|
||||
Error: log.New(&CLogger{level: 2}, "", 0),
|
||||
}
|
||||
|
||||
logger.Debug.Println("Debug log enabled")
|
||||
|
||||
tun, _, err := tun.CreateTUNFromFD(int(tunFd))
|
||||
if err != nil {
|
||||
logger.Error.Println(err)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
typedef struct { const char *p; size_t n; } gostring_t;
|
||||
typedef void(*logger_fn_t)(int level, const char *msg);
|
||||
extern void wgSetLogger(logger_fn_t logger_fn);
|
||||
extern int wgTurnOn(gostring_t ifname, gostring_t settings, int32_t tun_fd);
|
||||
extern int wgTurnOn(gostring_t settings, int32_t tun_fd);
|
||||
extern void wgTurnOff(int handle);
|
||||
extern int64_t wgSetConfig(int handle, gostring_t settings);
|
||||
extern uint16_t wgGetListenPort(int handle);
|
||||
|
||||
Reference in New Issue
Block a user