websocket: add Client.nonce_size field
parent
0c7bac4ba7
commit
328a235f94
|
@ -42,11 +42,11 @@ fn create_key_challenge_response(seckey string) string {
|
|||
return b64
|
||||
}
|
||||
|
||||
fn get_nonce() string {
|
||||
mut nonce := []byte{}
|
||||
fn get_nonce(nonce_size int) string {
|
||||
mut nonce := []byte{len: nonce_size, cap: nonce_size}
|
||||
alphanum := '0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz'
|
||||
for _ in 0 .. 18 {
|
||||
nonce << alphanum[rand.next(61)]
|
||||
for i in 0 .. nonce_size {
|
||||
nonce[i] = alphanum[rand.next(61)]
|
||||
}
|
||||
return string(byteptr(nonce.data))
|
||||
return tos(nonce.data, nonce.len).clone()
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ pub struct Client {
|
|||
// cwebsocket_subprotocol *subprotocol;
|
||||
// cwebsocket_subprotocol *subprotocols[];
|
||||
mut:
|
||||
nonce_size int = 18 // you can try 16 too
|
||||
lock &sync.Mutex = sync.new_mutex()
|
||||
write_lock &sync.Mutex = sync.new_mutex()
|
||||
state State
|
||||
|
@ -137,7 +138,7 @@ pub fn (mut ws Client) connect() int {
|
|||
ws.state = .connecting
|
||||
ws.lock.unlock()
|
||||
uri := ws.parse_uri()
|
||||
nonce := get_nonce()
|
||||
nonce := get_nonce(ws.nonce_size)
|
||||
seckey := base64.encode(nonce)
|
||||
ai_family := C.AF_INET
|
||||
ai_socktype := C.SOCK_STREAM
|
||||
|
|
Loading…
Reference in New Issue