aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/rpcserver/runner.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/rpcserver/runner.go')
-rw-r--r--pkg/rpcserver/runner.go14
1 files changed, 8 insertions, 6 deletions
diff --git a/pkg/rpcserver/runner.go b/pkg/rpcserver/runner.go
index a6b763b9a..de38d29f7 100644
--- a/pkg/rpcserver/runner.go
+++ b/pkg/rpcserver/runner.go
@@ -77,12 +77,14 @@ type handshakeConfig struct {
}
type handshakeResult struct {
+ Files []*flatrpc.FileInfo
+ Features []*flatrpc.FeatureInfo
CovFilter []uint64
MachineInfo []byte
Canonicalizer *cover.CanonicalizerInstance
}
-func (runner *Runner) Handshake(conn *flatrpc.Conn, cfg *handshakeConfig) error {
+func (runner *Runner) Handshake(conn *flatrpc.Conn, cfg *handshakeConfig) (handshakeResult, error) {
if runner.updInfo != nil {
runner.updInfo(func(info *dispatcher.Info) {
info.Status = "handshake"
@@ -104,21 +106,21 @@ func (runner *Runner) Handshake(conn *flatrpc.Conn, cfg *handshakeConfig) error
Features: cfg.Features,
}
if err := flatrpc.Send(conn, connectReply); err != nil {
- return err
+ return handshakeResult{}, err
}
infoReq, err := flatrpc.Recv[*flatrpc.InfoRequestRaw](conn)
if err != nil {
- return err
+ return handshakeResult{}, err
}
ret, err := cfg.Callback(infoReq)
if err != nil {
- return err
+ return handshakeResult{}, err
}
infoReply := &flatrpc.InfoReply{
CoverFilter: ret.CovFilter,
}
if err := flatrpc.Send(conn, infoReply); err != nil {
- return err
+ return handshakeResult{}, err
}
runner.mu.Lock()
runner.conn = conn
@@ -132,7 +134,7 @@ func (runner *Runner) Handshake(conn *flatrpc.Conn, cfg *handshakeConfig) error
info.DetailedStatus = runner.QueryStatus
})
}
- return nil
+ return ret, nil
}
func (runner *Runner) ConnectionLoop() error {