Skip to content

Commit de8b21f

Browse files
Merge pull request #59 from ixds/warnings
Close issue #58: fix for defined but not used warnings
2 parents c111d9b + a62d84d commit de8b21f

File tree

8 files changed

+347
-331
lines changed

8 files changed

+347
-331
lines changed

libs/ofxLibwebsockets/include/ofxLibwebsockets/Client.h

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,7 @@ namespace ofxLibwebsockets {
2828
};
2929

3030
// call this function to set up a vanilla client options object
31-
static ClientOptions defaultClientOptions(){
32-
ClientOptions opts;
33-
opts.host = "localhost";
34-
opts.port = 80;
35-
opts.bUseSSL = false;
36-
opts.channel = "/";
37-
opts.protocol = "NULL";
38-
opts.version = -1; //use latest version
39-
40-
opts.ka_time = 0;
41-
opts.ka_probes = 0;
42-
opts.ka_interval = 0;
43-
return opts;
44-
};
31+
extern ClientOptions defaultClientOptions();
4532

4633
class Client : public Reactor {
4734
friend class Protocol;
@@ -105,4 +92,4 @@ namespace ofxLibwebsockets {
10592
Protocol clientProtocol;
10693

10794
};
108-
};
95+
};

libs/ofxLibwebsockets/include/ofxLibwebsockets/Reactor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,5 +78,5 @@ namespace ofxLibwebsockets {
7878

7979
};
8080

81-
static vector<Reactor *> reactors;
81+
extern vector<Reactor *> reactors;
8282
};

libs/ofxLibwebsockets/include/ofxLibwebsockets/Server.h

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,7 @@ namespace ofxLibwebsockets {
4040
int ka_interval; // how long to wait between probes, in seconds; ignored if ka_time == 0
4141
};
4242

43-
static ServerOptions defaultServerOptions(){
44-
ServerOptions opts;
45-
opts.port = 80;
46-
opts.protocol = "NULL"; // NULL == no protocol. most websockets behave this way.
47-
opts.bUseSSL = false;
48-
opts.sslCertPath = ofToDataPath("ssl/libwebsockets-test-server.pem", true);
49-
opts.sslKeyPath = ofToDataPath("ssl/libwebsockets-test-server.key.pem", true);
50-
opts.documentRoot = ofToDataPath("web", true);
51-
opts.ka_time = 0;
52-
opts.ka_probes = 0;
53-
opts.ka_interval = 0;
54-
return opts;
55-
}
43+
extern ServerOptions defaultServerOptions();
5644

5745
class Server : public Reactor {
5846
friend class Protocol;
@@ -131,4 +119,4 @@ namespace ofxLibwebsockets {
131119
Protocol serverProtocol;
132120
void threadedFunction();
133121
};
134-
};
122+
};

libs/ofxLibwebsockets/include/ofxLibwebsockets/Util.h

Lines changed: 5 additions & 301 deletions
Original file line numberDiff line numberDiff line change
@@ -21,312 +21,16 @@ namespace ofxLibwebsockets {
2121
class Client;
2222
class Server;
2323

24-
static string getCallbackReason( int reason );
25-
static void dump_handshake_info(struct lws_tokens *lwst);
26-
2724
// CLIENT CALLBACK
2825

29-
static int lws_client_callback(struct libwebsocket_context* context, struct libwebsocket *ws, enum libwebsocket_callback_reasons reason, void *user, void *data, size_t len){
30-
const struct libwebsocket_protocols* lws_protocol = (ws == NULL ? NULL : libwebsockets_get_protocol(ws));
31-
int idx = lws_protocol? lws_protocol->protocol_index : 0;
32-
33-
Connection* conn;
34-
35-
Reactor* reactor = NULL;
36-
Protocol* protocol;
37-
38-
for (int i=0; i<(int)reactors.size(); i++){
39-
if (reactors[i]->getContext() == context){
40-
reactor = reactors[i];
41-
protocol = reactor->protocol(idx);
42-
conn = ((Client*) reactor)->getConnection();
43-
if (conn){
44-
conn->context = context;
45-
}
46-
break;
47-
} else {
48-
}
49-
}
50-
51-
ofLog( OF_LOG_VERBOSE, "[ofxLibwebsockets] " + getCallbackReason(reason) );
52-
53-
if (reason == LWS_CALLBACK_CLIENT_ESTABLISHED ){
54-
libwebsocket_callback_on_writable(context, ws);
55-
} else if (reason == LWS_CALLBACK_CLOSED){
56-
}
57-
58-
switch (reason)
59-
{
60-
// cases we may use in the future
61-
case LWS_CALLBACK_CONFIRM_EXTENSION_OKAY:
62-
case LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED:
63-
case LWS_CALLBACK_PROTOCOL_INIT: // this may be useful, says we're OK to allocate protocol data
64-
case LWS_CALLBACK_WSI_CREATE:
65-
66-
case LWS_CALLBACK_HTTP_BODY_COMPLETION:
67-
case LWS_CALLBACK_HTTP_FILE_COMPLETION:
68-
case LWS_CALLBACK_HTTP_WRITEABLE:
69-
70-
case LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION:
71-
return 0;
72-
73-
// check if we allow this connection (default is always yes)
74-
case LWS_CALLBACK_FILTER_HTTP_CONNECTION:
75-
case LWS_CALLBACK_FILTER_NETWORK_CONNECTION:
76-
if (protocol != NULL){
77-
return reactor->_allow(ws, protocol, (int)(long)user)? 0 : 1;
78-
} else {
79-
return 0;
80-
}
81-
82-
// need to serve up an HTTP file
83-
case LWS_CALLBACK_HTTP:
84-
if ( reactor != NULL){
85-
return reactor->_http(ws, (char*)data);
86-
} else {
87-
return 0;
88-
}
89-
90-
// we're not really worried about these at the moment
91-
case LWS_CALLBACK_CLOSED_HTTP:
92-
case LWS_CALLBACK_ADD_POLL_FD:
93-
case LWS_CALLBACK_DEL_POLL_FD:
94-
case LWS_CALLBACK_CHANGE_MODE_POLL_FD:
95-
case LWS_CALLBACK_LOCK_POLL:
96-
case LWS_CALLBACK_UNLOCK_POLL:
97-
case LWS_CALLBACK_GET_THREAD_ID:
98-
case LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH:
99-
case LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER:
100-
return 1;
101-
102-
// catch-all for most important events:
103-
// LWS_CALLBACK_CLIENT_CONNECTION_ERROR
104-
// LWS_CALLBACK_CLIENT_ESTABLISHED
105-
// LWS_CALLBACK_RECEIVE
106-
// LWS_CALLBACK_CLIENT_RECEIVE
107-
// LWS_CALLBACK_CLIENT_RECEIVE_PONG
108-
// LWS_CALLBACK_CLIENT_WRITEABLE
109-
default:
110-
if ( reactor != NULL ){
111-
//conn = *(Connection**)user;
112-
if (conn && conn->ws != ws && ws != NULL){
113-
conn->ws = ws;
114-
conn->context = context;
115-
}
116-
return reactor->_notify(conn, reason, (char*)data, len);
117-
} else {
118-
return 0;
119-
}
120-
}
121-
122-
return 1; // FAIL (e.g. unhandled case/break in switch)
123-
}
26+
extern int lws_client_callback(struct libwebsocket_context* context, struct libwebsocket *ws, enum libwebsocket_callback_reasons reason, void *user, void *data, size_t len);
12427

12528
// SERVER CALLBACK
12629

127-
static int lws_callback(struct libwebsocket_context* context, struct libwebsocket *ws,
128-
enum libwebsocket_callback_reasons reason, void *user, void *data, size_t len)
129-
{
130-
const struct libwebsocket_protocols* lws_protocol = (ws == NULL ? NULL : libwebsockets_get_protocol(ws));
131-
int idx = lws_protocol? lws_protocol->protocol_index : 0;
132-
133-
// valid connection w/o a protocol
134-
if ( ws != NULL && lws_protocol == NULL ){
135-
// OK for now, returning 0 above
136-
}
137-
138-
//bool bAllowAllProtocls = (ws != NULL ? lws_protocol == NULL : false);
139-
140-
Connection* conn;
141-
Connection** conn_ptr = (Connection**)user;
142-
Server* reactor = NULL;
143-
Protocol* protocol = NULL;
144-
145-
for (int i=0; i<(int)reactors.size(); i++){
146-
if (reactors[i]->getContext() == context){
147-
reactor = (Server*) reactors[i];
148-
protocol = reactor->protocol( (idx > 0 ? idx : 0) );
149-
break;
150-
} else {
151-
}
152-
}
153-
154-
ofLog( OF_LOG_VERBOSE, "[ofxLibwebsockets] "+ getCallbackReason(reason) );
155-
156-
if (reason == LWS_CALLBACK_ESTABLISHED){
157-
// server completed handshake, need to ask for next "writable" callback
158-
libwebsocket_callback_on_writable(context, ws);
159-
160-
// now is when you can set the "user" data,
161-
// which we use to instantiate / refer to the ofxLibwebsockets::Connection
162-
if ( reactor != NULL ){
163-
*conn_ptr = new Connection(reactor, protocol);
164-
}
165-
} else if (reason == LWS_CALLBACK_CLOSED){
166-
//if (*conn_ptr != NULL)
167-
//delete *conn_ptr;
168-
}
30+
extern int lws_callback(struct libwebsocket_context* context, struct libwebsocket *ws,
31+
enum libwebsocket_callback_reasons reason, void *user, void *data, size_t len);
16932

170-
switch (reason)
171-
{
172-
// we may use these in the future!
173-
case LWS_CALLBACK_WSI_CREATE:
174-
case LWS_CALLBACK_WSI_DESTROY:
175-
176-
case LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION:
177-
178-
case LWS_CALLBACK_HTTP_BODY_COMPLETION:
179-
case LWS_CALLBACK_HTTP_FILE_COMPLETION:
180-
case LWS_CALLBACK_HTTP_WRITEABLE:
181-
case LWS_CALLBACK_CLOSED_HTTP:
182-
183-
case LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED:
184-
185-
case LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED:
186-
case LWS_CALLBACK_FILTER_NETWORK_CONNECTION:
187-
return 0;
188-
189-
case LWS_CALLBACK_FILTER_HTTP_CONNECTION:
190-
if (protocol != NULL ){
191-
// return 0 == allow, 1 == block
192-
return reactor->_allow(ws, protocol, (int)(long)data) ? 0 : 1;
193-
} else {
194-
return 0;
195-
}
196-
197-
case LWS_CALLBACK_PROTOCOL_INIT:
198-
return 0;
199-
200-
case LWS_CALLBACK_HTTP:
201-
return reactor->_http(ws, (char*)data);
202-
203-
// we're not really worried about this at the moment
204-
case LWS_CALLBACK_ADD_POLL_FD:
205-
case LWS_CALLBACK_DEL_POLL_FD:
206-
case LWS_CALLBACK_LOCK_POLL:
207-
case LWS_CALLBACK_UNLOCK_POLL:
208-
case LWS_CALLBACK_CHANGE_MODE_POLL_FD:
209-
case LWS_CALLBACK_PROTOCOL_DESTROY:
210-
case LWS_CALLBACK_GET_THREAD_ID:
211-
case LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH:
212-
return 0;
213-
214-
case LWS_CALLBACK_CLIENT_CONNECTION_ERROR:
215-
case LWS_CALLBACK_ESTABLISHED:
216-
case LWS_CALLBACK_CLIENT_ESTABLISHED:
217-
case LWS_CALLBACK_CLOSED:
218-
case LWS_CALLBACK_SERVER_WRITEABLE:
219-
case LWS_CALLBACK_CLIENT_WRITEABLE:
220-
case LWS_CALLBACK_RECEIVE: // server receive
221-
case LWS_CALLBACK_CLIENT_RECEIVE: // client receive
222-
case LWS_CALLBACK_CLIENT_RECEIVE_PONG:
223-
if ( user != NULL ){
224-
conn = *(Connection**)user;
225-
}
226-
if (conn != NULL && (conn->ws != ws || conn->ws == NULL) ){
227-
conn->context = context;
228-
conn->ws = ws;
229-
conn->setupAddress();
230-
}
231-
if (reactor){
232-
return reactor->_notify(conn, reason, (char*)data, len);
233-
} else {
234-
return 0;
235-
}
236-
237-
default:
238-
break;
239-
}
240-
241-
return 0;
242-
}
243-
244-
static void dump_handshake_info(struct lws_tokens *lwst)
245-
{
246-
int n;
247-
static const char *token_names[WSI_TOKEN_COUNT] = {
248-
"GET URI",
249-
"Host",
250-
"Connection",
251-
"key 1",
252-
"key 2",
253-
"Protocol",
254-
"Upgrade",
255-
"Origin",
256-
"Draft",
257-
"Challenge",
258-
259-
/* new for 04 */
260-
"Key",
261-
"Version",
262-
"Sworigin",
263-
264-
/* new for 05 */
265-
"Extensions",
266-
267-
/* client receives these */
268-
"Accept",
269-
"Nonce",
270-
"Http",
271-
"MuxURL",
272-
};
273-
274-
for (n = 0; n < WSI_TOKEN_COUNT; n++) {
275-
if (lwst[n].token == NULL)
276-
continue;
277-
278-
fprintf(stderr, " %s = %s\n", token_names[n], lwst[n].token);
279-
}
280-
}
33+
extern void dump_handshake_info(struct lws_tokens *lwst);
28134

282-
static string getCallbackReason( int reason ){
283-
switch (reason){
284-
case LWS_CALLBACK_ESTABLISHED : return "LWS_CALLBACK_ESTABLISHED";
285-
case LWS_CALLBACK_CLIENT_CONNECTION_ERROR : return "LWS_CALLBACK_CLIENT_CONNECTION_ERROR";
286-
case LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH : return "LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH";
287-
case LWS_CALLBACK_CLIENT_ESTABLISHED : return "LWS_CALLBACK_CLIENT_ESTABLISHED";
288-
case LWS_CALLBACK_CLOSED : return "LWS_CALLBACK_CLOSED";
289-
case LWS_CALLBACK_CLOSED_HTTP : return "LWS_CALLBACK_CLOSED_HTTP";
290-
case LWS_CALLBACK_RECEIVE : return "LWS_CALLBACK_RECEIVE";
291-
case LWS_CALLBACK_CLIENT_RECEIVE : return "LWS_CALLBACK_CLIENT_RECEIVE";
292-
case LWS_CALLBACK_CLIENT_RECEIVE_PONG : return "LWS_CALLBACK_CLIENT_RECEIVE_PONG";
293-
case LWS_CALLBACK_CLIENT_WRITEABLE : return "LWS_CALLBACK_CLIENT_WRITEABLE";
294-
case LWS_CALLBACK_SERVER_WRITEABLE : return "LWS_CALLBACK_SERVER_WRITEABLE";
295-
case LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED: return "LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED";
296-
297-
case LWS_CALLBACK_HTTP : return "LWS_CALLBACK_HTTP";
298-
case LWS_CALLBACK_HTTP_BODY: return "LWS_CALLBACK_HTTP_BODY";
299-
case LWS_CALLBACK_HTTP_BODY_COMPLETION: return "LWS_CALLBACK_HTTP_BODY_COMPLETION";
300-
case LWS_CALLBACK_HTTP_FILE_COMPLETION : return "LWS_CALLBACK_HTTP_FILE_COMPLETION";
301-
case LWS_CALLBACK_HTTP_WRITEABLE : return "LWS_CALLBACK_HTTP_WRITEABLE";
302-
case LWS_CALLBACK_FILTER_NETWORK_CONNECTION : return "LWS_CALLBACK_FILTER_NETWORK_CONNECTION";
303-
case LWS_CALLBACK_FILTER_HTTP_CONNECTION: return "LWS_CALLBACK_FILTER_HTTP_CONNECTION";
304-
case LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION : return "LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION";
305-
case LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS : return "LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS";
306-
case LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS : return "LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS";
307-
case LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION : return "LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION";
308-
case LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER : return "LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER";
309-
case LWS_CALLBACK_CONFIRM_EXTENSION_OKAY : return "LWS_CALLBACK_CONFIRM_EXTENSION_OKAY";
310-
311-
case LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED : return "LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED";
312-
case LWS_CALLBACK_PROTOCOL_INIT : return "LWS_CALLBACK_PROTOCOL_INIT";
313-
case LWS_CALLBACK_PROTOCOL_DESTROY : return "LWS_CALLBACK_PROTOCOL_DESTROY";
314-
case LWS_CALLBACK_WSI_CREATE: return "LWS_CALLBACK_WSI_CREATE";
315-
case LWS_CALLBACK_WSI_DESTROY: return "LWS_CALLBACK_WSI_DESTROY";
316-
case LWS_CALLBACK_GET_THREAD_ID: return "LWS_CALLBACK_GET_THREAD_ID";
317-
318-
case LWS_CALLBACK_ADD_POLL_FD : return "LWS_CALLBACK_ADD_POLL_FD";
319-
case LWS_CALLBACK_DEL_POLL_FD : return "LWS_CALLBACK_DEL_POLL_FD";
320-
case LWS_CALLBACK_CHANGE_MODE_POLL_FD : return "LWS_CALLBACK_CHANGE_MODE_POLL_FD";
321-
case LWS_CALLBACK_LOCK_POLL: return "LWS_CALLBACK_LOCK_POLL";
322-
case LWS_CALLBACK_UNLOCK_POLL: return "LWS_CALLBACK_UNLOCK_POLL";
323-
324-
case LWS_CALLBACK_USER: return "LWS_CALLBACK_USER";
325-
326-
default:
327-
std::stringstream r;
328-
r << "Unknown callback reason id: " << reason;
329-
return r.str();
330-
}
331-
}
35+
extern string getCallbackReason( int reason );
33236
}

0 commit comments

Comments
 (0)