• Felix Lange's avatar
    rpc: implement websockets with github.com/gorilla/websocket (#19866) · 04e175b8
    Felix Lange authored
    * rpc: implement websockets with github.com/gorilla/websocket
    
    This change makes package rpc use the github.com/gorilla/websocket
    package for WebSockets instead of golang.org/x/net/websocket. The new
    library is more robust and supports all WebSocket features including
    continuation frames.
    
    There are new tests for two issues with the previously-used library:
    
      - TestWebsocketClientPing checks handling of Ping frames.
      - TestWebsocketLargeCall checks whether the request size limit is
        applied correctly.
    
    * rpc: raise HTTP/WebSocket request size limit to 5MB
    
    * rpc: remove default origin for client connections
    
    The client used to put the local hostname into the Origin header because
    the server wanted an origin to accept the connection, but that's silly:
    Origin is for browsers/websites. The nobody would whitelist a particular
    hostname.
    
    Now that the server doesn't need Origin anymore, don't bother setting
    one for clients. Users who need an origin can use DialWebsocket to
    create a client with arbitrary origin if needed.
    
    * vendor: put golang.org/x/net/websocket back
    
    * rpc: don't set Origin header for empty (default) origin
    
    * rpc: add HTTP status code to handshake error
    
    This makes it easier to debug failing connections.
    
    * ethstats: use github.com/gorilla/websocket
    
    * rpc: fix lint
    04e175b8
Name
Last commit
Last update
..
Azure Loading commit data...
StackExchange/wmi Loading commit data...
allegro/bigcache Loading commit data...
apilayer/freegeoip Loading commit data...
aristanetworks/goarista Loading commit data...
btcsuite/btcd Loading commit data...
cespare/cp Loading commit data...
davecgh/go-spew Loading commit data...
deckarep/golang-set Loading commit data...
docker/docker Loading commit data...
edsrzf/mmap-go Loading commit data...
elastic/gosigar Loading commit data...
ethereum/ethash/src/libethash Loading commit data...
fatih/color Loading commit data...
fjl/memsize Loading commit data...
gballet/go-libpcsclite Loading commit data...
go-ole/go-ole Loading commit data...
go-stack/stack Loading commit data...
golang Loading commit data...
gorilla/websocket Loading commit data...
graph-gophers/graphql-go Loading commit data...
hashicorp/golang-lru Loading commit data...
howeyc/fsnotify Loading commit data...
huin/goupnp Loading commit data...
influxdata/influxdb Loading commit data...
jackpal/go-nat-pmp Loading commit data...
julienschmidt/httprouter Loading commit data...
karalabe/usb Loading commit data...
mattn Loading commit data...
mohae/deepcopy Loading commit data...
naoina Loading commit data...
olekukonko/tablewriter Loading commit data...
opentracing/opentracing-go Loading commit data...
oschwald/maxminddb-golang Loading commit data...
pborman/uuid Loading commit data...
peterh/liner Loading commit data...
pkg/errors Loading commit data...
pmezard/go-difflib Loading commit data...
prometheus/tsdb Loading commit data...
rjeczalik/notify Loading commit data...
robertkrimen/otto Loading commit data...
rs Loading commit data...
status-im/keycard-go Loading commit data...
steakknife Loading commit data...
stretchr/testify Loading commit data...
syndtr/goleveldb Loading commit data...
tyler-smith/go-bip39 Loading commit data...
wsddn/go-ecdh Loading commit data...