summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Brooks <dave@bcs.co.nz>2012-04-20 12:13:50 +0800
committerAndy Green <andy.green@linaro.org>2012-04-20 12:13:50 +0800
commit6c6a3d3caf37c78d0900e44543208606fa2db8a5 (patch)
tree9f353c206d81e46ceac2fda8c2b2c3eb2d4c5fae
parentee2213d365165ae4a5fc3362e1d05bff5d1ca70f (diff)
improve callback prototypes to use single definition
Not sure all compilers can hack this, but give it a try Signed-off-by: David Brooks <dave@bcs.co.nz> Signed-off-by: Andy Green <andy@warmcat.com> --
-rw-r--r--lib/libwebsockets.h31
-rw-r--r--lib/private-libwebsockets.h1
2 files changed, 17 insertions, 15 deletions
diff --git a/lib/libwebsockets.h b/lib/libwebsockets.h
index 8b98d90..a26df43 100644
--- a/lib/libwebsockets.h
+++ b/lib/libwebsockets.h
@@ -227,9 +227,8 @@ struct libwebsocket;
struct libwebsocket_context;
struct libwebsocket_extension;
-/* document the generic callback (it's a fake prototype under this) */
/**
- * callback() - User server actions
+ * callback_function() - User server actions
* @context: Websockets context
* @wsi: Opaque websocket instance pointer
* @reason: The reason for the call
@@ -424,9 +423,14 @@ LWS_EXTERN int callback(struct libwebsocket_context * context,
enum libwebsocket_callback_reasons reason, void *user,
void *in, size_t len);
-/* document the generic extension callback (it's a fake prototype under this) */
+typedef int (callback_function)(struct libwebsocket_context * context,
+ struct libwebsocket *wsi,
+ enum libwebsocket_callback_reasons reason, void *user,
+ void *in, size_t len);
+
+
/**
- * extension_callback() - Hooks to allow extensions to operate
+ * extension_callback_function() - Hooks to allow extensions to operate
* @context: Websockets context
* @ext: This extension
* @wsi: Opaque websocket instance pointer
@@ -483,13 +487,17 @@ LWS_EXTERN int callback(struct libwebsocket_context * context,
* buffer safely, it should copy the data into its own buffer and
* set the lws_tokens token pointer to it.
*/
-
LWS_EXTERN int extension_callback(struct libwebsocket_context * context,
struct libwebsocket_extension *ext,
struct libwebsocket *wsi,
- enum libwebsocket_callback_reasons reason, void *user,
+ enum libwebsocket_extension_callback_reasons reason, void *user,
void *in, size_t len);
+typedef int (extension_callback_function)(struct libwebsocket_context * context,
+ struct libwebsocket_extension *ext,
+ struct libwebsocket *wsi,
+ enum libwebsocket_extension_callback_reasons reason, void *user,
+ void *in, size_t len);
/**
* struct libwebsocket_protocols - List of protocols and handlers server
@@ -521,10 +529,7 @@ LWS_EXTERN int extension_callback(struct libwebsocket_context * context,
struct libwebsocket_protocols {
const char *name;
- int (*callback)(struct libwebsocket_context * context,
- struct libwebsocket *wsi,
- enum libwebsocket_callback_reasons reason, void *user,
- void *in, size_t len);
+ callback_function *callback;
size_t per_session_data_size;
/*
@@ -553,11 +558,7 @@ struct libwebsocket_protocols {
struct libwebsocket_extension {
const char *name;
- int (*callback)(struct libwebsocket_context *context,
- struct libwebsocket_extension *ext,
- struct libwebsocket *wsi,
- enum libwebsocket_extension_callback_reasons reason,
- void *user, void *in, size_t len);
+ extension_callback_function *callback;
size_t per_session_data_size;
void * per_context_private_data;
};
diff --git a/lib/private-libwebsockets.h b/lib/private-libwebsockets.h
index 788856a..2f682db 100644
--- a/lib/private-libwebsockets.h
+++ b/lib/private-libwebsockets.h
@@ -333,6 +333,7 @@ struct libwebsocket {
char *c_host;
char *c_origin;
char *c_protocol;
+ callback_function *c_callback;
char *c_address;
int c_port;