1. 29 Oct, 2016 2 commits
  2. 28 Oct, 2016 1 commit
  3. 27 Oct, 2016 3 commits
    • Brad Fitzpatrick's avatar
      http2: initialize Server.IdleTimeout from http.Server as http1 does · b336a971
      Brad Fitzpatrick authored
      This makes ConfigureServer initialize the http2 Server's IdleTimeout
      from the http1 Server configuration, using the same rules as
      IdleTimeout in Go 1.8: first use IdleTimeout if specified, else fall
      back to the old ReadTimeout.
      
      Updates golang/go#14204
      
      Change-Id: I4dee971f8416ef0cbf99335a199c46355f9ab09d
      Reviewed-on: https://go-review.googlesource.com/32230
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarTom Bergan <tombergan@google.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      b336a971
    • Brad Fitzpatrick's avatar
      http2: fix optimized write scheduling · b626cca9
      Brad Fitzpatrick authored
      Fixes regression from https://golang.org/cl/31495 which generated
      massive stacks like:
      
      net/http.(*http2serverConn).startFrameWrite(0x1890e7e0, 0x859bc70, 0x18c26050, 0x1897c1c0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3664 +0x34a
      net/http.(*http2serverConn).scheduleFrameWrite(0x1890e7e0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3779 +0x114
      net/http.(*http2serverConn).wroteFrame(0x1890e7e0, 0x859bb50, 0x18c26060, 0x0, 0x0, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3742 +0xc8
      net/http.(*http2serverConn).startFrameWrite(0x1890e7e0, 0x859bb50, 0x18c26060, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3689 +0x23f
      net/http.(*http2serverConn).scheduleFrameWrite(0x1890e7e0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3779 +0x114
      net/http.(*http2serverConn).writeFrame(0x1890e7e0, 0x859bb50, 0x18c26060, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3648 +0x6b
      net/http.(*http2serverConn).resetStream(0x1890e7e0, 0x1, 0x8, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3815 +0x91
      net/http.(*http2serverConn).wroteFrame(0x1890e7e0, 0x859b6d0, 0x1890db00, 0x1897c1c0, 0x18ede040, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3736 +0x124
      net/http.(*http2serverConn).startFrameWrite(0x1890e7e0, 0x859b6d0, 0x1890db00, 0x1897c1c0, 0x18ede040)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3689 +0x23f
      net/http.(*http2serverConn).scheduleFrameWrite(0x1890e7e0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3779 +0x114
      net/http.(*http2serverConn).wroteFrame(0x1890e7e0, 0x859bc70, 0x18c26018, 0x0, 0x0, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3742 +0xc8
      net/http.(*http2serverConn).startFrameWrite(0x1890e7e0, 0x859bc70, 0x18c26018, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3689 +0x23f
      net/http.(*http2serverConn).scheduleFrameWrite(0x1890e7e0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3779 +0x114
      net/http.(*http2serverConn).wroteFrame(0x1890e7e0, 0x859b730, 0x18ede000, 0x1897c1c0, 0x0, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3742 +0xc8
      net/http.(*http2serverConn).serve(0x1890e7e0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3504 +0x50d
      net/http.(*http2Server).ServeConn(0x18ab49a0, 0x859e040, 0x18df2000, 0x1894ae18)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3152 +0x6d9
      net/http.http2ConfigureServer.func1(0x18d364e0, 0x18df2000, 0x859a1b0, 0x18ab2308)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3033 +0x70
      net/http.(*conn).serve(0x18ad60f0, 0x859cbc0, 0x18aa42a0)
          /tmp/workdir/go/src/net/http/server.go:1633 +0xf03
      
      This changes it to be a loop instead.
      
      This also fixes the "internal error: attempt to send frame on
      half-closed-local stream" crash from golang/go#17627 because
      wroteFrame set stateHalfClosedLocal temporarily while calling
      resetStream which itself does a write in some cases. Prior to CL 31495
      those writes were processed breadth-first. CL 31495 made the writes
      generated from resetStream (like the window updates returning unused
      flow-control) more aggressive and scheduled immediately. This loop
      restores the old write scheduling.
      
      Fixes golang/go#17627
      
      Change-Id: I9651568e4105791d24d46819499efc7e018c86c3
      Reviewed-on: https://go-review.googlesource.com/32217Reviewed-by: 's avatarTom Bergan <tombergan@google.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      b626cca9
    • Tom Bergan's avatar
      http2: implement support for server push · c46f265c
      Tom Bergan authored
      This makes x/net/http2's ResponseWriter implement the new interface,
      http.Pusher. This new interface requires Go 1.8. When compiled against
      older versions of Go, the ResponseWriter does not have a Push method.
      
      Fixes golang/go#13443
      
      Change-Id: I8486ffe4bb5562a94270ace21e90e8c9a4653da0
      Reviewed-on: https://go-review.googlesource.com/29439Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      c46f265c
  4. 24 Oct, 2016 4 commits
    • Tom Bergan's avatar
      http2: reject stream self-dependencies · 65dfc087
      Tom Bergan authored
      Fix spec bug: Section 5.3.1 says that self-dependencies should be
      treated as a stream error of type PROTOCOL_ERROR.
      
      Updates golang/go#16046
      
      Change-Id: I8b5dc8808943dc96aac0c543c7032fa989ab9e0b
      Reviewed-on: https://go-review.googlesource.com/31858Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      65dfc087
    • Brad Fitzpatrick's avatar
      http2: optimize server frame writes · e7b14352
      Brad Fitzpatrick authored
      Don't do async frame writes when the write is known to be small enough
      to definitely fit in the write buffer and not cause a flush (which
      might block). This avoids starting a new goroutine and doing a channel
      send operation for many frame writes.
      
      name                  old time/op    new time/op    delta
      ServerGets-4             146µs ± 2%     144µs ± 1%  -1.46%        (p=0.000 n=14+14)
      ServerPosts-4            162µs ± 1%     160µs ± 1%  -1.15%        (p=0.000 n=15+15)
      Server_GetRequest-4      145µs ± 1%     143µs ± 0%  -1.26%        (p=0.000 n=15+15)
      Server_PostRequest-4     160µs ± 1%     158µs ± 1%  -1.32%        (p=0.000 n=15+15)
      
      The headers frame is the main last one which might show some benefit
      if there's a cheap enough way to conservatively calculate its size.
      
      Change-Id: I9be2ddbf04689340819d8701ea671fff378d9e79
      Reviewed-on: https://go-review.googlesource.com/31495
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      e7b14352
    • Tom Bergan's avatar
      http2: interface to support pluggable schedulers · 4be9b97e
      Tom Bergan authored
      This adds an interface to support pluggable schedulers. The interface
      is defined in writesched.go. The only type needed by this interface is
      FrameWriteRequest, which describes a request to write a frame (this used
      to be called frameWriteMsg). The scheduler can be configured with a new
      field in http2.Server. Two schedulers are implemented:
      
      1) A random scheduler that is essentially equivalent to the existing
         scheduler. This is currently the default scheduler if none is
         configured. The implementation is in writesched_random.go.
      
      2) A scheduler that uses H2 weights and priorities. The H2 priority tree
         is maintained as a tree of priorityNodes. The next frame is chosen by
         walking this tree in topological order, where sibling nodes are ordered
         by their bandwidth usage relative to their H2 weight. Two optional
         features are added to improve performance -- these are configured with
         PriorityWriteSchedulerConfig.
      
      Fixes golang/go#16168
      
      Change-Id: I97ec93e5c58c2efec35455ba2f3c31e849f706af
      Reviewed-on: https://go-review.googlesource.com/25366Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      4be9b97e
    • Nigel Tao's avatar
      publicsuffix: update table to latest list from publicsuffix.org · 5695785b
      Nigel Tao authored
      Update the list to revision 915565885d0fbd25caf7d8b339cd3478f558da94
      (2016-10-19T08:16:09Z).
      
      Change-Id: Ie94e7237015f2d84e0a0d082bd7ff9e04b05ecd9
      Reviewed-on: https://go-review.googlesource.com/31530Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      5695785b
  5. 23 Oct, 2016 1 commit
  6. 22 Oct, 2016 1 commit
  7. 21 Oct, 2016 2 commits
  8. 20 Oct, 2016 2 commits
  9. 19 Oct, 2016 1 commit
    • Brad Fitzpatrick's avatar
      http2: make Server reuse 64k request body buffer between requests · 3bafa332
      Brad Fitzpatrick authored
      name           old time/op    new time/op    delta
      ServerPosts-4     192µs ± 1%     164µs ± 1%  -14.16%  (p=0.000 n=17+19)
      
      name           old alloc/op   new alloc/op   delta
      ServerPosts-4    69.8kB ± 0%     2.8kB ± 0%  -95.95%  (p=0.000 n=18+18)
      
      name           old allocs/op  new allocs/op  delta
      ServerPosts-4      42.0 ± 0%      40.0 ± 0%   -4.76%  (p=0.000 n=20+20)
      
      This is a redo of git rev e7da8eda (golang.org/cl/20542) which had a race
      and was later reverted in golang.org/cl/21160.
      
      Updates golang/go#14960
      Updates grpc/grpc-go#604
      
      Change-Id: Ie216e45730dce4fc0c58f295bcbc669973145599
      Reviewed-on: https://go-review.googlesource.com/31447
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      3bafa332
  10. 18 Oct, 2016 1 commit
  11. 13 Oct, 2016 4 commits
  12. 12 Oct, 2016 1 commit
    • Artyom Pervukhin's avatar
      websocket: limit incoming payload size · 6dba816f
      Artyom Pervukhin authored
      Codec's Receive method calls io.ReadAll of the whole frame payload,
      which can be abused by user sending large payloads in order to exhaust
      server memory.
      
      Introduce limit on received payload size defined by
      Conn.MaxPayloadBytes. If payload size of the message read with
      Codec.Receive exceeds limit, ErrFrameTooLarge error is returned; the
      connection can still be recovered if required: the next call to Receive
      would at first discard leftovers of previous oversized message before
      processing the next one.
      
      Fixes golang/go#5082.
      
      Change-Id: Ib04acd7038474fee39a1719324daaec1c0c496b1
      Reviewed-on: https://go-review.googlesource.com/23590Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      6dba816f
  13. 11 Oct, 2016 1 commit
  14. 07 Oct, 2016 5 commits
    • Radu Berinde's avatar
      trace: don't allocate all events upfront · f4b625ec
      Radu Berinde authored
      SetMaxEvent allocates storage for all events, which is very expensive
      if we want to set a high value; even with small values, the
      unnecessary allocation of the initial slice is measurable.
      
      We improve the performance by having a few events preallocated as part
      of the trace, and appending as necessary. We also co-locate the flags
      in event which makes it smaller (by a word).
      
      We also add a set of benchmarks; before and after amortized cost
      per-event is shown:
      
      name                    old time/op  new time/op  delta
      Trace_Default_2-32      1.19µs ± 1%  0.96µs ± 0%  -18.94%
      Trace_Default_10-32      579ns ± 0%   635ns ± 1%   +9.82%
      Trace_Default_100-32     463ns ± 1%   466ns ± 1%     ~
      Trace_Default_1000-32    451ns ± 1%   451ns ± 0%     ~
      Trace_Default_10000-32   451ns ± 2%   449ns ± 1%     ~
      Trace_10_2-32           1.41µs ± 1%  0.96µs ± 1%  -31.74%
      Trace_10_10-32           623ns ± 1%   634ns ± 1%   +1.73%
      Trace_10_100-32          469ns ± 1%   466ns ± 1%     ~
      Trace_10_1000-32         452ns ± 1%   453ns ± 2%     ~
      Trace_10_10000-32        451ns ± 1%   449ns ± 1%     ~
      Trace_100_2-32          2.78µs ± 2%  0.97µs ± 1%  -65.28%
      Trace_100_10-32          912ns ± 1%   637ns ± 1%  -30.23%
      Trace_100_100-32         479ns ± 1%   541ns ± 0%  +12.77%
      Trace_100_1000-32        510ns ± 0%   541ns ± 1%   +6.08%
      Trace_100_10000-32       514ns ± 1%   540ns ± 0%   +5.14%
      Trace_1000_2-32         17.2µs ± 1%   1.0µs ± 1%  -94.39%
      Trace_1000_10-32        3.90µs ± 1%  0.64µs ± 0%  -83.68%
      Trace_1000_100-32        814ns ± 1%   542ns ± 0%  -33.46%
      Trace_1000_1000-32       503ns ± 1%   581ns ± 0%  +15.56%
      Trace_1000_10000-32     1.28µs ± 2%  1.03µs ± 1%  -19.68%
      
      Change-Id: I5bbc12153a9f30dff821ef139583cb1c07a11069
      Reviewed-on: https://go-review.googlesource.com/30615Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      f4b625ec
    • Brad Fitzpatrick's avatar
      Revert "trace: don't allocate all events upfront" · 9b4f494e
      Brad Fitzpatrick authored
      This reverts commit If7c68bb1809fb92fa5d06cb6640be5e09e1f131f.
      
      Reason for revert: breaks the build for Go 1.6 or below due to use of Go 1.7+ only features.
      
      Original change's description:
      > trace: don't allocate all events upfront
      > 
      > SetMaxEvent allocates storage for all events, which is very expensive
      > if we want to set a high value; even with small values, the
      > unnecessary allocation of the initial slice is measurable.
      > 
      > We improve the performance by having a few events preallocated as part
      > of the trace, and appending as necessary. We also co-locate the flags
      > in event which makes it smaller (by a word).
      > 
      > We also add a set of benchmarks; before and after amortized cost
      > per-event is shown:
      > 
      > name                 old time/op  new time/op  delta
      > Trace/0-2-32         1.19µs ± 1%  0.96µs ± 0%  -18.94%  (p=0.008 n=5+5)
      > Trace/0-10-32         579ns ± 0%   635ns ± 1%   +9.82%  (p=0.008 n=5+5)
      > Trace/0-100-32        463ns ± 1%   466ns ± 1%     ~     (p=0.190 n=5+5)
      > Trace/0-1000-32       451ns ± 1%   451ns ± 0%     ~     (p=0.984 n=5+5)
      > Trace/0-10000-32      451ns ± 2%   449ns ± 1%     ~     (p=0.492 n=5+5)
      > Trace/10-2-32        1.41µs ± 1%  0.96µs ± 1%  -31.74%  (p=0.008 n=5+5)
      > Trace/10-10-32        623ns ± 1%   634ns ± 1%   +1.73%  (p=0.008 n=5+5)
      > Trace/10-100-32       469ns ± 1%   466ns ± 1%     ~     (p=0.357 n=5+5)
      > Trace/10-1000-32      452ns ± 1%   453ns ± 2%     ~     (p=0.913 n=5+5)
      > Trace/10-10000-32     451ns ± 1%   449ns ± 1%     ~     (p=0.175 n=5+5)
      > Trace/100-2-32       2.78µs ± 2%  0.97µs ± 1%  -65.28%  (p=0.008 n=5+5)
      > Trace/100-10-32       912ns ± 1%   637ns ± 1%  -30.23%  (p=0.008 n=5+5)
      > Trace/100-100-32      479ns ± 1%   541ns ± 0%  +12.77%  (p=0.008 n=5+5)
      > Trace/100-1000-32     510ns ± 0%   541ns ± 1%   +6.08%  (p=0.008 n=5+5)
      > Trace/100-10000-32    514ns ± 1%   540ns ± 0%   +5.14%  (p=0.008 n=5+5)
      > Trace/1000-2-32      17.2µs ± 1%   1.0µs ± 1%  -94.39%  (p=0.008 n=5+5)
      > Trace/1000-10-32     3.90µs ± 1%  0.64µs ± 0%  -83.68%  (p=0.008 n=5+5)
      > Trace/1000-100-32     814ns ± 1%   542ns ± 0%  -33.46%  (p=0.008 n=5+5)
      > Trace/1000-1000-32    503ns ± 1%   581ns ± 0%  +15.56%  (p=0.008 n=5+5)
      > Trace/1000-10000-32  1.28µs ± 2%  1.03µs ± 1%  -19.68%  (p=0.008 n=5+5)
      > 
      > Change-Id: If7c68bb1809fb92fa5d06cb6640be5e09e1f131f
      > Reviewed-on: https://go-review.googlesource.com/30374
      > Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      > TryBot-Result: Gobot Gobot <gobot@golang.org>
      > Reviewed-by: Ian Lance Taylor <iant@golang.org>
      > 
      
      Change-Id: I7cf25464ae836489e0af4a59a4d534a5d25ee352
      Reviewed-on: https://go-review.googlesource.com/30650Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      9b4f494e
    • Mikio Hara's avatar
      lif: rename internal types and constants generated by cgo · 084869ab
      Mikio Hara authored
      To match up with other packages that work with IP protocol stack.
      
      Change-Id: Idc3ee5b2399c4982dbd9114aac441f6d7452aeef
      Reviewed-on: https://go-review.googlesource.com/30576
      Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      084869ab
    • Mikio Hara's avatar
      ipv6: rename internal types and constants generated by cgo · 30df40a6
      Mikio Hara authored
      To match up with other packages that work with IP protocol stack.
      
      Change-Id: I1f4eb76051964766113914c9698233022e73d5eb
      Reviewed-on: https://go-review.googlesource.com/30575
      Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      30df40a6
    • Mikio Hara's avatar
      ipv4: rename internal types and constants generated by cgo · a14f429b
      Mikio Hara authored
      To match up with other packages that work with IP protocol stack.
      
      Change-Id: I2d20e4194617b05b6b46d6fba5df1f6c12ae2793
      Reviewed-on: https://go-review.googlesource.com/30574
      Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      a14f429b
  15. 06 Oct, 2016 5 commits
    • Radu Berinde's avatar
      trace: don't allocate all events upfront · 88c1a61b
      Radu Berinde authored
      SetMaxEvent allocates storage for all events, which is very expensive
      if we want to set a high value; even with small values, the
      unnecessary allocation of the initial slice is measurable.
      
      We improve the performance by having a few events preallocated as part
      of the trace, and appending as necessary. We also co-locate the flags
      in event which makes it smaller (by a word).
      
      We also add a set of benchmarks; before and after amortized cost
      per-event is shown:
      
      name                 old time/op  new time/op  delta
      Trace/0-2-32         1.19µs ± 1%  0.96µs ± 0%  -18.94%  (p=0.008 n=5+5)
      Trace/0-10-32         579ns ± 0%   635ns ± 1%   +9.82%  (p=0.008 n=5+5)
      Trace/0-100-32        463ns ± 1%   466ns ± 1%     ~     (p=0.190 n=5+5)
      Trace/0-1000-32       451ns ± 1%   451ns ± 0%     ~     (p=0.984 n=5+5)
      Trace/0-10000-32      451ns ± 2%   449ns ± 1%     ~     (p=0.492 n=5+5)
      Trace/10-2-32        1.41µs ± 1%  0.96µs ± 1%  -31.74%  (p=0.008 n=5+5)
      Trace/10-10-32        623ns ± 1%   634ns ± 1%   +1.73%  (p=0.008 n=5+5)
      Trace/10-100-32       469ns ± 1%   466ns ± 1%     ~     (p=0.357 n=5+5)
      Trace/10-1000-32      452ns ± 1%   453ns ± 2%     ~     (p=0.913 n=5+5)
      Trace/10-10000-32     451ns ± 1%   449ns ± 1%     ~     (p=0.175 n=5+5)
      Trace/100-2-32       2.78µs ± 2%  0.97µs ± 1%  -65.28%  (p=0.008 n=5+5)
      Trace/100-10-32       912ns ± 1%   637ns ± 1%  -30.23%  (p=0.008 n=5+5)
      Trace/100-100-32      479ns ± 1%   541ns ± 0%  +12.77%  (p=0.008 n=5+5)
      Trace/100-1000-32     510ns ± 0%   541ns ± 1%   +6.08%  (p=0.008 n=5+5)
      Trace/100-10000-32    514ns ± 1%   540ns ± 0%   +5.14%  (p=0.008 n=5+5)
      Trace/1000-2-32      17.2µs ± 1%   1.0µs ± 1%  -94.39%  (p=0.008 n=5+5)
      Trace/1000-10-32     3.90µs ± 1%  0.64µs ± 0%  -83.68%  (p=0.008 n=5+5)
      Trace/1000-100-32     814ns ± 1%   542ns ± 0%  -33.46%  (p=0.008 n=5+5)
      Trace/1000-1000-32    503ns ± 1%   581ns ± 0%  +15.56%  (p=0.008 n=5+5)
      Trace/1000-10000-32  1.28µs ± 2%  1.03µs ± 1%  -19.68%  (p=0.008 n=5+5)
      
      Change-Id: If7c68bb1809fb92fa5d06cb6640be5e09e1f131f
      Reviewed-on: https://go-review.googlesource.com/30374
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      88c1a61b
    • Mikio Hara's avatar
      ipv6: don't refer to cgo-generated union field · 2a824cf9
      Mikio Hara authored
      The size of sockaddr_storage is fixed for interoperability on each
      platform. There is no need to depend on changable cgo-generated
      offset values.
      
      Change-Id: I54b775b2a8c86d969a6da0398a335075f0cbe3df
      Reviewed-on: https://go-review.googlesource.com/30178
      Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      2a824cf9
    • Mikio Hara's avatar
      ipv4: don't refer to cgo-generated union field · 534e1870
      Mikio Hara authored
      The size of sockaddr_storage is fixed for interoperability on each
      platform. There is no need to depend on changable cgo-generated
      offset values.
      
      Change-Id: I7469fe330d49867bbdbdfae128834140244925ec
      Reviewed-on: https://go-review.googlesource.com/30177
      Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      534e1870
    • Mikio Hara's avatar
      ipv6: add support for solaris · a7769702
      Mikio Hara authored
      This change adds support for Solaris.
      
      To read and write IPv6 ancillary data using ControlMessage, ipv6 pacakge
      requires https://go-review.googlesource.com/30171/
      
      Note: Unlike other platforms, Solaris seems to have a few restrictions
      on ICMP property access via raw IP sockets. At least applications are
      prohibited from using IPV6_CHECKSUM option for ICMP transport.
      
      Fixes golang/go#17324.
      
      Change-Id: Ie014665d94ae6e4955c95d3eea88db90332e20bd
      Reviewed-on: https://go-review.googlesource.com/30176
      Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      a7769702
    • Mikio Hara's avatar
      ipv4: add support for solaris · c8c327cf
      Mikio Hara authored
      This change adds support for Solaris.
      
      To read and write IPv4 ancillary data using ControlMessage, ipv4 pacakge
      requires https://go-review.googlesource.com/30171/
      
      Note: Unlike other platforms, Solaris seems to have a few restrictions
      on ICMP property access via raw IP sockets. At least applications are
      prohibited from using IP_RECVTTL option for ICMP transport.
      
      Fixes golang/go#17323.
      
      Change-Id: Icb6dfa3c8eced28d14693ddfea4601301999d735
      Reviewed-on: https://go-review.googlesource.com/30175
      Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      c8c327cf
  16. 03 Oct, 2016 4 commits
  17. 01 Oct, 2016 2 commits