@@ -95,6 +95,7 @@ type Device struct {
95
95
}
96
96
97
97
func (d * Device ) readFromTun () {
98
+ defer util .HandleCrash ()
98
99
for {
99
100
buf := config .LPool .Get ().([]byte )[:]
100
101
n , err := d .tun .Read (buf [:])
@@ -128,6 +129,7 @@ func (d *Device) readFromTun() {
128
129
}
129
130
130
131
func (d * Device ) writeToTun () {
132
+ defer util .HandleCrash ()
131
133
for e := range d .tunOutbound {
132
134
_ , err := d .tun .Write (e .data [:e .length ])
133
135
config .LPool .Put (e .data [:])
@@ -277,6 +279,7 @@ func (p *Peer) sendErr(err error) {
277
279
}
278
280
279
281
func (p * Peer ) readFromConn () {
282
+ defer util .HandleCrash ()
280
283
for {
281
284
buf := config .LPool .Get ().([]byte )[:]
282
285
n , from , err := p .conn .ReadFrom (buf [:])
@@ -312,6 +315,7 @@ func (p *Peer) readFromConn() {
312
315
}
313
316
314
317
func (p * Peer ) readFromTCPConn () {
318
+ defer util .HandleCrash ()
315
319
for packet := range TCPPacketChan {
316
320
src , dst , err := util .ParseIP (packet .Data )
317
321
if err != nil {
@@ -331,6 +335,7 @@ func (p *Peer) readFromTCPConn() {
331
335
}
332
336
333
337
func (p * Peer ) routePeer () {
338
+ defer util .HandleCrash ()
334
339
for e := range p .connInbound {
335
340
if routeToAddr := p .routeMapUDP .RouteTo (e .dst ); routeToAddr != nil {
336
341
log .Debugf ("[UDP] Find UDP route to dst: %s -> %s" , e .dst , routeToAddr )
@@ -363,6 +368,7 @@ func (p *Peer) routePeer() {
363
368
}
364
369
365
370
func (p * Peer ) routeTUN () {
371
+ defer util .HandleCrash ()
366
372
for e := range p .tunInbound {
367
373
if addr := p .routeMapUDP .RouteTo (e .dst ); addr != nil {
368
374
log .Debugf ("[TUN] Find UDP route to dst: %s -> %s" , e .dst , addr )
0 commit comments