ABI
Tracker

(libwebsockets)




Headers diff: 2.1.0 vs 2.1.1



 libwebsockets.h (2.1.0)   libwebsockets.h (2.1.1) 
skipping to change at line 127 skipping to change at line 127
#ifndef _WIN32_WCE #ifndef _WIN32_WCE
#include <fcntl.h> #include <fcntl.h>
#else #else
#define _O_RDONLY 0x0000 #define _O_RDONLY 0x0000
#define O_RDONLY _O_RDONLY #define O_RDONLY _O_RDONLY
#endif #endif
// Visual studio older than 2015 and WIN_CE has only _stricmp // Visual studio older than 2015 and WIN_CE has only _stricmp
#if (defined(_MSC_VER) && _MSC_VER < 1900) || defined(_WIN32_WCE) #if (defined(_MSC_VER) && _MSC_VER < 1900) || defined(_WIN32_WCE)
#define strcasecmp _stricmp #define strcasecmp _stricmp
#else #elif !defined(__MINGW32__)
#define strcasecmp stricmp #define strcasecmp stricmp
#endif #endif
#define getdtablesize() 30000 #define getdtablesize() 30000
#define LWS_INLINE __inline #define LWS_INLINE __inline
#define LWS_VISIBLE #define LWS_VISIBLE
#define LWS_WARN_UNUSED_RESULT #define LWS_WARN_UNUSED_RESULT
#define LWS_WARN_DEPRECATED #define LWS_WARN_DEPRECATED
#define LWS_FORMAT(string_index)
#ifdef LWS_DLL #ifdef LWS_DLL
#ifdef LWS_INTERNAL #ifdef LWS_INTERNAL
#define LWS_EXTERN extern __declspec(dllexport) #define LWS_EXTERN extern __declspec(dllexport)
#else #else
#define LWS_EXTERN extern __declspec(dllimport) #define LWS_EXTERN extern __declspec(dllimport)
#endif #endif
#else #else
#define LWS_EXTERN #define LWS_EXTERN
#endif #endif
#define LWS_INVALID_FILE INVALID_HANDLE_VALUE #define LWS_INVALID_FILE INVALID_HANDLE_VALUE
#define LWS_O_RDONLY _O_RDONLY #define LWS_O_RDONLY _O_RDONLY
#if !defined(_MSC_VER) || _MSC_VER < 1900 /* Visual Studio 2015 already def ines this in <stdio.h> */ #if !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER < 1900) /* Vis ual Studio 2015 already defines this in <stdio.h> */
#define lws_snprintf _snprintf #define lws_snprintf _snprintf
#endif #endif
#ifndef __func__ #ifndef __func__
#define __func__ __FUNCTION__ #define __func__ __FUNCTION__
#endif #endif
#else /* NOT WIN32 */ #else /* NOT WIN32 */
#include <unistd.h> #include <unistd.h>
skipping to change at line 188 skipping to change at line 189
/* warn_unused_result attribute only supported by GCC 3.4 or later */ /* warn_unused_result attribute only supported by GCC 3.4 or later */
#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) #if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#define LWS_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #define LWS_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
#else #else
#define LWS_WARN_UNUSED_RESULT #define LWS_WARN_UNUSED_RESULT
#endif #endif
#define LWS_VISIBLE __attribute__((visibility("default"))) #define LWS_VISIBLE __attribute__((visibility("default")))
#define LWS_WARN_DEPRECATED __attribute__ ((deprecated)) #define LWS_WARN_DEPRECATED __attribute__ ((deprecated))
#define LWS_FORMAT(string_index) __attribute__ ((format(printf, string_inde x, string_index+1)))
#else #else
#define LWS_VISIBLE #define LWS_VISIBLE
#define LWS_WARN_UNUSED_RESULT #define LWS_WARN_UNUSED_RESULT
#define LWS_WARN_DEPRECATED #define LWS_WARN_DEPRECATED
#define LWS_FORMAT(string_index)
#endif #endif
#if defined(__ANDROID__) #if defined(__ANDROID__)
#include <unistd.h> #include <unistd.h>
#define getdtablesize() sysconf(_SC_OPEN_MAX) #define getdtablesize() sysconf(_SC_OPEN_MAX)
#endif #endif
#endif #endif
#ifdef LWS_USE_LIBEV #ifdef LWS_USE_LIBEV
skipping to change at line 282 skipping to change at line 285
LLL_DEBUG = 1 << 4, LLL_DEBUG = 1 << 4,
LLL_PARSER = 1 << 5, LLL_PARSER = 1 << 5,
LLL_HEADER = 1 << 6, LLL_HEADER = 1 << 6,
LLL_EXT = 1 << 7, LLL_EXT = 1 << 7,
LLL_CLIENT = 1 << 8, LLL_CLIENT = 1 << 8,
LLL_LATENCY = 1 << 9, LLL_LATENCY = 1 << 9,
LLL_COUNT = 10 /* set to count of valid flags */ LLL_COUNT = 10 /* set to count of valid flags */
}; };
LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...); LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...) L WS_FORMAT(2);
LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_li st vl); LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_li st vl);
/** /**
* lwsl_timestamp: generate logging timestamp string * lwsl_timestamp: generate logging timestamp string
* *
* \param level: logging level * \param level: logging level
* \param p: char * buffer to take timestamp * \param p: char * buffer to take timestamp
* \param len: length of p * \param len: length of p
* *
* returns length written in p * returns length written in p
*/ */
skipping to change at line 474 skipping to change at line 477
struct lws_vhost; struct lws_vhost;
lws_sockfd_type esp8266_create_tcp_listen_socket(struct lws_vhost *vh); lws_sockfd_type esp8266_create_tcp_listen_socket(struct lws_vhost *vh);
void esp8266_tcp_stream_accept(lws_sockfd_type fd, struct lws *wsi); void esp8266_tcp_stream_accept(lws_sockfd_type fd, struct lws *wsi);
#include <os_type.h> #include <os_type.h>
#include <osapi.h> #include <osapi.h>
#include "ets_sys.h" #include "ets_sys.h"
int ets_snprintf(char *str, size_t size, const char *format, ...); int ets_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMA T(3);
#define snprintf ets_snprintf #define snprintf ets_snprintf
typedef os_timer_t uv_timer_t; typedef os_timer_t uv_timer_t;
typedef void uv_cb_t(uv_timer_t *); typedef void uv_cb_t(uv_timer_t *);
void os_timer_disarm(void *); void os_timer_disarm(void *);
void os_timer_setfn(os_timer_t *, os_timer_func_t *, void *); void os_timer_setfn(os_timer_t *, os_timer_func_t *, void *);
void ets_timer_arm_new(os_timer_t *, int, int, int); void ets_timer_arm_new(os_timer_t *, int, int, int);
skipping to change at line 1212 skipping to change at line 1215
const char *opt_name, const char *opt_val); const char *opt_name, const char *opt_val);
#ifndef LWS_NO_EXTENSIONS #ifndef LWS_NO_EXTENSIONS
/* lws_get_internal_extensions() - DEPRECATED /* lws_get_internal_extensions() - DEPRECATED
* *
* \Deprecated There is no longer a set internal extensions table. The tab le is provided * \Deprecated There is no longer a set internal extensions table. The tab le is provided
* by user code along with application-specific settings. See the test * by user code along with application-specific settings. See the test
* client and server for how to do. * client and server for how to do.
*/ */
static LWS_INLINE LWS_WARN_DEPRECATED const struct lws_extension * static LWS_INLINE LWS_WARN_DEPRECATED const struct lws_extension *
lws_get_internal_extensions() { return NULL; } lws_get_internal_extensions(void) { return NULL; }
/** /**
* lws_ext_parse_options() - deal with parsing negotiated extension options * lws_ext_parse_options() - deal with parsing negotiated extension options
* *
* \param ext: related extension struct * \param ext: related extension struct
* \param wsi: websocket connection * \param wsi: websocket connection
* \param ext_user: per-connection extension private data * \param ext_user: per-connection extension private data
* \param opts: list of supported options * \param opts: list of supported options
* \param o: option string to parse * \param o: option string to parse
* \param len: length * \param len: length
skipping to change at line 1737 skipping to change at line 1740
* server's sockets serviced. This must be done in the same process * server's sockets serviced. This must be done in the same process
* context as the initialization call. * context as the initialization call.
* *
* The protocol callback functions are called for a handful of events * The protocol callback functions are called for a handful of events
* including http requests coming in, websocket connections becoming * including http requests coming in, websocket connections becoming
* established, and data arriving; it's also called periodically to all ow * established, and data arriving; it's also called periodically to all ow
* async transmission. * async transmission.
* *
* HTTP requests are sent always to the FIRST protocol in protocol, sin ce * HTTP requests are sent always to the FIRST protocol in protocol, sin ce
* at that time websocket protocol has not been negotiated. Other * at that time websocket protocol has not been negotiated. Other
* protocols after the first one never see any HTTP callack activity. * protocols after the first one never see any HTTP callback activity.
* *
* The server created is a simple http server by default; part of the * The server created is a simple http server by default; part of the
* websocket standard is upgrading this http connection to a websocket one. * websocket standard is upgrading this http connection to a websocket one.
* *
* This allows the same server to provide files like scripts and favico n / * This allows the same server to provide files like scripts and favico n /
* images or whatever over http and dynamic data over websockets all in * images or whatever over http and dynamic data over websockets all in
* one place; they're all handled in the user callback. * one place; they're all handled in the user callback.
*/ */
LWS_VISIBLE LWS_EXTERN struct lws_context * LWS_VISIBLE LWS_EXTERN struct lws_context *
lws_create_context(struct lws_context_creation_info *info); lws_create_context(struct lws_context_creation_info *info);
skipping to change at line 2247 skipping to change at line 2250
* so the wait in poll() is ended. That's useful because poll() doesn' t * so the wait in poll() is ended. That's useful because poll() doesn' t
* attend to changes in POLLIN/OUT/ERR until it re-enters the wait. * attend to changes in POLLIN/OUT/ERR until it re-enters the wait.
*/ */
LWS_VISIBLE LWS_EXTERN void LWS_VISIBLE LWS_EXTERN void
lws_cancel_service(struct lws_context *context); lws_cancel_service(struct lws_context *context);
/** /**
* lws_service_fd() - Service polled socket with something waiting * lws_service_fd() - Service polled socket with something waiting
* \param context: Websocket context * \param context: Websocket context
* \param pollfd: The pollfd entry describing the socket fd and which events * \param pollfd: The pollfd entry describing the socket fd and which events
* happened. * happened, or NULL to tell lws to do only timeout servicing.
* *
* This function takes a pollfd that has POLLIN or POLLOUT activity and * This function takes a pollfd that has POLLIN or POLLOUT activity and
* services it according to the state of the associated * services it according to the state of the associated
* struct lws. * struct lws.
* *
* The one call deals with all "service" that might happen on a socket * The one call deals with all "service" that might happen on a socket
* including listen accepts, http files as well as websocket protocol. * including listen accepts, http files as well as websocket protocol.
* *
* If a pollfd says it has something, you can just pass it to * If a pollfd says it has something, you can just pass it to
* lws_service_fd() whether it is a socket handled by lws or not. * lws_service_fd() whether it is a socket handled by lws or not.
* If it sees it is a lws socket, the traffic will be handled and * If it sees it is a lws socket, the traffic will be handled and
* pollfd->revents will be zeroed now. * pollfd->revents will be zeroed now.
* *
* If the socket is foreign to lws, it leaves revents alone. So you can * If the socket is foreign to lws, it leaves revents alone. So you can
* see if you should service yourself by checking the pollfd revents * see if you should service yourself by checking the pollfd revents
* after letting lws try to service it. * after letting lws try to service it.
*
* You should also call this with pollfd = NULL to just allow the
* once-per-second global timeout checks; if less than a second since the l
ast
* check it returns immediately then.
*/ */
LWS_VISIBLE LWS_EXTERN int LWS_VISIBLE LWS_EXTERN int
lws_service_fd(struct lws_context *context, struct lws_pollfd *pollfd); lws_service_fd(struct lws_context *context, struct lws_pollfd *pollfd);
/** /**
* lws_service_fd_tsi() - Service polled socket in specific service thread * lws_service_fd_tsi() - Service polled socket in specific service thread
* \param context: Websocket context * \param context: Websocket context
* \param pollfd: The pollfd entry describing the socket fd and which events * \param pollfd: The pollfd entry describing the socket fd and which events
* happened. * happened.
* \param tsi: thread service index * \param tsi: thread service index
skipping to change at line 3258 skipping to change at line 3265
* Pad LWS_PRE to the CPU word size, so that word references * Pad LWS_PRE to the CPU word size, so that word references
* to the address immediately after the padding won't cause an unaligned ac cess * to the address immediately after the padding won't cause an unaligned ac cess
* error. Sometimes for performance reasons the recommended padding is even * error. Sometimes for performance reasons the recommended padding is even
* larger than sizeof(void *). * larger than sizeof(void *).
* *
* In the case of sending using websocket protocol, be sure to allocate * In the case of sending using websocket protocol, be sure to allocate
* valid storage before and after buf as explained above. This scheme * valid storage before and after buf as explained above. This scheme
* allows maximum efficiency of sending data and protocol in a single * allows maximum efficiency of sending data and protocol in a single
* packet while not burdening the user code with any protocol knowledge . * packet while not burdening the user code with any protocol knowledge .
* *
* Return may be -1 for a fatal error needing connection close, or a * Return may be -1 for a fatal error needing connection close, or the
* positive number reflecting the amount of bytes actually sent. This * number of bytes sent.
* can be less than the requested number of bytes due to OS memory *
* pressure at any given time. * Truncated Writes
* ================
*
* The OS may not accept everything you asked to write on the connection.
*
* Posix defines POLLOUT indication from poll() to show that the connection
* will accept more write data, but it doesn't specifiy how much. It may j
ust
* accept one byte of whatever you wanted to send.
*
* LWS will buffer the remainder automatically, and send it out autonomousl
y.
*
* During that time, WRITABLE callbacks will be suppressed.
*
* This is to handle corner cases where unexpectedly the OS refuses what we
* usually expect it to accept. You should try to send in chunks that are
* almost always accepted in order to avoid the inefficiency of the bufferi
ng.
*/ */
LWS_VISIBLE LWS_EXTERN int LWS_VISIBLE LWS_EXTERN int
lws_write(struct lws *wsi, unsigned char *buf, size_t len, lws_write(struct lws *wsi, unsigned char *buf, size_t len,
enum lws_write_protocol protocol); enum lws_write_protocol protocol);
/* helper for case where buffer may be const */ /* helper for case where buffer may be const */
#define lws_write_http(wsi, buf, len) \ #define lws_write_http(wsi, buf, len) \
lws_write(wsi, (unsigned char *)(buf), len, LWS_WRITE_HTTP) lws_write(wsi, (unsigned char *)(buf), len, LWS_WRITE_HTTP)
///@} ///@}
/** \defgroup callback-when-writeable Callback when writeable /** \defgroup callback-when-writeable Callback when writeable
* *
* ##Callback When Writeable * ##Callback When Writeable
* *
* lws can only write data on a connection when it is able to accept more * lws can only write data on a connection when it is able to accept more
* data without blocking. * data without blocking.
* *
* So a basic requirement is we should only use the lws_write() apis when t he * So a basic requirement is we should only use the lws_write() apis when t he
skipping to change at line 3609 skipping to change at line 3630
* *
* \param str: destination buffer * \param str: destination buffer
* \param size: bytes left in destination buffer * \param size: bytes left in destination buffer
* \param format: format string * \param format: format string
* \param ...: args for format * \param ...: args for format
* *
* This lets you correctly truncate buffers by concatenating lengths, if yo u * This lets you correctly truncate buffers by concatenating lengths, if yo u
* reach the limit the reported length doesn't exceed the limit. * reach the limit the reported length doesn't exceed the limit.
*/ */
LWS_VISIBLE LWS_EXTERN int LWS_VISIBLE LWS_EXTERN int
lws_snprintf(char *str, size_t size, const char *format, ...); lws_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3) ;
/** /**
* lws_get_random(): fill a buffer with platform random data * lws_get_random(): fill a buffer with platform random data
* *
* \param context: the lws context * \param context: the lws context
* \param buf: buffer to fill * \param buf: buffer to fill
* \param len: how much to fill * \param len: how much to fill
* *
* This is intended to be called from the LWS_CALLBACK_RECEIVE callback if * This is intended to be called from the LWS_CALLBACK_RECEIVE callback if
* it's interested to see if the frame it's dealing with was sent in binary * it's interested to see if the frame it's dealing with was sent in binary
 End of changes. 14 change blocks. 
13 lines changed or deleted 38 lines changed or added


 lws_config.h (2.1.0)   lws_config.h (2.1.1) 
/* lws_config.h Generated from lws_config.h.in */ /* lws_config.h Generated from lws_config.h.in */
#ifndef NDEBUG #ifndef NDEBUG
#ifndef _DEBUG #ifndef _DEBUG
#define _DEBUG #define _DEBUG
#endif #endif
#endif #endif
#define LWS_INSTALL_DATADIR "/home/agreen/installed/libwebsockets/2.1.0/sha re" #define LWS_INSTALL_DATADIR "/home/agreen/installed/libwebsockets/2.1.1/sha re"
/* Define to 1 to use wolfSSL/CyaSSL as a replacement for OpenSSL. /* Define to 1 to use wolfSSL/CyaSSL as a replacement for OpenSSL.
* LWS_OPENSSL_SUPPORT needs to be set also for this to work. */ * LWS_OPENSSL_SUPPORT needs to be set also for this to work. */
/* #undef USE_WOLFSSL */ /* #undef USE_WOLFSSL */
/* Also define to 1 (in addition to USE_WOLFSSL) when using the /* Also define to 1 (in addition to USE_WOLFSSL) when using the
(older) CyaSSL library */ (older) CyaSSL library */
/* #undef USE_OLD_CYASSL */ /* #undef USE_OLD_CYASSL */
/* #undef LWS_USE_MBEDTLS */ /* #undef LWS_USE_MBEDTLS */
/* #undef LWS_USE_POLARSSL */ /* #undef LWS_USE_POLARSSL */
/* #undef LWS_WITH_ESP8266 */ /* #undef LWS_WITH_ESP8266 */
/* #undef LWS_WITH_PLUGINS */ /* #undef LWS_WITH_PLUGINS */
/* #undef LWS_WITH_NO_LOGS */ /* #undef LWS_WITH_NO_LOGS */
/* The Libwebsocket version */ /* The Libwebsocket version */
#define LWS_LIBRARY_VERSION "2.1.0" #define LWS_LIBRARY_VERSION "2.1.1"
#define LWS_LIBRARY_VERSION_MAJOR 2 #define LWS_LIBRARY_VERSION_MAJOR 2
#define LWS_LIBRARY_VERSION_MINOR 1 #define LWS_LIBRARY_VERSION_MINOR 1
#define LWS_LIBRARY_VERSION_PATCH 0 #define LWS_LIBRARY_VERSION_PATCH 1
/* LWS_LIBRARY_VERSION_NUMBER looks like 1005001 for e.g. version 1.5.1 */ /* LWS_LIBRARY_VERSION_NUMBER looks like 1005001 for e.g. version 1.5.1 */
#define LWS_LIBRARY_VERSION_NUMBER (LWS_LIBRARY_VERSION_MAJOR*1000000)+(LWS _LIBRARY_VERSION_MINOR*1000)+LWS_LIBRARY_VERSION_PATCH #define LWS_LIBRARY_VERSION_NUMBER (LWS_LIBRARY_VERSION_MAJOR*1000000)+(LWS _LIBRARY_VERSION_MINOR*1000)+LWS_LIBRARY_VERSION_PATCH
/* The current git commit hash that we're building from */ /* The current git commit hash that we're building from */
#define LWS_BUILD_HASH "root@mail.warmcat.com-" #define LWS_BUILD_HASH "root@mail.warmcat.com-"
/* Build with OpenSSL support */ /* Build with OpenSSL support */
#define LWS_OPENSSL_SUPPORT #define LWS_OPENSSL_SUPPORT
/* The client should load and trust CA root certs it finds in the OS */ /* The client should load and trust CA root certs it finds in the OS */
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added

This html diff was produced by rfcdiff 1.41.The latest version is available from http://tools.ietf.org/tools/rfcdiff/