veyron/runtimes/google/ipc/stream/{proxy, vc}: Switch vom to vom2.
Change-Id: Ic860781b2be3a17fc2236a0ca6c6036f7e15e6e1
diff --git a/runtimes/google/ipc/stream/manager/listener.go b/runtimes/google/ipc/stream/manager/listener.go
index bd6d272..ace828f 100644
--- a/runtimes/google/ipc/stream/manager/listener.go
+++ b/runtimes/google/ipc/stream/manager/listener.go
@@ -17,7 +17,7 @@
"veyron.io/veyron/veyron2/naming"
"veyron.io/veyron/veyron2/verror"
"veyron.io/veyron/veyron2/vlog"
- "veyron.io/veyron/veyron2/vom"
+ "veyron.io/veyron/veyron2/vom2"
)
var errListenerIsClosed = errors.New("Listener has been Closed")
@@ -188,12 +188,24 @@
}
var request proxy.Request
var response proxy.Response
- if err := vom.NewEncoder(flow).Encode(request); err != nil {
+ enc, err := vom2.NewBinaryEncoder(flow)
+ if err != nil {
+ flow.Close()
+ vf.StopAccepting()
+ return nil, nil, fmt.Errorf("failed to create new Encoder: %v", err)
+ }
+ if err := enc.Encode(request); err != nil {
flow.Close()
vf.StopAccepting()
return nil, nil, fmt.Errorf("failed to encode request to proxy: %v", err)
}
- if err := vom.NewDecoder(flow).Decode(&response); err != nil {
+ dec, err := vom2.NewDecoder(flow)
+ if err != nil {
+ flow.Close()
+ vf.StopAccepting()
+ return nil, nil, fmt.Errorf("failed to create new Decoder: %v", err)
+ }
+ if err := dec.Decode(&response); err != nil {
flow.Close()
vf.StopAccepting()
return nil, nil, fmt.Errorf("failed to decode response from proxy: %v", err)
diff --git a/runtimes/google/ipc/stream/proxy/proxy.go b/runtimes/google/ipc/stream/proxy/proxy.go
index 095357b..46cc968 100644
--- a/runtimes/google/ipc/stream/proxy/proxy.go
+++ b/runtimes/google/ipc/stream/proxy/proxy.go
@@ -11,7 +11,7 @@
"veyron.io/veyron/veyron2/security"
"veyron.io/veyron/veyron2/verror"
"veyron.io/veyron/veyron2/vlog"
- "veyron.io/veyron/veyron2/vom"
+ "veyron.io/veyron/veyron2/vom2"
"veyron.io/veyron/veyron/runtimes/google/ipc/stream/crypto"
"veyron.io/veyron/veyron/runtimes/google/ipc/stream/id"
@@ -398,7 +398,10 @@
server.Process.InitVCI(server.VC.VCI())
var request Request
var response Response
- if err := vom.NewDecoder(conn).Decode(&request); err != nil {
+ dec, err := vom2.NewDecoder(conn)
+ if err != nil {
+ response.Error = verror.BadProtocolf("proxy: failed to create Decoder: %v", err)
+ } else if err := dec.Decode(&request); err != nil {
response.Error = verror.BadProtocolf("proxy: unable to read Request: %v", err)
} else if err := p.servers.Add(server); err != nil {
response.Error = verror.Convert(err)
@@ -412,7 +415,13 @@
response.Endpoint = ep.String()
}
}
- if err := vom.NewEncoder(conn).Encode(response); err != nil {
+ enc, err := vom2.NewBinaryEncoder(conn)
+ if err != nil {
+ proxyLog().Infof("Failed to create Encoder for server %v: %v", server, err)
+ server.Close(err)
+ return
+ }
+ if err := enc.Encode(response); err != nil {
proxyLog().Infof("Failed to encode response %#v for server %v", response, server)
server.Close(err)
return
diff --git a/runtimes/google/ipc/stream/vc/auth.go b/runtimes/google/ipc/stream/vc/auth.go
index 5ecc6ca..7513f04 100644
--- a/runtimes/google/ipc/stream/vc/auth.go
+++ b/runtimes/google/ipc/stream/vc/auth.go
@@ -12,7 +12,7 @@
"veyron.io/veyron/veyron2/context"
"veyron.io/veyron/veyron2/ipc/version"
"veyron.io/veyron/veyron2/security"
- "veyron.io/veyron/veyron2/vom"
+ "veyron.io/veyron/veyron2/vom2"
)
var (
@@ -94,7 +94,10 @@
return err
}
var buf bytes.Buffer
- enc := vom.NewEncoder(&buf)
+ enc, err := vom2.NewBinaryEncoder(&buf)
+ if err != nil {
+ return err
+ }
if err := enc.Encode(signature); err != nil {
return err
}
@@ -111,12 +114,20 @@
return err
}
defer msg.Release()
- return vom.NewEncoder(w).Encode(msg.Contents)
+ enc, err = vom2.NewBinaryEncoder(w)
+ if err != nil {
+ return err
+ }
+ return enc.Encode(msg.Contents)
}
func readBlessings(r io.Reader, tag []byte, crypter crypto.Crypter, v version.IPCVersion) (blessings security.Blessings, discharges map[string]security.Discharge, err error) {
var msg []byte
- if err = vom.NewDecoder(r).Decode(&msg); err != nil {
+ dec, err := vom2.NewDecoder(r)
+ if err != nil {
+ return nil, nil, fmt.Errorf("failed to create new decoder: %v", err)
+ }
+ if err = dec.Decode(&msg); err != nil {
return nil, nil, fmt.Errorf("failed to read handshake message: %v", err)
}
buf, err := crypter.Decrypt(iobuf.NewSlice(msg))
@@ -124,7 +135,10 @@
return
}
defer buf.Release()
- dec := vom.NewDecoder(bytes.NewReader(buf.Contents))
+ dec, err = vom2.NewDecoder(bytes.NewReader(buf.Contents))
+ if err != nil {
+ return nil, nil, fmt.Errorf("failed to create new decoder: %v", err)
+ }
var (
wireb security.WireBlessings