Tamir Duberstein
6490dea199
Reduce the number of calls needed to (*MuxConn).Read
...
Also affects (*buffer).Read.
2016-02-23 09:49:37 -05:00
Soheil Hassas Yeganeh
95fd8b5c56
Merge pull request #10 from tamird/cleanup-error-handler
...
TestErrorHandler: assert that the error handler runs
2016-02-22 22:47:19 -05:00
Tamir Duberstein
15b1cf90b1
TestErrorHandler: assert that the error handler runs
...
Also fixes a race condition using an atomic and adds the race detector
to Travis CI.
2016-02-22 22:33:02 -05:00
Soheil Hassas Yeganeh
4796322bac
Merge pull request #8 from tamird/fix-leaks
...
fix test-only goroutine leaks
2016-02-22 22:25:32 -05:00
Tamir Duberstein
e5e53dfc73
avoid (*testing.T).FailNow
in non-main goroutines
2016-02-22 22:13:34 -05:00
Tamir Duberstein
ffd8d50a7c
fix test-only goroutine leaks
...
This makes real test failures' stack traces much easier to read.
2016-02-22 22:13:34 -05:00
Soheil Hassas Yeganeh
fd2424be4b
Merge pull request #9 from tamird/DRY
...
Refactor redundant code.
2016-02-22 22:02:58 -05:00
Soheil Hassas Yeganeh
dcd94116ef
Merge pull request #7 from tamird/vet
...
Add `go vet` to Travis CI
2016-02-22 21:43:55 -05:00
Tamir Duberstein
5746da9df6
DRY
2016-02-21 12:59:08 -05:00
Tamir Duberstein
93090fcbbc
Add go vet
to Travis CI
2016-02-21 12:39:43 -05:00
Tamir Duberstein
b5e73ea381
remove named returns and useless closures
2016-02-21 12:09:02 -05:00
Tamir Duberstein
ecc37f82cd
let the kernel assign ports
2016-02-21 12:07:55 -05:00
Tamir Duberstein
4f1b8abafd
Add Go 1.5 & 1.6 to Travis CI
2016-02-21 12:02:55 -05:00
Tamir Duberstein
92a63c4fce
errcheck
...
go/src/github.com/soheilhy/cmux/cmux.go:127:13 c.Close()
go/src/github.com/soheilhy/cmux/cmux.go:134:9 c.Close()
go/src/github.com/soheilhy/cmux/cmux.go:137:15 m.root.Close()
go/src/github.com/soheilhy/cmux/cmux_test.go:43:9 s.Serve(l)
go/src/github.com/soheilhy/cmux/cmux_test.go:52:20 defer r.Body.Close()
go/src/github.com/soheilhy/cmux/cmux_test.go:72:12 s.Register(TestRPCRcvr{})
go/src/github.com/soheilhy/cmux/cmux_test.go:103:15 defer l.Close()
go/src/github.com/soheilhy/cmux/cmux_test.go:109:15 go muxl.Serve()
go/src/github.com/soheilhy/cmux/cmux_test.go:116:20 defer r.Body.Close()
go/src/github.com/soheilhy/cmux/cmux_test.go:125:15 defer l.Close()
go/src/github.com/soheilhy/cmux/cmux_test.go:133:15 go muxl.Serve()
go/src/github.com/soheilhy/cmux/cmux_test.go:141:15 defer l.Close()
go/src/github.com/soheilhy/cmux/cmux_test.go:147:15 go muxl.Serve()
go/src/github.com/soheilhy/cmux/example_recursive_test.go:27:9 s.Serve(l)
go/src/github.com/soheilhy/cmux/example_recursive_test.go:56:12 s.Register(&RecursiveRPCRcvr{})
go/src/github.com/soheilhy/cmux/example_recursive_test.go:88:15 go tlsm.Serve()
go/src/github.com/soheilhy/cmux/example_recursive_test.go:89:12 tcpm.Serve()
go/src/github.com/soheilhy/cmux/example_test.go:30:9 s.Serve(l)
go/src/github.com/soheilhy/cmux/example_test.go:34:9 io.Copy(ws, ws)
go/src/github.com/soheilhy/cmux/example_test.go:41:9 s.Serve(l)
go/src/github.com/soheilhy/cmux/example_test.go:53:12 s.Register(&ExampleRPCRcvr{})
go/src/github.com/soheilhy/cmux/example_test.go:68:13 grpcs.Serve(l)
go/src/github.com/soheilhy/cmux/example_test.go:97:9 m.Serve()
go/src/github.com/soheilhy/cmux/example_tls_test.go:24:9 s.Serve(l)
go/src/github.com/soheilhy/cmux/example_tls_test.go:69:9 m.Serve()
go/src/github.com/soheilhy/cmux/matchers.go:151:14 hdec.Write(f.HeaderBlockFragment())
2016-02-21 12:02:37 -05:00
Soheil Hassas Yeganeh
ec462e9c0e
Replace log.Fatal with log.Panic
2016-02-21 10:46:12 -05:00
Tamir Duberstein
6c298ce7b1
Simplify formatting in patricia.go
...
`gofmt -s -w .`
2016-02-21 10:41:14 -05:00
Soheil Hassas Yeganeh
3ca13bcd9e
Remove the unncessary var and const blocks
2016-02-21 10:37:29 -05:00
Tamir Duberstein
48deeb47a3
golint
...
cmux.go:28:1: exported method ErrNotMatched.Temporary should have comment or be unexported
cmux.go:29:1: exported method ErrNotMatched.Timeout should have comment or be unexported
cmux.go:38:2: exported var ErrListenerClosed should have comment or be unexported
cmux.go:165:6: exported type MuxConn should have comment or be unexported
2016-02-21 10:34:32 -05:00
Tamir Duberstein
05566d752e
vet: buffer_test.go:65: possible formatting directive in Fatal call
2016-02-21 10:33:47 -05:00
Soheil Hassas Yeganeh
345ba38c5f
Merge pull request #6 from emosbaugh/flag_parse_in_library
...
rely on project to call flag.Parse rather than when used as library
2016-02-20 13:50:53 -05:00
Ethan Mosbaugh
4ebe86a5a2
rely on project to call flag.Parse rather than when used as library
2016-02-09 07:53:32 -08:00
Tamir Duberstein
563c371a98
Cleanup code in cmux and bench_test.
...
This commit is a partial cherry pick of pull request #3 , for code cleanup.
2015-12-19 22:37:27 -05:00
Soheil Hassas Yeganeh
89dd8ce1fd
Return an error in Accept() when root is closed.
...
As reported in #4 , when the root listener is closed, calling Accept
on mux'd listeners would block forever, instead of returning an error.
This is because of a bug introduced in b90740d
.
This commit fixes #4 by selecting on both donec and connc of muxed
listeners.
Added a test case to guard against this issue.
2015-12-19 22:28:37 -05:00
Soheil Hassas Yeganeh
44439c27f0
Merge pull request #2 from tamird/update-readme-reasons
...
README: clarify why TLS is limited
2015-12-13 15:36:20 -05:00
Tamir Duberstein
4239e597d0
README: clarify why TLS is limited
2015-12-11 15:22:57 -05:00
Dmitri Shuralyov
44b568c84b
Update to correct vanity import paths.
...
The latest canonical import path for http2 package is
"golang.org/x/net/http2".
The latest canonical import path for grpc examples is
"google.golang.org/grpc/examples/...".
2015-11-25 23:19:45 -05:00
Soheil Hassas Yeganeh
1734b4cc90
Change the import path to the new grpc-go repo
...
gRPC examples have been migrated from the grpc-common repo to their
language-specific repos. This commit uses the new import path.
2015-08-30 21:15:41 -04:00
Soheil Hassas Yeganeh
b90740dfa9
Fix send on closed channel
...
If a matcher go-routine mateches a connection after the root
listener was closed, cmux will panic since all connection channels
will be closed. This commit avoids closing connection channels but
signals the matcher go-routines that the listener is closed via
a done channel.
Tested: Added a test case for this issue.
2015-08-30 21:10:18 -04:00
Soheil Hassas Yeganeh
d47edebeb9
Add websocket example
...
This commit fixes #1 and adds an example matcher for websocket.
2015-08-05 17:32:32 -04:00
Soheil Hassas Yeganeh
a6c45318a5
Nit in README
2015-08-01 12:44:34 -04:00
Soheil Hassas Yeganeh
51556c6df5
Add an example for recursive muxing
2015-08-01 12:08:59 -04:00
Soheil Hassas Yeganeh
fbd0877935
Use a custom buffer intead of buffers from bytes
...
This commit implements a new buffer that eliminates a few copies.
2015-08-01 11:59:50 -04:00
Soheil Hassas Yeganeh
77815df398
Add micro-benchmarks
2015-08-01 11:57:42 -04:00
Soheil Hassas Yeganeh
5b048e6641
Add the license file
2015-08-01 10:36:36 -04:00
Soheil Hassas Yeganeh
09b35f69d5
Remove trailing spaces in README
2015-07-31 19:57:20 -04:00
Soheil Hassas Yeganeh
581432eab8
Mux connections in parallel
...
This commit launches a go-routine for each accepted connection, to match
them in parallel.
2015-07-31 19:42:28 -04:00
Soheil Hassas Yeganeh
fa65c0526e
Add an example for serving HTTP and HTTPS
...
This commit adds a simple Go doc example for serving HTTP and HTTPS on
the same port.
2015-07-31 11:49:28 -04:00
Soheil Hassas Yeganeh
0417b90d39
Add Go RPC in the README example
2015-07-30 11:03:07 -04:00
Soheil Hassas Yeganeh
2e42ad4f75
Nit in README
2015-07-30 10:00:00 -04:00
Soheil Hassas Yeganeh
a9ff8fbcc0
Elaborate on the limitations in README
2015-07-30 00:10:59 -04:00
Soheil Hassas Yeganeh
69469eaa1c
Nit in README
2015-07-29 19:39:19 -04:00
Soheil Hassas Yeganeh
084f5e19e6
Nit in README
2015-07-29 17:35:55 -04:00
Soheil Hassas Yeganeh
6194168d4e
Remove the bugos http2.Configure from tests
...
http2.Configure is not functional with cmux. Asked for
exporting http2.Server.HandleConn().
2015-07-29 17:23:53 -04:00
Soheil Hassas Yeganeh
549d3f9344
Nit in README
2015-07-29 14:53:29 -04:00
Soheil Hassas Yeganeh
cc3a35aef1
Implement the matcher HTTP1 fields
...
This commit adds the implementation for HTTP 1 header fields.
2015-07-29 14:49:37 -04:00
Soheil Hassas Yeganeh
98f6f6f272
Nit in README
...
Fix the broken godoc link.
2015-07-29 14:40:09 -04:00
Soheil Hassas Yeganeh
033dffc90d
Rename selectors.go to matchers.go to be consitent
2015-07-29 14:07:52 -04:00
Soheil Hassas Yeganeh
ea0a73f55e
Nit in README
...
Make capitalizations consistent.
2015-07-29 14:02:24 -04:00
Soheil Hassas Yeganeh
2863fc463a
Fix the broken godoc status link in README
2015-07-29 13:59:57 -04:00
Soheil Hassas Yeganeh
754f5b897d
Initial commit
2015-07-29 13:49:26 -04:00