@@ -40,14 +40,14 @@ WebSocketsClient::~WebSocketsClient() {
40
40
void WebSocketsClient::begin (const char *host, uint16_t port, const char * url) {
41
41
_host = host;
42
42
_port = port;
43
+ _fingerprint = " " ;
43
44
44
45
_client.num = 0 ;
45
46
_client.status = WSC_NOT_CONNECTED;
46
47
_client.tcp = NULL ;
47
48
#if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
48
49
_client.isSSL = false ;
49
50
_client.ssl = NULL ;
50
- _client.fingerprint = NULL ;
51
51
#endif
52
52
_client.cUrl = url;
53
53
_client.cCode = 0 ;
@@ -72,24 +72,14 @@ void WebSocketsClient::begin(String host, uint16_t port, String url) {
72
72
}
73
73
74
74
#if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
75
- void WebSocketsClient::beginSSL (const char *host, uint16_t port, const char * url) {
76
- begin (host, port, url);
77
- _client.isSSL = true ;
78
- }
79
-
80
- void WebSocketsClient::beginSSL (String host, uint16_t port, String url) {
81
- beginSSL (host.c_str (), port, url.c_str ());
82
- }
83
-
84
75
void WebSocketsClient::beginSSL (const char *host, uint16_t port, const char * url, const char * fingerprint) {
85
76
begin (host, port, url);
86
77
_client.isSSL = true ;
87
- _client. fingerprint = fingerprint;
78
+ _fingerprint = fingerprint;
88
79
}
89
80
90
- void WebSocketsClient::beginSSL (String host, uint16_t port, String url, const char * fingerprint) {
91
- beginSSL (host.c_str (), port, url.c_str ());
92
- _client.fingerprint = fingerprint;
81
+ void WebSocketsClient::beginSSL (String host, uint16_t port, String url, String fingerprint) {
82
+ beginSSL (host.c_str (), port, url.c_str (), fingerprint.c_str ());
93
83
}
94
84
#endif
95
85
@@ -136,9 +126,9 @@ void WebSocketsClient::loop(void) {
136
126
137
127
#if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
138
128
_client.tcp ->setNoDelay (true );
139
-
140
- if (_client.isSSL && _client. fingerprint != NULL ) {
141
- if (!(((WiFiClientSecure*) _client.tcp ) ->verify (_client. fingerprint , _host.c_str () ))) {
129
+
130
+ if (_client.isSSL && _fingerprint. length () ) {
131
+ if (! _client.ssl ->verify (_fingerprint. c_str () , _host.c_str ())) {
142
132
DEBUG_WEBSOCKETS (" [WS-Client] certificate mismatch\n " );
143
133
WebSockets::clientDisconnect (&_client, 1000 );
144
134
return ;
0 commit comments