s/vgo/dep/
This commit is contained in:
		
							parent
							
								
									f387133c21
								
							
						
					
					
						commit
						8788b41ab2
					
				
					 321 changed files with 55322 additions and 145 deletions
				
			
		
							
								
								
									
										54
									
								
								build/manifest/vendor/github.com/gorilla/websocket/mask.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								build/manifest/vendor/github.com/gorilla/websocket/mask.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,54 @@ | |||
| // Copyright 2016 The Gorilla WebSocket Authors. All rights reserved.  Use of | ||||
| // this source code is governed by a BSD-style license that can be found in the | ||||
| // LICENSE file. | ||||
| 
 | ||||
| // +build !appengine | ||||
| 
 | ||||
| package websocket | ||||
| 
 | ||||
| import "unsafe" | ||||
| 
 | ||||
| const wordSize = int(unsafe.Sizeof(uintptr(0))) | ||||
| 
 | ||||
| func maskBytes(key [4]byte, pos int, b []byte) int { | ||||
| 	// Mask one byte at a time for small buffers. | ||||
| 	if len(b) < 2*wordSize { | ||||
| 		for i := range b { | ||||
| 			b[i] ^= key[pos&3] | ||||
| 			pos++ | ||||
| 		} | ||||
| 		return pos & 3 | ||||
| 	} | ||||
| 
 | ||||
| 	// Mask one byte at a time to word boundary. | ||||
| 	if n := int(uintptr(unsafe.Pointer(&b[0]))) % wordSize; n != 0 { | ||||
| 		n = wordSize - n | ||||
| 		for i := range b[:n] { | ||||
| 			b[i] ^= key[pos&3] | ||||
| 			pos++ | ||||
| 		} | ||||
| 		b = b[n:] | ||||
| 	} | ||||
| 
 | ||||
| 	// Create aligned word size key. | ||||
| 	var k [wordSize]byte | ||||
| 	for i := range k { | ||||
| 		k[i] = key[(pos+i)&3] | ||||
| 	} | ||||
| 	kw := *(*uintptr)(unsafe.Pointer(&k)) | ||||
| 
 | ||||
| 	// Mask one word at a time. | ||||
| 	n := (len(b) / wordSize) * wordSize | ||||
| 	for i := 0; i < n; i += wordSize { | ||||
| 		*(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&b[0])) + uintptr(i))) ^= kw | ||||
| 	} | ||||
| 
 | ||||
| 	// Mask one byte at a time for remaining bytes. | ||||
| 	b = b[n:] | ||||
| 	for i := range b { | ||||
| 		b[i] ^= key[pos&3] | ||||
| 		pos++ | ||||
| 	} | ||||
| 
 | ||||
| 	return pos & 3 | ||||
| } | ||||
		Reference in a new issue