From ee6a11809009b33dece40fa98e97831f52467650 Mon Sep 17 00:00:00 2001 From: Julian Phillips Date: Sun, 11 May 2014 14:36:16 +0100 Subject: [PATCH] Configure MessagePack to be a bit more like gob By default codec's MessagePack encode/decode will convert a string into a []byte. Tweak the settings so that string -> string and []byte -> []byte. --- packer/rpc/client.go | 7 +++++-- packer/rpc/server.go | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packer/rpc/client.go b/packer/rpc/client.go index 7e2ff00fc..5a338a4cf 100644 --- a/packer/rpc/client.go +++ b/packer/rpc/client.go @@ -40,8 +40,11 @@ func newClientWithMux(mux *muxBroker, streamId uint32) (*Client, error) { return nil, err } - var h codec.MsgpackHandle - clientCodec := codec.GoRpc.ClientCodec(clientConn, &h) + h := &codec.MsgpackHandle{ + RawToString: true, + WriteExt: true, + } + clientCodec := codec.GoRpc.ClientCodec(clientConn, h) return &Client{ mux: mux, diff --git a/packer/rpc/server.go b/packer/rpc/server.go index ca9691870..248fbdd0a 100644 --- a/packer/rpc/server.go +++ b/packer/rpc/server.go @@ -148,8 +148,11 @@ func (s *Server) Serve() { } defer stream.Close() - var h codec.MsgpackHandle - rpcCodec := codec.GoRpc.ServerCodec(stream, &h) + h := &codec.MsgpackHandle{ + RawToString: true, + WriteExt: true, + } + rpcCodec := codec.GoRpc.ServerCodec(stream, h) s.server.ServeCodec(rpcCodec) }