mirror of
				https://github.com/yggdrasil-network/yggdrasil-go.git
				synced 2025-11-04 03:05:07 +03:00 
			
		
		
		
	Access NSLog through Cgo for iOS NetworkExtension logging
This commit is contained in:
		
							parent
							
								
									6bbd8c1b30
								
							
						
					
					
						commit
						87362a21e2
					
				
					 4 changed files with 32 additions and 3 deletions
				
			
		| 
						 | 
					@ -109,11 +109,12 @@ func (ai *awdlInterface) handler() {
 | 
				
			||||||
		timer.Reset(timerInterval)
 | 
							timer.Reset(timerInterval)
 | 
				
			||||||
		select {
 | 
							select {
 | 
				
			||||||
		case _ = <-timer.C:
 | 
							case _ = <-timer.C:
 | 
				
			||||||
			send([]byte{'H', 'E', 'L', 'L', 'O'})
 | 
								send([]byte{})
 | 
				
			||||||
		case p := <-ai.peer.linkOut:
 | 
							case p := <-ai.peer.linkOut:
 | 
				
			||||||
			send(p)
 | 
								send(p)
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		case r := <-ai.fromAWDL:
 | 
							case r := <-ai.fromAWDL:
 | 
				
			||||||
 | 
								//_ = append(util.GetBytes(), r...)
 | 
				
			||||||
			ai.peer.handlePacket(r)
 | 
								ai.peer.handlePacket(r)
 | 
				
			||||||
			ai.awdl.core.switchTable.idleIn <- ai.peer.port
 | 
								ai.awdl.core.switchTable.idleIn <- ai.peer.port
 | 
				
			||||||
		case <-ai.shutdown:
 | 
							case <-ai.shutdown:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,8 @@ import (
 | 
				
			||||||
// therefore we use the "dummy" TUN interface instead.
 | 
					// therefore we use the "dummy" TUN interface instead.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (c *Core) StartAutoconfigure() error {
 | 
					func (c *Core) StartAutoconfigure() error {
 | 
				
			||||||
	logger := log.New(os.Stdout, "", 0)
 | 
						mobilelog := MobileLogger{}
 | 
				
			||||||
 | 
						logger := log.New(mobilelog, "", 0)
 | 
				
			||||||
	nc := config.GenerateConfig(true)
 | 
						nc := config.GenerateConfig(true)
 | 
				
			||||||
	nc.IfName = "dummy"
 | 
						nc.IfName = "dummy"
 | 
				
			||||||
	nc.AdminListen = "tcp://localhost:9001"
 | 
						nc.AdminListen = "tcp://localhost:9001"
 | 
				
			||||||
| 
						 | 
					@ -43,7 +44,8 @@ func (c *Core) StartAutoconfigure() error {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (c *Core) StartJSON(configjson []byte) error {
 | 
					func (c *Core) StartJSON(configjson []byte) error {
 | 
				
			||||||
	logger := log.New(os.Stdout, "", 0)
 | 
						mobilelog := MobileLogger{}
 | 
				
			||||||
 | 
						logger := log.New(mobilelog, "", 0)
 | 
				
			||||||
	nc := config.GenerateConfig(false)
 | 
						nc := config.GenerateConfig(false)
 | 
				
			||||||
	var dat map[string]interface{}
 | 
						var dat map[string]interface{}
 | 
				
			||||||
	if err := hjson.Unmarshal(configjson, &dat); err != nil {
 | 
						if err := hjson.Unmarshal(configjson, &dat); err != nil {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										25
									
								
								src/yggdrasil/mobile_ios.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								src/yggdrasil/mobile_ios.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					// +build mobile,darwin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package yggdrasil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					#cgo CFLAGS: -x objective-c
 | 
				
			||||||
 | 
					#cgo LDFLAGS: -framework Foundation
 | 
				
			||||||
 | 
					#import <Foundation/Foundation.h>
 | 
				
			||||||
 | 
					void Log(const char *text) {
 | 
				
			||||||
 | 
					  NSString *nss = [NSString stringWithUTF8String:text];
 | 
				
			||||||
 | 
					  NSLog(@"%@", nss);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					import "C"
 | 
				
			||||||
 | 
					import "unsafe"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type MobileLogger struct {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (nsl MobileLogger) Write(p []byte) (n int, err error) {
 | 
				
			||||||
 | 
						p = append(p, 0)
 | 
				
			||||||
 | 
						cstr := (*C.char)(unsafe.Pointer(&p[0]))
 | 
				
			||||||
 | 
						C.Log(cstr)
 | 
				
			||||||
 | 
						return len(p), nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -217,6 +217,7 @@ func (p *peer) handlePacket(packet []byte) {
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
		util.PutBytes(packet)
 | 
							util.PutBytes(packet)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						return
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Called to handle traffic or protocolTraffic packets.
 | 
					// Called to handle traffic or protocolTraffic packets.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue