Ryan Fitzpatrick
5ec6847320
Adopt go modules
2021-02-05 14:11:34 -05:00
Abhilash Gnan
cdd3331e3e
Add TestClose
...
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
2021-01-14 18:06:57 -05:00
Abhilash Gnan
ce11cfdf3a
Add mutex around channel close
...
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
2021-01-14 18:06:57 -05:00
Abhilash Gnan
ae889c5259
fix blocking select on donec
...
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
2021-01-14 18:06:57 -05:00
Abhilash Gnan
3c0ee784ab
use param for recieve only chan
...
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
2021-01-14 18:06:57 -05:00
Abhilash Gnan
a192073df5
Remove use of mutex around done chan
2021-01-14 18:06:57 -05:00
Abhilash Gnan
e13d1cbf02
add cmux.Close() function
2021-01-14 18:06:57 -05:00
golint fixer
8a8ea3c539
Fix golint import path
2018-10-25 10:41:06 -04:00
Alan D. Cabrera
f7603f4e1c
Fix README.md example code
2018-05-19 12:37:04 -04:00
Soheil Hassas Yeganeh
e09e9389d8
Do not write SETTINGS in response to ACKs.
...
Reported-by talgendler in Issue #42
2018-01-29 10:50:01 -05:00
Yuki Ito
444ce56efe
Add test for multiple matchers
2018-01-23 12:52:48 -05:00
Yuki Ito
cfc68f9888
Fix ugly variable name
2018-01-23 12:52:48 -05:00
Yuki Ito
e96bd75f84
Fix bug matchers are ignored except last one
2018-01-23 12:52:48 -05:00
Soheil Hassas Yeganeh
be5b383fd5
Use IPv4 for the listener to avoid v6 failures on Travis.
2017-12-04 12:53:26 -05:00
Soheil Hassas Yeganeh
b9e684ba4e
Fix TestClose for Go10.
...
Depending on the Go version used, reading from a closed pipe can return
net.OpError or io.ErrClosedPipe. Simply check the string content of the
error.
2017-12-04 12:53:26 -05:00
Peter Edge
bb79a83465
Add matchers for header value prefixes
2017-08-14 16:21:37 -04:00
Soheil Hassas Yeganeh
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
Peter Edge
0c129dc694
Increase test timeout from 100ms to 500ms
2017-08-14 15:22:33 -04:00
Soheil Hassas Yeganeh
34a8ab6cda
Merge pull request #49 from tmm1/tls-matcher
...
Add TLS matcher
2017-07-20 14:14:27 -04:00
Aman Gupta
3b204bab2a
Add simple test for cmux.TLS() matcher
2017-07-20 10:56:11 -07:00
Aman Gupta
9a3402ad7a
unexport prefixByteMatcher
2017-07-19 21:45:02 -07:00
Aman Gupta
4f90533583
add TLS matcher
2017-07-19 20:08:18 -07:00
Soheil Hassas Yeganeh
8cd60510aa
Remove V4 address family in cmux_test.go.
...
On IPv6 only machines, cmux_test.go would fail because it forces
tcp4. Simply use tcp, instead.
2017-07-03 09:35:36 -04:00
Soheil Hassas Yeganeh
f671b41193
Merge pull request #47 from yaojingguo/issue-46
...
doc: fix a typo
2017-05-22 08:43:13 -04:00
Jingguo Yao
885b8d8a14
doc: fix a typo
2017-05-22 20:38:03 +08:00
Soheil Hassas Yeganeh
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 Yeganeh
6a5d332559
Remove Go 1.5 from travis builds.
...
gRPC doesn't support Go 1.5 anymore, and the build would
fail if we keep testing with Go 1.5.
2017-04-24 21:45:35 -04:00
Soheil Hassas Yeganeh
c0f3570a02
Eliminate blocking reads in the HTTP2 matcher.
...
The HTTP2 matcher uses io.ReadFull to read the client preface.
If the client sends a string shorter than the preface (e.g.,
SSL version) io.ReadFull will block.
Replace io.ReadFull with Read and assume partial reads will not
match
Fixes #44
2017-04-23 00:08:19 -04:00
Soheil Hassas Yeganeh
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 Yeganeh
79b9df6ccf
Add Go 1.8 to the travis config.
2017-03-13 09:57:57 -04:00
Soheil Hassas Yeganeh
210139db95
Change connection closed string in tests.
...
Go 1.8 and 1.9 use different text for the connection closed error.
Use their common prefix (i.e., "use of closed") in the tests for
them to pass on all Go versions.
Go 1.8: "use of closed network connection"
Go 1.9: "use of closed file or network connection"
Suggested-by: Damien Neil <dneil@google.com>
2017-03-13 09:57:57 -04:00
Soheil Hassas Yeganeh
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 Yeganeh
13f520d62c
Merge pull request #34 from ekle/master
...
SetReadDeadline for Matching
2016-09-05 16:05:55 -04:00
Andreas Jaekle
e132036cce
SetReadDeadline for Matching
2016-09-05 19:56:50 +02:00
Soheil Hassas Yeganeh
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 Yeganeh
eddb3b1467
Fix index out of range in patricia tree
...
Bug #32 reported that there is an index out of range error. This
issue was introduced in 703b087
.
Fix #32 and add a test to detect this issue
2016-07-15 10:01:37 -07:00
Soheil Hassas Yeganeh
e85da3027e
Merge pull request #30 from soheilhy/fix-patricia-tree
...
Fix race in patricia tree
2016-07-15 08:04:18 -07:00
Tamir Duberstein
df31d48636
Parallelize benchmarks
2016-07-14 22:03:14 -07:00
Soheil Hassas Yeganeh
fd01d3cc6c
Fix race in patricia tree
...
This commit fixes a major issue added in 703b087a
.
There are still wins on allocation though.
benchmark old ns/op new ns/op delta
BenchmarkCMuxConnHTTP1-4 783 836 +6.77%
BenchmarkCMuxConnHTTP2-4 895 806 -9.94%
BenchmarkCMuxConnHTTP1n2-4 1000 1026 +2.60%
BenchmarkCMuxConnHTTP2n1-4 916 961 +4.91%
benchmark old allocs new allocs delta
BenchmarkCMuxConnHTTP1-4 3 4 +33.33%
BenchmarkCMuxConnHTTP2-4 4 4 +0.00%
BenchmarkCMuxConnHTTP1n2-4 4 5 +25.00%
BenchmarkCMuxConnHTTP2n1-4 4 5 +25.00%
benchmark old bytes new bytes delta
BenchmarkCMuxConnHTTP1-4 272 280 +2.94%
BenchmarkCMuxConnHTTP2-4 304 304 +0.00%
BenchmarkCMuxConnHTTP1n2-4 304 312 +2.63%
BenchmarkCMuxConnHTTP2n1-4 304 312 +2.63%
2016-07-14 22:01:30 -07:00
Soheil Hassas Yeganeh
f952454ed9
Add the list of contributors
...
Add the list of contributors in a separate file and add links
to the LICENSE and CONTRIBUTORS files.
Fixes #28
2016-07-09 14:07:27 -04:00
Soheil Hassas Yeganeh
00342b4d79
Add package level docs
2016-07-09 14:01:24 -04:00
Soheil Hassas Yeganeh
cd9b7d74b9
Add copyright notice headers on all Go files.
...
As per http://www.apache.org/legal/src-headers.html#headers
Fixes #28
2016-07-09 13:56:02 -04: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
703b087a39
Optimize Patricia tree
...
Remove all the extra allocations in the Patricia tree.
O(1) allocation for Patricia and ~10% improvement for HTTP1 matching.
benchmark old ns/op new ns/op delta
BenchmarkCMuxConnHTTP1-4 908 782 -13.88%
BenchmarkCMuxConnHTTP2-4 835 818 -2.04%
BenchmarkCMuxConnHTTP1n2-4 1074 1033 -3.82%
BenchmarkCMuxConnHTTP2n1-4 1010 901 -10.79%
benchmark old allocs new allocs delta
BenchmarkCMuxConnHTTP1-4 5 3 -40.00%
BenchmarkCMuxConnHTTP2-4 4 4 +0.00%
BenchmarkCMuxConnHTTP1n2-4 6 4 -33.33%
BenchmarkCMuxConnHTTP2n1-4 6 4 -33.33%
benchmark old bytes new bytes delta
BenchmarkCMuxConnHTTP1-4 276 272 -1.45%
BenchmarkCMuxConnHTTP2-4 304 304 +0.00%
BenchmarkCMuxConnHTTP1n2-4 306 304 -0.65%
BenchmarkCMuxConnHTTP2n1-4 308 304 -1.30%
2016-05-03 22:28:32 -04:00
Soheil Hassas Yeganeh
d45bcbe1db
Add more benchmarks
...
Add benchmarks for HTTP2 matchers and combinations of it with HTTP1Fast.
2016-05-03 22:14:35 -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