mirror of
				https://github.com/tailscale/tailscale.git
				synced 2025-11-04 10:11:18 +01:00 
			
		
		
		
	This updates all source files to use a new standard header for copyright and license declaration. Notably, copyright no longer includes a date, and we now use the standard SPDX-License-Identifier header. This commit was done almost entirely mechanically with perl, and then some minimal manual fixes. Updates #6865 Signed-off-by: Will Norris <will@tailscale.com>
		
			
				
	
	
		
			55 lines
		
	
	
		
			912 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			912 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright (c) Tailscale Inc & AUTHORS
 | 
						|
// SPDX-License-Identifier: BSD-3-Clause
 | 
						|
 | 
						|
package neterror
 | 
						|
 | 
						|
import (
 | 
						|
	"errors"
 | 
						|
	"net"
 | 
						|
	"os"
 | 
						|
	"syscall"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
func TestTreatAsLostUDP(t *testing.T) {
 | 
						|
	tests := []struct {
 | 
						|
		name string
 | 
						|
		err  error
 | 
						|
		want bool
 | 
						|
	}{
 | 
						|
		{"nil", nil, false},
 | 
						|
		{"non-nil", errors.New("foo"), false},
 | 
						|
		{"eperm", syscall.EPERM, true},
 | 
						|
		{
 | 
						|
			name: "operror",
 | 
						|
			err: &net.OpError{
 | 
						|
				Op: "write",
 | 
						|
				Err: &os.SyscallError{
 | 
						|
					Syscall: "sendto",
 | 
						|
					Err:     syscall.EPERM,
 | 
						|
				},
 | 
						|
			},
 | 
						|
			want: true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "host_unreach",
 | 
						|
			err: &net.OpError{
 | 
						|
				Op: "write",
 | 
						|
				Err: &os.SyscallError{
 | 
						|
					Syscall: "sendto",
 | 
						|
					Err:     syscall.EHOSTUNREACH,
 | 
						|
				},
 | 
						|
			},
 | 
						|
			want: false,
 | 
						|
		},
 | 
						|
	}
 | 
						|
	for _, tt := range tests {
 | 
						|
		t.Run(tt.name, func(t *testing.T) {
 | 
						|
			if got := TreatAsLostUDP(tt.err); got != tt.want {
 | 
						|
				t.Errorf("got = %v; want %v", got, tt.want)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
 | 
						|
}
 |