From 3e6b975cc2c41b3275b1cbb264adc217c746e4ab Mon Sep 17 00:00:00 2001 From: Ben Firshman Date: Fri, 6 Jun 2014 16:18:27 -0700 Subject: [PATCH] Make forward backend respond to msgs on ack return Signed-off-by: Ben Firshman --- backends/forward.go | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/backends/forward.go b/backends/forward.go index 0992235651..b0f3ad9ccf 100644 --- a/backends/forward.go +++ b/backends/forward.go @@ -28,13 +28,15 @@ func Forward() beam.Sender { if err != nil { return fmt.Errorf("%v", err) } - f := &forwarder{client: client} - instance := beam.NewServer() - instance.OnAttach(beam.Handler(f.attach)) - instance.OnStart(beam.Handler(f.start)) - instance.OnLs(beam.Handler(f.ls)) - instance.OnSpawn(beam.Handler(f.spawn)) - _, err = ctx.Ret.Send(&beam.Message{Verb: beam.Ack, Ret: instance}) + f := &forwarder{ + client: client, + Server: beam.NewServer(), + } + f.Server.OnAttach(beam.Handler(f.attach)) + f.Server.OnStart(beam.Handler(f.start)) + f.Server.OnLs(beam.Handler(f.ls)) + f.Server.OnSpawn(beam.Handler(f.spawn)) + _, err = ctx.Ret.Send(&beam.Message{Verb: beam.Ack, Ret: f.Server}) return err })) return backend @@ -42,10 +44,11 @@ func Forward() beam.Sender { type forwarder struct { client *client + *beam.Server } func (f *forwarder) attach(ctx *beam.Message) error { - ctx.Ret.Send(&beam.Message{Verb: beam.Ack}) + ctx.Ret.Send(&beam.Message{Verb: beam.Ack, Ret: f.Server}) for { time.Sleep(1 * time.Second) (&beam.Object{ctx.Ret}).Log("forward: heartbeat")