blob: 087365f8d4afd39ee8ae072507e71708158f8146 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package proxy
// The proxy protocol is:
// (1) Server establishes a VC to the proxy to register its routing id and authenticate.
// (2) The server opens a flow and sends a "Request" message and waits for a "Response"
// message.
// (3) This flow is then kept alive with no more data read/written.
// Closure of this flow indicates that proxying has (or should be) stopped.
// (4) The proxy immediately closes any other flows on the VC.
// Request is the message sent by a server to request that the proxy route
// traffic intended for the server's RoutingId to the network connection
// between the server and the proxy.
type Request struct {
}
// Response is sent by the proxy to the server after processing Request.
type Response struct {
// Error is a description of why the proxy refused to proxy the server.
// A nil error indicates that the proxy will route traffic to the server.
Error error
// Endpoint is the string representation of an endpoint that can be
// used to communicate with the server through the proxy.
Endpoint string
}