diff options
author | David Brooks <dave@bcs.co.nz> | 2012-04-20 12:13:50 +0800 |
---|---|---|
committer | Andy Green <andy.green@linaro.org> | 2012-04-20 12:13:50 +0800 |
commit | 6c6a3d3caf37c78d0900e44543208606fa2db8a5 (patch) | |
tree | 9f353c206d81e46ceac2fda8c2b2c3eb2d4c5fae | |
parent | ee2213d365165ae4a5fc3362e1d05bff5d1ca70f (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.h | 31 | ||||
-rw-r--r-- | lib/private-libwebsockets.h | 1 |
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; |