mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 09:32:25 -05:00 
			
		
		
		
	[chore] Update gorilla/websocket (#3561)
The maintainers messed with the v1.5.2 tag which causes Go checksum validation problems as the Go module proxy saw and recorded the original hash. This updates to 1.5.3 which doesn't have the issue.
This commit is contained in:
		
					parent
					
						
							
								ae1a98558a
							
						
					
				
			
			
				commit
				
					
						2ed409888b
					
				
			
		
					 22 changed files with 115 additions and 1081 deletions
				
			
		
							
								
								
									
										72
									
								
								vendor/github.com/gorilla/websocket/conn.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										72
									
								
								vendor/github.com/gorilla/websocket/conn.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -6,10 +6,11 @@ package websocket | |||
| 
 | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"crypto/rand" | ||||
| 	"encoding/binary" | ||||
| 	"errors" | ||||
| 	"io" | ||||
| 	"io/ioutil" | ||||
| 	"math/rand" | ||||
| 	"net" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
|  | @ -180,16 +181,16 @@ var ( | |||
| 	errInvalidControlFrame = errors.New("websocket: invalid control frame") | ||||
| ) | ||||
| 
 | ||||
| // maskRand is an io.Reader for generating mask bytes. The reader is initialized | ||||
| // to crypto/rand Reader. Tests swap the reader to a math/rand reader for | ||||
| // reproducible results. | ||||
| var maskRand = rand.Reader | ||||
| 
 | ||||
| // newMaskKey returns a new 32 bit value for masking client frames. | ||||
| func newMaskKey() [4]byte { | ||||
| 	var k [4]byte | ||||
| 	_, _ = io.ReadFull(maskRand, k[:]) | ||||
| 	return k | ||||
| 	n := rand.Uint32() | ||||
| 	return [4]byte{byte(n), byte(n >> 8), byte(n >> 16), byte(n >> 24)} | ||||
| } | ||||
| 
 | ||||
| func hideTempErr(err error) error { | ||||
| 	if e, ok := err.(net.Error); ok && e.Temporary() { | ||||
| 		err = &netError{msg: e.Error(), timeout: e.Timeout()} | ||||
| 	} | ||||
| 	return err | ||||
| } | ||||
| 
 | ||||
| func isControl(frameType int) bool { | ||||
|  | @ -357,6 +358,7 @@ func (c *Conn) RemoteAddr() net.Addr { | |||
| // Write methods | ||||
| 
 | ||||
| func (c *Conn) writeFatal(err error) error { | ||||
| 	err = hideTempErr(err) | ||||
| 	c.writeErrMu.Lock() | ||||
| 	if c.writeErr == nil { | ||||
| 		c.writeErr = err | ||||
|  | @ -434,27 +436,21 @@ func (c *Conn) WriteControl(messageType int, data []byte, deadline time.Time) er | |||
| 		maskBytes(key, 0, buf[6:]) | ||||
| 	} | ||||
| 
 | ||||
| 	if deadline.IsZero() { | ||||
| 		// No timeout for zero time. | ||||
| 		<-c.mu | ||||
| 	} else { | ||||
| 		d := time.Until(deadline) | ||||
| 	d := 1000 * time.Hour | ||||
| 	if !deadline.IsZero() { | ||||
| 		d = deadline.Sub(time.Now()) | ||||
| 		if d < 0 { | ||||
| 			return errWriteTimeout | ||||
| 		} | ||||
| 		select { | ||||
| 		case <-c.mu: | ||||
| 		default: | ||||
| 			timer := time.NewTimer(d) | ||||
| 			select { | ||||
| 			case <-c.mu: | ||||
| 				timer.Stop() | ||||
| 			case <-timer.C: | ||||
| 				return errWriteTimeout | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	timer := time.NewTimer(d) | ||||
| 	select { | ||||
| 	case <-c.mu: | ||||
| 		timer.Stop() | ||||
| 	case <-timer.C: | ||||
| 		return errWriteTimeout | ||||
| 	} | ||||
| 	defer func() { c.mu <- struct{}{} }() | ||||
| 
 | ||||
| 	c.writeErrMu.Lock() | ||||
|  | @ -799,7 +795,7 @@ func (c *Conn) advanceFrame() (int, error) { | |||
| 	// 1. Skip remainder of previous frame. | ||||
| 
 | ||||
| 	if c.readRemaining > 0 { | ||||
| 		if _, err := io.CopyN(io.Discard, c.br, c.readRemaining); err != nil { | ||||
| 		if _, err := io.CopyN(ioutil.Discard, c.br, c.readRemaining); err != nil { | ||||
| 			return noFrame, err | ||||
| 		} | ||||
| 	} | ||||
|  | @ -1012,7 +1008,7 @@ func (c *Conn) NextReader() (messageType int, r io.Reader, err error) { | |||
| 	for c.readErr == nil { | ||||
| 		frameType, err := c.advanceFrame() | ||||
| 		if err != nil { | ||||
| 			c.readErr = err | ||||
| 			c.readErr = hideTempErr(err) | ||||
| 			break | ||||
| 		} | ||||
| 
 | ||||
|  | @ -1052,7 +1048,7 @@ func (r *messageReader) Read(b []byte) (int, error) { | |||
| 				b = b[:c.readRemaining] | ||||
| 			} | ||||
| 			n, err := c.br.Read(b) | ||||
| 			c.readErr = err | ||||
| 			c.readErr = hideTempErr(err) | ||||
| 			if c.isServer { | ||||
| 				c.readMaskPos = maskBytes(c.readMaskKey, c.readMaskPos, b[:n]) | ||||
| 			} | ||||
|  | @ -1073,7 +1069,7 @@ func (r *messageReader) Read(b []byte) (int, error) { | |||
| 		frameType, err := c.advanceFrame() | ||||
| 		switch { | ||||
| 		case err != nil: | ||||
| 			c.readErr = err | ||||
| 			c.readErr = hideTempErr(err) | ||||
| 		case frameType == TextMessage || frameType == BinaryMessage: | ||||
| 			c.readErr = errors.New("websocket: internal error, unexpected text or binary in Reader") | ||||
| 		} | ||||
|  | @ -1098,7 +1094,7 @@ func (c *Conn) ReadMessage() (messageType int, p []byte, err error) { | |||
| 	if err != nil { | ||||
| 		return messageType, nil, err | ||||
| 	} | ||||
| 	p, err = io.ReadAll(r) | ||||
| 	p, err = ioutil.ReadAll(r) | ||||
| 	return messageType, p, err | ||||
| } | ||||
| 
 | ||||
|  | @ -1165,7 +1161,7 @@ func (c *Conn) SetPingHandler(h func(appData string) error) { | |||
| 			err := c.WriteControl(PongMessage, []byte(message), time.Now().Add(writeWait)) | ||||
| 			if err == ErrCloseSent { | ||||
| 				return nil | ||||
| 			} else if _, ok := err.(net.Error); ok { | ||||
| 			} else if e, ok := err.(net.Error); ok && e.Temporary() { | ||||
| 				return nil | ||||
| 			} | ||||
| 			return err | ||||
|  | @ -1240,15 +1236,3 @@ func FormatCloseMessage(closeCode int, text string) []byte { | |||
| 	copy(buf[2:], text) | ||||
| 	return buf | ||||
| } | ||||
| 
 | ||||
| var messageTypes = map[int]string{ | ||||
| 	TextMessage:   "TextMessage", | ||||
| 	BinaryMessage: "BinaryMessage", | ||||
| 	CloseMessage:  "CloseMessage", | ||||
| 	PingMessage:   "PingMessage", | ||||
| 	PongMessage:   "PongMessage", | ||||
| } | ||||
| 
 | ||||
| func FormatMessageType(mt int) string { | ||||
| 	return messageTypes[mt] | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue