starpc 0.8.2 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "starpc",
3
- "version": "0.8.2",
3
+ "version": "0.8.3",
4
4
  "description": "Streaming protobuf RPC service protocol over any two-way channel.",
5
5
  "license": "MIT",
6
6
  "author": {
package/srpc/accept.go ADDED
@@ -0,0 +1,29 @@
1
+ package srpc
2
+
3
+ import (
4
+ "context"
5
+ "net"
6
+ )
7
+
8
+ // AcceptMuxedListener accepts incoming connections from a net.Listener.
9
+ //
10
+ // Uses the default mplex muxer.
11
+ func AcceptMuxedListener(ctx context.Context, lis net.Listener, srv *Server) error {
12
+ for {
13
+ nc, err := lis.Accept()
14
+ if err != nil {
15
+ return err
16
+ }
17
+
18
+ mc, err := NewMuxedConn(nc, true)
19
+ if err != nil {
20
+ _ = nc.Close()
21
+ continue
22
+ }
23
+
24
+ if err := srv.AcceptMuxedConn(ctx, mc); err != nil {
25
+ _ = nc.Close()
26
+ continue
27
+ }
28
+ }
29
+ }
package/srpc/packet-rw.go CHANGED
@@ -2,6 +2,7 @@ package srpc
2
2
 
3
3
  import (
4
4
  "bytes"
5
+ "context"
5
6
  "encoding/binary"
6
7
  "io"
7
8
 
@@ -54,15 +55,18 @@ func (r *PacketReaderWriter) ReadPump(cb PacketHandler, closed CloseHandler) {
54
55
  func (r *PacketReaderWriter) ReadToHandler(cb PacketHandler) error {
55
56
  var currLen uint32
56
57
  buf := make([]byte, 2048)
57
- for {
58
+ isOpen := true
59
+ for isOpen {
58
60
  // read some data into the buffer
59
61
  n, err := r.rw.Read(buf)
60
62
  if err != nil {
61
- if err == io.EOF {
62
- err = nil
63
+ if err == io.EOF || err == context.Canceled {
64
+ isOpen = false
65
+ } else {
66
+ return err
63
67
  }
64
- return err
65
68
  }
69
+
66
70
  // push the data to r.buf
67
71
  _, err = r.buf.Write(buf[:n])
68
72
  if err != nil {
@@ -99,6 +103,9 @@ func (r *PacketReaderWriter) ReadToHandler(cb PacketHandler) error {
99
103
  }
100
104
  }
101
105
  }
106
+
107
+ // closed
108
+ return nil
102
109
  }
103
110
 
104
111
  // Close closes the packet rw.