Bug 2224651

Summary: compile with websockets support
Product: [Fedora] Fedora Reporter: Craig <candrews>
Component: curlAssignee: Jan Macku <jamacku>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 37CC: candrews, jamacku, jmigacz, kdudka, lzaoral, msekleta, paul, svashisht, vmihalko
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: curl-8.2.1-2.fc40 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-08-10 13:59:08 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Craig 2023-07-21 19:13:06 UTC
curl is not currently compiled with websockets support - it would be great if it could be compiled with websockets support.

websockets support was added in curl 7.86.

Reproducible: Always

Steps to Reproduce:
1. curl 'wss://websocketstest.com/service' -H 'Origin: https://websocketstest.com' -v
Actual Results:  
$ curl 'wss://websocketstest.com/service' -H 'Origin: https://websocketstest.com' -v
* Protocol "wss" not supported or disabled in libcurl
* Closing connection -1
curl: (1) Protocol "wss" not supported or disabled in libcurl

Expected Results:  
$ curl 'wss://websocketstest.com/service' -H 'Origin: https://websocketstest.com' -v
* processing: wss://websocketstest.com/service
*   Trying 88.198.55.153:443...
* Connected to websocketstest.com (88.198.55.153) port 443
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* Server certificate:
*  subject: CN=websocketstest.com
*  start date: Jun 16 20:36:40 2023 GMT
*  expire date: Sep 14 20:36:39 2023 GMT
*  subjectAltName: host "websocketstest.com" matched cert's "websocketstest.com"
*  issuer: C=US; O=Let's Encrypt; CN=R3
*  SSL certificate verify ok.
> GET /service HTTP/1.1
> Host: websocketstest.com
> User-Agent: curl/8.2.0
> Accept: */*
> Upgrade: websocket
> Connection: Upgrade
> Sec-WebSocket-Version: 13
> Sec-WebSocket-Key: dJyS741j7ec7hSQrioMC5g==
> Origin: https://websocketstest.com
> 
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/1.1 101 Switching Protocols
< Date: Fri, 21 Jul 2023 19:12:07 GMT
< Connection: upgrade
< Upgrade: WebSocket
< Sec-WebSocket-Accept: IL/z9g/4kV43+JjyQkcbKEqONtE=
* Received 101, switch to WebSocket; mask 0c9f92de
< 
* WS-DEC: decoded [TEXT payload=0/10]
* WS-DEC: passing [TEXT payload=10/10]

The configuration option is "--enable-websockets"

Comment 1 Jan Macku 2023-08-10 13:59:08 UTC
The support for the WebSockets will be available in Rawhide in curl-8.2.1-2.fc40.

https://bodhi.fedoraproject.org/updates/FEDORA-2023-94ec50b703