TUN-5422: Define RPC to unregister session

This commit is contained in:
cthuang
2021-11-30 19:58:11 +00:00
committed by Arég Harutyunyan
parent 7e47667b08
commit b73c588254
6 changed files with 417 additions and 227 deletions

View File

@@ -14,6 +14,7 @@ import (
type SessionManager interface {
RegisterUdpSession(ctx context.Context, sessionID uuid.UUID, dstIP net.IP, dstPort uint16) error
UnregisterUdpSession(ctx context.Context, sessionID uuid.UUID) error
}
type SessionManager_PogsImpl struct {
@@ -60,6 +61,21 @@ func (i SessionManager_PogsImpl) RegisterUdpSession(p tunnelrpc.SessionManager_r
return resp.Marshal(result)
}
func (i SessionManager_PogsImpl) UnregisterUdpSession(p tunnelrpc.SessionManager_unregisterUdpSession) error {
server.Ack(p.Options)
sessionIDRaw, err := p.Params.SessionId()
if err != nil {
return err
}
sessionID, err := uuid.FromBytes(sessionIDRaw)
if err != nil {
return err
}
return i.impl.UnregisterUdpSession(p.Ctx, sessionID)
}
type RegisterUdpSessionResponse struct {
Err error
}
@@ -116,3 +132,15 @@ func (c SessionManager_PogsClient) RegisterUdpSession(ctx context.Context, sessi
}
return response, nil
}
func (c SessionManager_PogsClient) UnregisterUdpSession(ctx context.Context, sessionID uuid.UUID) error {
client := tunnelrpc.SessionManager{Client: c.Client}
promise := client.UnregisterUdpSession(ctx, func(p tunnelrpc.SessionManager_unregisterUdpSession_Params) error {
if err := p.SetSessionId(sessionID[:]); err != nil {
return err
}
return nil
})
_, err := promise.Struct()
return err
}