Skip to content

Commit cd92ddb

Browse files
committed
driver(external): resolve GuestAgentConn() issue by proxying via new socket
Signed-off-by: Ansuman Sahoo <[email protected]>
1 parent d13a7de commit cd92ddb

File tree

6 files changed

+173
-290
lines changed

6 files changed

+173
-290
lines changed

pkg/driver/external/client/grpchijack/hijack.go

Lines changed: 0 additions & 135 deletions
This file was deleted.

pkg/driver/external/client/methods.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -241,23 +241,30 @@ func (d *DriverClient) ForwardGuestAgent() bool {
241241
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
242242
defer cancel()
243243

244-
_, err := d.DriverSvc.ForwardGuestAgent(ctx, &emptypb.Empty{})
244+
resp, err := d.DriverSvc.ForwardGuestAgent(ctx, &emptypb.Empty{})
245245
if err != nil {
246246
d.logger.Errorf("Failed to check guest agent forwarding: %v", err)
247247
return false
248248
}
249249

250-
return true
250+
return resp.ShouldForward
251251
}
252252

253253
func (d *DriverClient) GuestAgentConn(ctx context.Context) (net.Conn, error) {
254254
d.logger.Info("Getting guest agent connection")
255-
_, err := d.DriverSvc.GuestAgentConn(ctx, &emptypb.Empty{})
255+
resp, err := d.DriverSvc.GuestAgentConn(ctx, &emptypb.Empty{})
256256
if err != nil {
257257
d.logger.Errorf("Failed to get guest agent connection: %v", err)
258258
return nil, err
259259
}
260-
return nil, nil
260+
261+
var nd net.Dialer
262+
unixConn, err := nd.DialContext(ctx, "unix", resp.SocketPath)
263+
if err != nil {
264+
d.logger.Errorf("Failed to connect to guest agent socket %s: %v", resp.SocketPath, err)
265+
return nil, err
266+
}
267+
return unixConn, nil
261268
}
262269

263270
func (d *DriverClient) GetInfo() driver.Info {

0 commit comments

Comments
 (0)