@@ -29,16 +29,10 @@ func HandleTCPConnection(ctx context.Context, client *guestagentclient.GuestAgen
29
29
rw := & GrpcClientRW {stream : stream , id : id , addr : guestAddr }
30
30
g .Go (func () error {
31
31
_ , err := io .Copy (rw , conn )
32
- if errors .Is (err , io .EOF ) {
33
- return nil
34
- }
35
32
return err
36
33
})
37
34
g .Go (func () error {
38
35
_ , err := io .Copy (conn , rw )
39
- if errors .Is (err , io .EOF ) {
40
- return nil
41
- }
42
36
return err
43
37
})
44
38
@@ -64,10 +58,11 @@ func HandleUDPConnection(ctx context.Context, client *guestagentclient.GuestAgen
64
58
buf := make ([]byte , 65507 )
65
59
for {
66
60
n , addr , err := conn .ReadFrom (buf )
67
- if errors .Is (err , io .EOF ) {
68
- return nil
69
- }
70
61
if err != nil {
62
+ // https://pkg.go.dev/net#PacketConn does not mention io.EOF semantics.
63
+ if errors .Is (err , io .EOF ) {
64
+ return nil
65
+ }
71
66
return err
72
67
}
73
68
msg := & api.TunnelMessage {
@@ -86,10 +81,10 @@ func HandleUDPConnection(ctx context.Context, client *guestagentclient.GuestAgen
86
81
g .Go (func () error {
87
82
for {
88
83
in , err := stream .Recv ()
89
- if errors .Is (err , io .EOF ) {
90
- return nil
91
- }
92
84
if err != nil {
85
+ if errors .Is (err , io .EOF ) {
86
+ return nil
87
+ }
93
88
return err
94
89
}
95
90
addr , err := net .ResolveUDPAddr ("udp" , in .UdpTargetAddr )
@@ -134,10 +129,10 @@ func (g GrpcClientRW) Write(p []byte) (n int, err error) {
134
129
135
130
func (g GrpcClientRW ) Read (p []byte ) (n int , err error ) {
136
131
in , err := g .stream .Recv ()
137
- if errors .Is (err , io .EOF ) {
138
- return 0 , nil
139
- }
140
132
if err != nil {
133
+ if errors .Is (err , io .EOF ) {
134
+ return 0 , nil
135
+ }
141
136
return 0 , err
142
137
}
143
138
if len (in .Data ) == 0 {
0 commit comments