55 Commits
Author SHA1 Message Date
Soheil Hassas YeganehandGitHub 7e08502c7a Merge pull request #51 from peter-edge/increase-test-timeout
Increase test timeout from 100ms to 500ms
2017-08-14 16:05:13 -04:00
Soheil Hassas YeganehandGitHub 34a8ab6cda Merge pull request #49 from tmm1/tls-matcher
Add TLS matcher
2017-07-20 14:14:27 -04:00
Soheil Hassas YeganehandGitHub f671b41193 Merge pull request #47 from yaojingguo/issue-46
doc: fix a typo
2017-05-22 08:43:13 -04:00
Soheil Hassas YeganehandGitHub 0068a46c9c Merge pull request #45 from soheilhy/fix-44
Eliminate blocking reads in the HTTP2 matcher.
2017-04-24 21:57:51 -04:00
Soheil Hassas YeganehandGitHub b6ec57c1a4 Merge pull request #43 from soheilhy/dev/go18
Fix tests for Go 1.8+
2017-03-13 10:17:15 -04:00
Soheil Hassas YeganehandGitHub bf4a8ede9e Merge pull request #36 from soheilhy/dev/fix-mem-grow
Fix memory growth
2016-09-25 21:07:37 -04:00
Soheil Hassas Yeganeh f661dcfb59 Reset the sniffing buffer when not needed
The sniffing buffer will live as long as the connection is open,
and we should reset it as soon as the application has read all the
sniffed data.
2016-09-25 20:56:09 -04:00
Soheil Hassas Yeganeh 526b64db7a update the list of contributors. 2016-09-25 01:03:35 -04:00
Soheil Hassas Yeganeh 3ac8d3a667 Fix lint errors in cmux_test.go 2016-09-25 00:58:27 -04:00
Soheil Hassas Yeganeh 861c99e0fc Return not-match on different field values in HTTP2
Retun as soon as we have the matched field in the HTTP2 matcher
regardless of weather the value is matched or not. Fixes #35.

Issue #35 reports that cmux leaks memory when the client is HTTP2
but does not sends the expected header field. For example, when
the non-gRPC client sends a large field in the header and we are
matching for gRPC, we waste a lot of memory in the sniff buffer.
2016-09-25 00:58:17 -04:00
Soheil Hassas YeganehandGitHub 13f520d62c Merge pull request #34 from ekle/master
SetReadDeadline for Matching
2016-09-05 16:05:55 -04:00
Soheil Hassas YeganehandGitHub b26951527b Merge pull request #33 from soheilhy/fix-b32
Fix index out of range in patricia tree
2016-07-15 11:38:34 -07:00
Soheil Hassas YeganehandGitHub e85da3027e Merge pull request #30 from soheilhy/fix-patricia-tree
Fix race in patricia tree
2016-07-15 08:04:18 -07:00
Soheil Hassas Yeganeh 9d1e2a64dd Merge pull request #25 from soheilhy/devel-optimize-patricia
Optimize Patricia tree
2016-05-03 22:33:52 -04:00
Soheil Hassas Yeganeh 9297b6de56 Merge pull request #24 from soheilhy/fix-java-client
Fix java gRPC client
2016-04-24 14:53:47 -04:00
Soheil Hassas Yeganeh 255149b822 Merge pull request #23 from soheilhy/bytes-buffer
Replace TeeReader with a bytes buffer
2016-04-24 14:38:36 -04:00
Soheil Hassas Yeganeh 7ec7ce7ad1 Merge pull request #21 from soheilhy/devel
Use the readable indentation for error flow
2016-02-27 18:16:04 -05:00
Soheil Hassas Yeganeh d710784914 Merge pull request #20 from tamird/fix-read-again
(*MuxConn).Read: fix erroneous io.EOF return
2016-02-25 23:16:54 -05:00
Soheil Hassas Yeganeh d8cc6481fa Merge pull request #18 from tamird/vet-shadow
`go tool vet --shadow .`
2016-02-25 12:04:36 -05:00
Soheil Hassas Yeganeh 23074f6929 Merge pull request #17 from tamird/fix-write
buffer: do not retain passed-in memory
2016-02-25 12:03:57 -05:00
Soheil Hassas Yeganeh 1a2fcbde3a Merge pull request #16 from soheilhy/devel
Close the connections buffered for the listeners
2016-02-23 23:05:27 -05:00
Soheil Hassas Yeganeh 2625710699 Merge pull request #13 from tamird/fix-http2
http2: use io.ReadFull
2016-02-23 11:27:28 -05:00
Soheil Hassas Yeganeh 99ee7b080d Merge pull request #12 from tamird/fix-read
Reduce the number of calls needed to (*MuxConn).Read
2016-02-23 11:20:36 -05:00
Soheil Hassas Yeganeh d5b9190ea9 Merge pull request #11 from tamird/fix-close
Tweak shutdown behaviour
2016-02-23 11:20:27 -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
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
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
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
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
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