ABI
Tracker

(Libevent)




Headers diff: 2.1.10 vs 2.1.11



 buffer_compat.h (2.1.10)   buffer_compat.h (2.1.11) 
skipping to change at line 92 skipping to change at line 92
callbacks set on the evbuffer, which can cause confusing behavior if callbacks set on the evbuffer, which can cause confusing behavior if
multiple parts of the code all want to add their own callbacks on a multiple parts of the code all want to add their own callbacks on a
buffer. Instead, use evbuffer_add(), evbuffer_del(), and buffer. Instead, use evbuffer_add(), evbuffer_del(), and
evbuffer_setflags() to manage your own evbuffer callbacks without evbuffer_setflags() to manage your own evbuffer callbacks without
interfering with callbacks set by others. interfering with callbacks set by others.
@param buffer the evbuffer to be monitored @param buffer the evbuffer to be monitored
@param cb the callback function to invoke when the evbuffer is modified, @param cb the callback function to invoke when the evbuffer is modified,
or NULL to remove all callbacks. or NULL to remove all callbacks.
@param cbarg an argument to be provided to the callback function @param cbarg an argument to be provided to the callback function
@return 0 if successful, or -1 on error
*/ */
EVENT2_EXPORT_SYMBOL EVENT2_EXPORT_SYMBOL
void evbuffer_setcb(struct evbuffer *buffer, evbuffer_cb cb, void *cbarg); int evbuffer_setcb(struct evbuffer *buffer, evbuffer_cb cb, void *cbarg);
/** /**
Find a string within an evbuffer. Find a string within an evbuffer.
@param buffer the evbuffer to be searched @param buffer the evbuffer to be searched
@param what the string to be searched for @param what the string to be searched for
@param len the length of the search string @param len the length of the search string
@return a pointer to the beginning of the search string, or NULL if the s earch failed. @return a pointer to the beginning of the search string, or NULL if the s earch failed.
*/ */
EVENT2_EXPORT_SYMBOL EVENT2_EXPORT_SYMBOL
 End of changes. 2 change blocks. 
1 lines changed or deleted 2 lines changed or added


 bufferevent.h (2.1.10)   bufferevent.h (2.1.11) 
skipping to change at line 491 skipping to change at line 491
/** /**
Set the read and write timeout for a bufferevent. Set the read and write timeout for a bufferevent.
A bufferevent's timeout will fire the first time that the indicated A bufferevent's timeout will fire the first time that the indicated
amount of time has elapsed since a successful read or write operation, amount of time has elapsed since a successful read or write operation,
during which the bufferevent was trying to read or write. during which the bufferevent was trying to read or write.
(In other words, if reading or writing is disabled, or if the (In other words, if reading or writing is disabled, or if the
bufferevent's read or write operation has been suspended because bufferevent's read or write operation has been suspended because
there's no data to write, or not enough banwidth, or so on, the there's no data to write, or not enough bandwidth, or so on, the
timeout isn't active. The timeout only becomes active when we we're timeout isn't active. The timeout only becomes active when we we're
willing to actually read or write.) willing to actually read or write.)
Calling bufferevent_enable or setting a timeout for a bufferevent Calling bufferevent_enable or setting a timeout for a bufferevent
whose timeout is already pending resets its timeout. whose timeout is already pending resets its timeout.
If the timeout elapses, the corresponding operation (EV_READ or If the timeout elapses, the corresponding operation (EV_READ or
EV_WRITE) becomes disabled until you re-enable it again. The EV_WRITE) becomes disabled until you re-enable it again. The
bufferevent's event callback is called with the bufferevent's event callback is called with the
BEV_EVENT_TIMEOUT|BEV_EVENT_READING or BEV_EVENT_TIMEOUT|BEV_EVENT_READING or
skipping to change at line 568 skipping to change at line 568
/** /**
Release the lock on a bufferevent. Has no effect if locking was not Release the lock on a bufferevent. Has no effect if locking was not
enabled with BEV_OPT_THREADSAFE. enabled with BEV_OPT_THREADSAFE.
*/ */
EVENT2_EXPORT_SYMBOL EVENT2_EXPORT_SYMBOL
void bufferevent_unlock(struct bufferevent *bufev); void bufferevent_unlock(struct bufferevent *bufev);
/** /**
* Public interface to manually increase the reference count of a buffereve nt * Public interface to manually increase the reference count of a buffereve nt
* this is useful in situations where a user may reference the bufferevent * this is useful in situations where a user may reference the bufferevent
* somewhere eles (unknown to libevent) * somewhere else (unknown to libevent)
* *
* @param bufev the bufferevent to increase the refcount on * @param bufev the bufferevent to increase the refcount on
* *
*/ */
EVENT2_EXPORT_SYMBOL EVENT2_EXPORT_SYMBOL
void bufferevent_incref(struct bufferevent *bufev); void bufferevent_incref(struct bufferevent *bufev);
/** /**
* Public interface to manually decrement the reference count of a bufferev ent * Public interface to manually decrement the reference count of a bufferev ent
* *
skipping to change at line 801 skipping to change at line 801
/** /**
Set the rate-limit of a the bufferevent 'bev' to the one specified in Set the rate-limit of a the bufferevent 'bev' to the one specified in
'cfg'. If 'cfg' is NULL, disable any per-bufferevent rate-limiting on 'cfg'. If 'cfg' is NULL, disable any per-bufferevent rate-limiting on
'bev'. 'bev'.
Note that only some bufferevent types currently respect rate-limiting. Note that only some bufferevent types currently respect rate-limiting.
They are: socket-based bufferevents (normal and IOCP-based), and SSL-bas ed They are: socket-based bufferevents (normal and IOCP-based), and SSL-bas ed
bufferevents. bufferevents.
Return 0 on sucess, -1 on failure. Return 0 on success, -1 on failure.
*/ */
EVENT2_EXPORT_SYMBOL EVENT2_EXPORT_SYMBOL
int bufferevent_set_rate_limit(struct bufferevent *bev, int bufferevent_set_rate_limit(struct bufferevent *bev,
struct ev_token_bucket_cfg *cfg); struct ev_token_bucket_cfg *cfg);
/** /**
Create a new rate-limit group for bufferevents. A rate-limit group Create a new rate-limit group for bufferevents. A rate-limit group
constrains the maximum number of bytes sent and received, in toto, constrains the maximum number of bytes sent and received, in toto,
by all of its bufferevents. by all of its bufferevents.
skipping to change at line 852 skipping to change at line 852
The rationale is that, because of TCP/IP protocol overheads and kernel The rationale is that, because of TCP/IP protocol overheads and kernel
behavior, if a rate-limiting group is so tight on bandwidth that you're behavior, if a rate-limiting group is so tight on bandwidth that you're
only willing to send 1 byte per tick per bufferevent, you might instead only willing to send 1 byte per tick per bufferevent, you might instead
want to batch up the reads and writes so that you send N bytes per want to batch up the reads and writes so that you send N bytes per
1/N of the bufferevents (chosen at random) each tick, so you still wind 1/N of the bufferevents (chosen at random) each tick, so you still wind
up send 1 byte per tick per bufferevent on average, but you don't send up send 1 byte per tick per bufferevent on average, but you don't send
so many tiny packets. so many tiny packets.
The default min-share is currently 64 bytes. The default min-share is currently 64 bytes.
Returns 0 on success, -1 on faulre. Returns 0 on success, -1 on failure.
*/ */
EVENT2_EXPORT_SYMBOL EVENT2_EXPORT_SYMBOL
int bufferevent_rate_limit_group_set_min_share( int bufferevent_rate_limit_group_set_min_share(
struct bufferevent_rate_limit_group *, size_t); struct bufferevent_rate_limit_group *, size_t);
/** /**
Free a rate-limiting group. The group must have no members when Free a rate-limiting group. The group must have no members when
this function is called. this function is called.
*/ */
EVENT2_EXPORT_SYMBOL EVENT2_EXPORT_SYMBOL
 End of changes. 4 change blocks. 
4 lines changed or deleted 4 lines changed or added


 dns.h (2.1.10)   dns.h (2.1.11) 
skipping to change at line 454 skipping to change at line 454
*/ */
EVENT2_EXPORT_SYMBOL EVENT2_EXPORT_SYMBOL
void evdns_cancel_request(struct evdns_base *base, struct evdns_request *re q); void evdns_cancel_request(struct evdns_base *base, struct evdns_request *re q);
/** /**
Set the value of a configuration option. Set the value of a configuration option.
The currently available configuration options are: The currently available configuration options are:
ndots, timeout, max-timeouts, max-inflight, attempts, randomize-case, ndots, timeout, max-timeouts, max-inflight, attempts, randomize-case,
bind-to, initial-probe-timeout, getaddrinfo-allow-skew. bind-to, initial-probe-timeout, getaddrinfo-allow-skew,
so-rcvbuf, so-sndbuf.
In versions before Libevent 2.0.3-alpha, the option name needed to end wi th In versions before Libevent 2.0.3-alpha, the option name needed to end wi th
a colon. a colon.
@param base the evdns_base to which to apply this operation @param base the evdns_base to which to apply this operation
@param option the name of the configuration option to be modified @param option the name of the configuration option to be modified
@param val the value to be set @param val the value to be set
@return 0 if successful, or -1 if an error occurred @return 0 if successful, or -1 if an error occurred
*/ */
EVENT2_EXPORT_SYMBOL EVENT2_EXPORT_SYMBOL
 End of changes. 1 change blocks. 
1 lines changed or deleted 2 lines changed or added


 event-config.h (2.1.10)   event-config.h (2.1.11) 
skipping to change at line 430 skipping to change at line 430
/* Define to 1 if compiler have __FUNCTION__ */ /* Define to 1 if compiler have __FUNCTION__ */
#define EVENT__HAVE___FUNCTION__ 1 #define EVENT__HAVE___FUNCTION__ 1
/* Define to 1 if compiler have __func__ */ /* Define to 1 if compiler have __func__ */
#define EVENT__HAVE___func__ 1 #define EVENT__HAVE___func__ 1
/* Define to the sub-directory where libtool stores uninstalled libraries. */ /* Define to the sub-directory where libtool stores uninstalled libraries. */
#define EVENT__LT_OBJDIR ".libs/" #define EVENT__LT_OBJDIR ".libs/"
/* Numeric representation of the version */ /* Numeric representation of the version */
#define EVENT__NUMERIC_VERSION 0x02010a00 #define EVENT__NUMERIC_VERSION 0x02010b00
/* Name of package */ /* Name of package */
#define EVENT__PACKAGE "libevent" #define EVENT__PACKAGE "libevent"
/* Define to the address where bug reports for this package should be sent. */ /* Define to the address where bug reports for this package should be sent. */
#define EVENT__PACKAGE_BUGREPORT "" #define EVENT__PACKAGE_BUGREPORT ""
/* Define to the full name of this package. */ /* Define to the full name of this package. */
#define EVENT__PACKAGE_NAME "libevent" #define EVENT__PACKAGE_NAME "libevent"
/* Define to the full name and version of this package. */ /* Define to the full name and version of this package. */
#define EVENT__PACKAGE_STRING "libevent 2.1.10-stable" #define EVENT__PACKAGE_STRING "libevent 2.1.11-stable"
/* Define to the one symbol short name of this package. */ /* Define to the one symbol short name of this package. */
#define EVENT__PACKAGE_TARNAME "libevent" #define EVENT__PACKAGE_TARNAME "libevent"
/* Define to the home page for this package. */ /* Define to the home page for this package. */
#define EVENT__PACKAGE_URL "" #define EVENT__PACKAGE_URL ""
/* Define to the version of this package. */ /* Define to the version of this package. */
#define EVENT__PACKAGE_VERSION "2.1.10-stable" #define EVENT__PACKAGE_VERSION "2.1.11-stable"
/* Define to necessary symbol if this constant uses a non-standard name on /* Define to necessary symbol if this constant uses a non-standard name on
your system. */ your system. */
/* #undef EVENT__PTHREAD_CREATE_JOINABLE */ /* #undef EVENT__PTHREAD_CREATE_JOINABLE */
/* The size of `int', as computed by sizeof. */ /* The size of `int', as computed by sizeof. */
#define EVENT__SIZEOF_INT 4 #define EVENT__SIZEOF_INT 4
/* The size of `long', as computed by sizeof. */ /* The size of `long', as computed by sizeof. */
#define EVENT__SIZEOF_LONG 8 #define EVENT__SIZEOF_LONG 8
skipping to change at line 512 skipping to change at line 512
/* Enable extensions on HP NonStop. */ /* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE #ifndef _TANDEM_SOURCE
# define _TANDEM_SOURCE 1 # define _TANDEM_SOURCE 1
#endif #endif
/* Enable general extensions on Solaris. */ /* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__ #ifndef __EXTENSIONS__
# define __EXTENSIONS__ 1 # define __EXTENSIONS__ 1
#endif #endif
/* Version number of package */ /* Version number of package */
#define EVENT__VERSION "2.1.10-stable" #define EVENT__VERSION "2.1.11-stable"
/* Enable large inode numbers on Mac OS X 10.5. */ /* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE #ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1 # define _DARWIN_USE_64_BIT_INODE 1
#endif #endif
/* Number of bits in a file offset, on hosts where this is settable. */ /* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */ /* #undef _FILE_OFFSET_BITS */
/* Define for large files, on AIX-style hosts. */ /* Define for large files, on AIX-style hosts. */
 End of changes. 4 change blocks. 
4 lines changed or deleted 4 lines changed or added


 event.h (2.1.10)   event.h (2.1.11) 
skipping to change at line 287 skipping to change at line 287
{/*Empty body so that doxygen will generate documentation here.*/} {/*Empty body so that doxygen will generate documentation here.*/}
#endif #endif
; ;
/** /**
* Configuration for an event_base. * Configuration for an event_base.
* *
* There are many options that can be used to alter the behavior and * There are many options that can be used to alter the behavior and
* implementation of an event_base. To avoid having to pass them all in a * implementation of an event_base. To avoid having to pass them all in a
* complex many-argument constructor, we provide an abstract data type * complex many-argument constructor, we provide an abstract data type
* where you set up configation information before passing it to * where you set up configuration information before passing it to
* event_base_new_with_config(). * event_base_new_with_config().
* *
* @see event_config_new(), event_config_free(), event_base_new_with_config (), * @see event_config_new(), event_config_free(), event_base_new_with_config (),
* event_config_avoid_method(), event_config_require_features(), * event_config_avoid_method(), event_config_require_features(),
* event_config_set_flag(), event_config_set_num_cpus_hint() * event_config_set_flag(), event_config_set_num_cpus_hint()
*/ */
struct event_config struct event_config
#ifdef EVENT_IN_DOXYGEN_ #ifdef EVENT_IN_DOXYGEN_
{/*Empty body so that doxygen will generate documentation here.*/} {/*Empty body so that doxygen will generate documentation here.*/}
#endif #endif
skipping to change at line 634 skipping to change at line 634
* @param cfg the event configuration object * @param cfg the event configuration object
* @param cpus the number of cpus * @param cpus the number of cpus
* @return 0 on success, -1 on failure. * @return 0 on success, -1 on failure.
*/ */
EVENT2_EXPORT_SYMBOL EVENT2_EXPORT_SYMBOL
int event_config_set_num_cpus_hint(struct event_config *cfg, int cpus); int event_config_set_num_cpus_hint(struct event_config *cfg, int cpus);
/** /**
* Record an interval and/or a number of callbacks after which the event ba se * Record an interval and/or a number of callbacks after which the event ba se
* should check for new events. By default, the event base will run as man y * should check for new events. By default, the event base will run as man y
* events are as activated at the higest activated priority before checking * events are as activated at the highest activated priority before checkin g
* for new events. If you configure it by setting max_interval, it will ch eck * for new events. If you configure it by setting max_interval, it will ch eck
* the time after each callback, and not allow more than max_interval to * the time after each callback, and not allow more than max_interval to
* elapse before checking for new events. If you configure it by setting * elapse before checking for new events. If you configure it by setting
* max_callbacks to a value >= 0, it will run no more than max_callbacks * max_callbacks to a value >= 0, it will run no more than max_callbacks
* callbacks before checking for new events. * callbacks before checking for new events.
* *
* This option can decrease the latency of high-priority events, and * This option can decrease the latency of high-priority events, and
* avoid priority inversions where multiple low-priority events keep us fro m * avoid priority inversions where multiple low-priority events keep us fro m
* polling for high-priority events, but at the expense of slightly decreas ing * polling for high-priority events, but at the expense of slightly decreas ing
* the throughput. Use it with caution! * the throughput. Use it with caution!
skipping to change at line 1322 skipping to change at line 1322
*/ */
EVENT2_EXPORT_SYMBOL EVENT2_EXPORT_SYMBOL
struct event *event_base_get_running_event(struct event_base *base); struct event *event_base_get_running_event(struct event_base *base);
/** /**
Test if an event structure might be initialized. Test if an event structure might be initialized.
The event_initialized() function can be used to check if an event has bee n The event_initialized() function can be used to check if an event has bee n
initialized. initialized.
Warning: This function is only useful for distinguishing a a zeroed-out Warning: This function is only useful for distinguishing a zeroed-out
piece of memory from an initialized event, it can easily be confused by piece of memory from an initialized event, it can easily be confused by
uninitialized memory. Thus, it should ONLY be used to distinguish an uninitialized memory. Thus, it should ONLY be used to distinguish an
initialized event from zero. initialized event from zero.
@param ev an event structure to be tested @param ev an event structure to be tested
@return 1 if the structure might be initialized, or 0 if it has not been @return 1 if the structure might be initialized, or 0 if it has not been
initialized initialized
*/ */
EVENT2_EXPORT_SYMBOL EVENT2_EXPORT_SYMBOL
int event_initialized(const struct event *ev); int event_initialized(const struct event *ev);
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 event_struct.h (2.1.10)   event_struct.h (2.1.11) 
skipping to change at line 129 skipping to change at line 129
void *evcb_arg; void *evcb_arg;
}; };
struct event_base; struct event_base;
struct event { struct event {
struct event_callback ev_evcallback; struct event_callback ev_evcallback;
/* for managing timeouts */ /* for managing timeouts */
union { union {
TAILQ_ENTRY(event) ev_next_with_common_timeout; TAILQ_ENTRY(event) ev_next_with_common_timeout;
size_t min_heap_idx; int min_heap_idx;
} ev_timeout_pos; } ev_timeout_pos;
evutil_socket_t ev_fd; evutil_socket_t ev_fd;
struct event_base *ev_base; struct event_base *ev_base;
union { union {
/* used for io events */ /* used for io events */
struct { struct {
LIST_ENTRY (event) ev_io_next; LIST_ENTRY (event) ev_io_next;
struct timeval ev_timeout; struct timeval ev_timeout;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 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/