Seungyoung Kim | 18 Apr 11:04 2014
Picon

[INFO] Libasyncd - Embeddable Asynchronous Message/HTTP Server library for C/C++

Hi,

I'd like to introduce a new library, Libasyncd based on libevent.

Libasyncd is an embeddable event-driven asynchronous message server for C/C++. It supports HTTP protocol by default and you can add your own protocol handler(hook) to build your own high performance server.

GitHub: https://github.com/wolkykim/libasyncd

Asynchronous way of programming can easily go quite complicated since you need to handle every possible things in non-blocking way. So the goal of Libasyncd project is to make a flexible and fast asynchronous server framework with nice abstraction that can cut down the complexity.

For your quick reference, here's how it looks.
int my_http_get_handler(short event, ad_conn_t *conn, void *userdata) { if (ad_http_get_status(conn) == AD_HTTP_REQ_DONE) { ad_http_response(conn, 200, "text/html", "Hello World", 11); return AD_DONE; // Keep connection alive. } return AD_OK; } int main(int argc, char **argv) { ad_log_level(AD_LOG_DEBUG); ad_server_t *server = ad_server_new(); ad_server_set_option(server, "server.port", "8888"); ad_server_set_option(server, "server.ssl_cert", "ssl.cert"); ad_server_set_option(server, "server.ssl_pkey", "ssl.pkey") ad_server_register_hook(server, ad_http_handler, NULL); // HTTP Parser is also a hook. ad_server_register_hook(server, my_http_get_handler, NULL); return ad_server_start(server); }
I'd love to get your feedback.
And I'm also looking for someone who's willing to work together.

Thanks

Picon

libevent-2.1.4-alpha: implicit declaration of function 'SSL_set_tlsext_host_name'

Hello!
I try cross-compile libevent-2.1.4-alpha for ARM CPU.
Follow my configuration options:
./configure --prefix=/tmp/libevent --host=arm-fsl-linux-gnueabi
--disable-debug-mode --disable-libevent-install
--disable-libevent-regress --enable-function-sections
--enable-gcc-hardening
CC=/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gcc
CFLAGS=-I/opt/IMX53/ltib/rpm/BUILD/openssl-0.9.8g/include
LDFLAGS=-L/opt/IMX53/ltib/rpm/BUILD/openssl-0.9.8g -lssl -lcrypto

Unfortunately compilation stopped on samples:
  CCLD     sample/le-proxy
  CC       sample/https-client.o
sample/https-client.c: In function 'main':
sample/https-client.c:350: warning: implicit declaration of function
'SSL_set_tlsext_host_name'
sample/https-client.c:350: warning: nested extern declaration of
'SSL_set_tlsext_host_name'
  CC       sample/hostcheck.o
  CC       sample/openssl_hostname_validation.o
  CCLD     sample/https-client
sample/https-client.o: In function `main':
https-client.c:(.text+0xa78): undefined reference to
`SSL_set_tlsext_host_name'
collect2: ld returned 1 exit status
make[2]: *** [sample/https-client] Error 1

I think I found possible reason - configure search OpenSSL in system:
$ grep SSL_INCS libevent-2.1.4-alpha/configure
OPENSSL_INCS
        OPENSSL_INCS=`$PKG_CONFIG --cflags openssl 2>/dev/null`

I think problem will be solved after added OpenSSL configuration options
in configuration, e.g. OPENSSL_INCLUDE_DIR and OPENSSK_LIB_DIR.

Or may by I have another way for solving this problem?
Thank you and excuse me for my bad english.

--

-- 
Best regards,
Brilliantov Kirill Vladimirovich
***********************************************************************
To unsubscribe, send an e-mail to majordomo <at> freehaven.net with
unsubscribe libevent-users    in the body.

Txt User | 23 Mar 19:09 2014
Picon

Negotiating SSL over a already connected socket

Is it possible to negotiate SSL over an already connected socket in libevent2
(libevent-2.0.21-stable)? I am trying to do SMTP STARTTLS with smtp.gmail.com
at port 587.

Note: SMTP over ssl at port 465 of smtp.gmail.com works fine with
bufferevent_openssl_socket_new() and then bufferevent_socket_connect().

Example of a SMTP session:
Problem starts after step 10.

Normal connect to smtp.gmail.com at port 587

1.  S: 220 mx.google.com ESMTP xyz.xx - gsmtp
2.  C: EHLO localhost
3.  S: 250-mx.google.com at your service, [xxx.xxx.xxx.xxx]
4.  S: 250-SIZE 35882577
5.  S: 250-8BITMIME
6.  S: 250-STARTTLS
7.  S: 250-ENHANCEDSTATUSCODES
8.  S: 250 CHUNKING
9.  C: STARTTLS
10. S: 220 2.0.0 Ready to start TLS

**SSL negotiation happens here**

In case of a blocking socket, without libevent, it will be something like:

    SSL_set_fd(ssl, fd);
    SSL_connect(ssl);

Everything is encrypted at this point. Use usual SSL read/write functions.
I can not make it work with libevent2. EHLO is issued if SSL negotation worked.

10. C: EHLO localhost
11. S: 250-mx.google.com at your service, [xxx.xxx.xxx.xxx]
12. S: 250-SIZE 35882577
13. S: 250-8BITMIME
14. S: 250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN
15. S: 250-ENHANCEDSTATUSCODES
16. S: 250 CHUNKING
17. C: QUIT
S: 221 2.0.0 closing connection xxxx.xx - gsmtp

bufferevent_openssl_filter_new() seems ideal for it but I get the
error 'tlsv1 alert protocol version in SSL routines SSL3_READ_BYTES'
if SSLv23_client_method()) method is used in SSL_CTX_new(). Changing
methods does not make any difference (error messages are different).

Sample code to negotiate SSL follows (bev is used from step 1 to 10).

    SSL_CTX *ssl_ctx=(SSL_CTX *) NULL;
    SSL *ssl=NULL;
    SSL_library_init();
    SSL_load_error_strings();
    RAND_seed(rnd_seed,sizeof(rnd_seed));
    OpenSSL_add_all_algorithms();
    // tried TLSv1_1_client_method(), SSLv3_client_method()
    ssl_ctx=SSL_CTX_new(SSLv23_client_method());
    if (ssl_ctx == NULL)
    {
        log_error("Could not create SSL context\n");
        return;
    }
    ssl=SSL_new(ssl_ctx);

    bev_ssl = bufferevent_openssl_filter_new(cb_data->base,
            bev,
            ssl,
            BUFFEREVENT_SSL_CONNECTING,
            BEV_OPT_CLOSE_ON_FREE|BEV_OPT_DEFER_CALLBACKS);
    if (!bev_ssl)
    {
        log_error("bufferevent_openssl_filter_new failed");
        exit(1);
    }
    bev = bev_ssl;
    bufferevent_setcb(bev_ssl, ssl_read_callback, NULL,
event_callback, cb_data);
    bufferevent_enable(bev_ssl, EV_READ | EV_WRITE);

I can see fatal protocol version error in server hello in wireshark and then
client sending RST at the end. Note: I see client/server both using TLS v1.1.

Thanks.
***********************************************************************
To unsubscribe, send an e-mail to majordomo <at> freehaven.net with
unsubscribe libevent-users    in the body.

Nick Mathewson | 21 Mar 18:16 2014
Picon

ANN: Libevent-2.1.4-alpha is released.

Announcing Libevent 2.1.4-alpha
===============================

Libevent 2.1.4-alpha is released!

This is the fourth release in the Libevent 2.1 series. As the "alpha"
should tell you, this is not a stable release: you should not run it
unless you're willing to debug together.  If you want a stable version
of Libevent, stick to the 2.0 series for now.

The package is available from the website, at http://libevent.org/

There are GPG signatures there too; you should probably verify them,
to make sure you get the software you think you are getting.

What's new in Libevent 2.1.4-alpha
==================================

This release has a bunch of stuff, including numerous important
bugfixes and a few new (non-earthshaking) new API changes.  See the
changelog below for a complete list.

For explanations of what's changed in 2.1 so far, see "What's New In
Libevent 2.1", available as "whatsnew-2.1.txt" in the source
distribution, or online at
https://raw.github.com/libevent/libevent/master/whatsnew-2.1.txt

The whole darn ChangeLog
========================

Changes in version 2.1.4-alpha (21 Mar 2014)

 Libevent 2.1.4-alpha adds a number of new miscellaneous APIs to make
 Libevent more useful, including support for early close detection with
 epoll via EPOLLRDHUP, triggering bufferevent callbacks, adding more
 evhttp callbacks, and more. There are also numerous bugfixes, including
 a number for finalize-related issues from 2.1.3-alpha; and an
 alternative (non-primary!) cmake-based build mechanism.

 New APIs (core)
   o Added event_base_get_num_events() (0fa107d Mobai Zhang)
   o New event_base_active_by_fd API (865a142 Greg Hazel, 5c9da9a, 87fa2b0)
   o Add event_base_active_by_signal by analogy (4865943)
   o Add access to max event count stats (5173bef, efbd3dc, 26230a2
     Andrew Sweeney)
   o Implemented EV_CLOSED event for epoll backend
     (EPOLLRDHUP). (b1b69ac Diego Giagio, 53d2793, 43ffcf6, dfe1e52
     Marcin Juszkiewicz, ff26633 Joakim Soderberg, 3908a5e)

 New APIs (evutil_secure_rng)
   o Add evutil_secure_rng_set_urandom_device_file (2bbb5d7)

 New APIs (bufferevents)
   o Add function to fetch underlying ratelimit cfg (4b3d5af Mark Ellzey)
   o Pass and return const for bufferevent_get_token_bucket_cfg (1c77fbb
     Mark Ellzey)
   o Add watermark introspection (4ce242b Ondřej Kuzník)
   o Add an option to trigger bufferevent I/O callbacks (61ee18b Ondřej Kuzník)
   o Add an option to trigger bufferevent event callbacks (a7384c7
     Ondřej Kuzník)
   o Clarifications in response to merge req. comments (bd41947 Ondřej
     Kuzník)
   o Minor optimizations on bufferevent_trigger options (a3172a4)

 New APIs (evhttp)
   o Add evhttp_connection_get_server(). (a7f82a3 Maxime Henrion)
   o add a http default content type option (5a5acd9 Nicolas Martyanoff)
   o http: implement new evhttp_connection_get_addr() api. (0c7f040 Azat
     Khuzhin)
   o Add a variant of evhttp_send_reply_chunk() with a callback on
     evhttp_write_buffer() (8d8decf Julien BLACHE)
   o Allow registering callback for parsing HTTP headers (b0bd7fe Balint Reczey)
   o Provide on request complete callback facility (b083ca0 Andrew Sweeney)
   o evhttp_request_set_on_complete_cb to be more specific about what
     the function actually does and usage (da86dda Andrew Sweeney)
   o Update unit test to make sure that the callback happens after the
     output data is written (b85f398 Andrew Sweeney)

 Features (evdns)
   o bug fix for issues #293 evdns_base_load_hosts doesn't remove
     outdated addresses (954d2f9, f03d353, 45eba6f Kuldeep Gupta)

 Features: (cmake build support)
   o Initial CMake commit. (e415196 Joakim Soderberg)
   o Add all tests and benchmarks to CMake project. (e9fc014 Joakim Soderberg)
   o More work on adding tests to CMake project (99c1dc3 Joakim Soderberg)
   o Generate a dummy evconfig-private.h so things build
     properly. (ce14def Joakim Soderberg)
   o Link libm on unix platforms. (58fcd42 Joakim Soderberg)
   o Added some GCC specific options. (19222e5 Joakim Soderberg)
   o Use evutil_closesocket instead. (dbf2b51 Joakim Soderberg)
   o Add copyright and licensing files for CMake modules. (c259d53
     Joakim Soderberg)
   o Only include WIN32 getopt where it is used. (9bbce0b Joakim Soderberg)
   o Fix bench_cascade program on Windows. (78da644 Joakim Soderberg)
   o Don't segfault on no found event backend. (8f2af50 Joakim Soderberg)
   o Only test the event backends available on the system. (7ea4159
     Joakim Soderberg)
   o Added a "make verify" target. (e053c4f Joakim Soderberg)
   o Fix the make "verify" target on Windows. (67e5d74 Joakim Soderberg)
   o Get rid of deprecation warnings for OpenSSL on OSX 10.7+ (69c3516
     Joakim Söderberg)
   o Fix kqueue support. (a831f2f Joakim Söderberg)
   o Added a test for testing if kqueue works with pipes. (2799b35
     Joakim Söderberg)
   o Change the BSD license from 4 to 3-clause. (86df3ed Joakim Soderberg)
   o Minimum required python version is 2.4. (968e97b Joakim Soderberg)
   o Get rid of unknown pragma warnings. (0ef1d04 Joakim Soderberg)
   o Add a "make verify_coverage" target generation coverage
     info. (f2483f8 Joakim Soderberg)
   o Fix the "make verify" target on NetBSD (4ac086a Joakim Soderberg)
   o Only look for ZLib when it is used (if tests are
     included). (f780593 Joakim Soderberg)
   o Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into
     errors. (dd413bd Joakim Soderberg)
   o Add CMake config and install targets. (f3446ed Joakim Soderberg)
   o Fix typo (4b754df Joakim Soderberg)
   o Some work on making it possible to simply do add_subdirectory() on
     the project. (49ab363 Joakim Soderberg)
   o Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG (fd42e70 Joakim Soderberg)
   o Fix so that old nmake project still builds. (24d6466 Joakim
     Soderberg)
   o Rename README to README.md and use markdown to format. (d2bc39a
     Joakim Soderberg)
   o Update README with CMake build instructions. (604b8cc Joakim Soderberg)
   o Clean up the README some. (8d4cb35 JoakimSoderberg)
   o Forgotten headers for old nmake project compatability. (8697b99
     Joakim Soderberg)
   o Change all uses of WIN32 to _WIN32 (4e14395 Joakim Söderberg)
   o Fix include bug. (2024467 Joakim Söderberg)
   o Check if we're on OSX before disabling deprecation in le-proxy
     (8b40a5b Joakim Söderberg)
   o Fix broken autotools build. (ae1bd82 Joakim Söderberg)
   o Disclaimerize cmake a little in the README (d03b5bf)
   o Fix CMake compile when OpenSSL is disabled. (e423d42 Joakim
     Söderberg)
   o CMake: Get rid of python not found warning when regress tests
     turned off. (d38d798 Joakim Söderberg)
   o Fix https-client compilation on Windows. (d7be788 Joakim Soderberg)
   o Guard against EVENT_NOWIN32 being set during testing. (f1715b4
     Joakim Soderberg)
   o Check for OSX when checking for clang. (e212c54 Joakim Soderberg)
   o Added a Travis-CI configuration file. (8c0f0a9 Joakim Soderberg)
   o Added -Qunused-arguments for clang on macosx (ed99d92 Trond Norbye)
   o Rename event_extras to event_extra (a0dd5df Trond Norbye)
   o Add option to build shared library (4545fa9 Trond Norbye)
   o Add -Qunused-arguments for clang on macos (b56611d Trond Norbye)
   o Add cmake-related files to .gitignore (e061321 Trond Norbye)
   o Export event_extra not event_extras. (2b41bcf Joakim Söderberg)

 Bugfixes (core)
   o If evsel->del() fails, don't leave the evmap in an inconsistent
     state (9b5a527 Maxime Henrion)
   o Move event_debug_note_teardown_ before mm_free. (69b5c64)
   o Check CLOCK_MONOTONIC_* at runtime if needed. (911abf3)
   o Fix reinit of fds with EV_WRITE but not EV_READ. (ebfd8a8 maksqwe)
   o Tweaked callbacks to prevent race condition
     (https://github.com/libevent/libevent/issues/104) (40830f1, 2ea15ed
     John Ohl)
   o Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE
     case (9805972)

 Bugfixes (evhttp)
   o Fix a double close() bug in evhttp when the underlying bufferevent uses
     BEV_OPT_CLOSE_ON_FREE. (31db8a0 Maxime Henrion)
   o Fix an unlikely but possible error case for http connections (f22049e)
   o Avoid racy bufferevent activation (5eb1788 Nate Rosenblum)

 Bugfixes on 2.0 (Windows)
   o Use windows vsnprintf fixup logic on all windows environments (e826f19)
   o libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer)
    (b8f5980 Frank Denis)

 Bugfixes (evutil_secure_rng)
   o When we seed from /proc/sys/kernel/random/uuid, count it as success
     (e35b540)
   o We should return after arc4random_buf() (1ea1f26 Makoto Kato)
   o Avoid other RNG initialization FS reads when urandom file is
     specified (9695e9c)
   o Really remove RNG seeds from the stack (f5ced88)
   o Fix another arc4random_buf-related warning (e64a2b0)

 Bugfixes (bufferevents)
   o Initialize async bufferevent timeout CBs unconditionally (af9b2a7)

 Bugfixes (evdns)
   o Checking request nameserver for NULL, before using it. (5c710c0
     Belobrov Andrey)
   o Fix SEGFAULT after evdns_base_resume if no nameservers
     installed. (14971a8 Azat Khuzhin)
   o Actually use the log facility for reporting evdns problems. (e1766a1)
   o Fix SEGFAULT after evdns_base_resume if no nameservers
     installed. (f8d7df8 Azat Khuzhin)
   o fix for ServFail from RIPE Atlas release (62f596b Antony Antony)

 Bugfixes (compilation)
   o Fix test compilation with nmake: add the gdi.lib dependency (5ba8ab7)
   o Whoops. It is gdi.lib, not gdi32.lib. (github issue #61) (8ab612e)
   o Don't use return since return type is void and build error occurs
     using clang (838161d Makoto Kato)
   o Use void casts to suppress some "unchecked return value" warns (7080d55)
   o rpcgen: Generate regress.gen.[c,h] in build rather than src dir
     (243386c Ross Lagerwall)
   o Fix a compiler warning when checking for arc4random_buf linker
     breakage. (5cb3865)
   o Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
    (239d834)

   o Fix a c90 warning (c207682)
   o Fix consts in WIN32-Code/getopt*.[ch] (57abb35)

 Bugfixes (locks, synchronization)
   o Missed lock acquire/release in event_base_cancel_single_callback_()
     (d3d999a Azat Khuzhin)
   o Fix locking in bufferevent_get_options_(). (dbc9cd4 Maxime Henrion)

 Bugfixes (leaks)
   o Avoid leaking segment mappings when offset is not a page multiple (d409514)

 Testing
   o Add tests for evdns_base_resume(). (1cd9ff5 Azat Khuzhin)
   o Fix dns/leak_resume_send_err test. (7e876df Azat Khuzhin)
   o Add checks for evhttp_connection_get_server() in unit
     tests. (fbc323b Maxime Henrion)
   o Fix a (failure-only) null dereference in the unit tests (1104d0b)
   o Fix a logic error in test_evbuffer_freeze (7765884)
   o Add missing check to test_evbuffer_file_segment_add_cleanup_cb (eba4506)
   o Fix some crash-on-fail cases in DNS regression tests (87cd6f0)
   o DNS tests: add a missing check (f314900)
   o Finalize tests: add a missing check (82b6956)
   o test_evutil_rtrim: add another missing check. (e193c95)
   o regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset
     (611e28b Azat Khuzhin)
   o regress_http: add tests for evhttp_connection_get_addr() (4dd500c
     Azat Khuzhin)
   o Update to the latest version of tinytest (7a80476)
   o Heap-allocate zlib data structure in regress_zlib tests (4947c18)

 Performance tweaks (core)
   o Avoid redundant syscall to make a nonblocking socket nonblocking
     (42c03da Maxime Henrion)
   o Avoid redundant syscall if making a socket cloexec twice (1f29b18)
   o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62)

 Documentation
   o Document that arc4random is not a great cryptographic PRNG. (6e49696)
   o Small doxygen tweaks (6e67b51)
   o Try another doxygen tweak (ccf432b)
   o Clarify event_base_loop exit conditions (031a803)
   o Fix a typo (be7bf2c Ondřej Kuzník)
   o Document deferred eventcb behaviour (13a9a02 Ondřej Kuzník)
   o Typo fixes from Linus Nordberg (cec62cb, 8cd695b)
   o Fix duplicate paragraph in evbuffer_ptr documentation (58408ee)

 Code Improvements (coverity)
   o Fix a pile of coverity warnings in the unit tests (867f401)
   o Fix coverity warnings in benchmark tools. (ff7f739)
   o Whoops; fix compilation in bench.c (544cf88)
   o Remove spurious checks in evrpc.c error cases (coverity) (991b362)
   o Fix a couple of compilation warnings in regress_http.c (860767e)
   o Fix even more coverity warnings. (d240328)
   o Stop checking for inet_aton; we don't use it. (f665d5c)
   o Add an include to evrpc-internal to fix openbsd compilation warning
     (5e161c6)

 Cleanups
   o Remove an unreachable return statement in minheap-internal.h (e639a9e)
   o Refactor evmap_{io,signal}_active_() to tolerate bad inputs (974c60e)
   o Fix needless bufferevent includes in evdns.c (254c04e)
   o Fix a couple of "#ifdef WIN32" instances (88ecda3)
   o Remove unneeded declaration in bufferevent-internal.h (4c8ebcd)

 Sample code
   o le-proxy: Fail more gracefully if opening listener fails (44b2491)
   o http-server: drop uri_root from base_url in http-server. (6171e1c
Azat Khuzhin)
   o https-client: POST supported, args supported (c5887f7 Alexey Ozeritsky)
   o https-client: code cleanup (29af65e Alexey Ozeritsky)
   o https-client: Small tweaks to https-client.c (90786eb)
   o https-client: Set hostname for SNI extension (by f69m) (d1976f8)
   o https-client: add a cast to https-client.c (462e6b6)

Plans for Libevent 2.1
======================

I'd like to put out releases more frequently.  I think that, due to
the time that's passed, I should declare a feature freeze soon and
focus on bugfixes.

I would declare an official schedule here, but doing so in the past
has only led to me showing how bad I am at predicting the future.

Acknowledgments
===============

Thanks to everybody who helped with code, bug reports, and
suggestions, including but not limited to:

maksqwe
Andrey Belobrov
Antony Antony
Julien Blache
Ralph Castain
Frank Denis
Mark Ellzey
Diego Giagio
Kuldeep Gupta
Greg Hazel
Maxime Henrion
William Hoskins
Marcin Juszkiewicz
Makoto Kato
Azat Khuzhin
Ondřej Kuzník
Ross Lagerwall
Nicolas Martyanoff
Trond Norbye
Linus Nordberg
John Ohl
Alexey Ozeritsky
Balint Reczey
Nate Rosenblum
Joakim Soderberg
Joseph Spadavecchia
Harlan Stenn
Andrew Sweeney
Brian Utterback
Mobai Zhang
***********************************************************************
To unsubscribe, send an e-mail to majordomo <at> freehaven.net with
unsubscribe libevent-users    in the body.

Nick Mathewson | 19 Mar 01:23 2014
Picon

upcoming 2.1.4-alpha Libevent release [redux]

Hi, all!

I've fixed a test failure on old operating systems without IPv6
support, and fixed nearly all[*] of the AddressSanitizer and ubsan
warnings.

As noted before, 2.1.4-alpha will not have ugfix that I've been told
about, or every feature that I'm hoping to include in 2.1.x, but it's
been long enough without an alpha that it's probably wise to put a
release out so that the sensible people who aren't tracking the git
master branch can get bugfixes too.

If you'd like to try it out before release, have a look at

http://www.wangafu.net/~nickm/volatile/libevent-2.1.4-alpha-candidate2.tar.gz

Please let me know about any total showstopper bugs here.  (Like,
major regressions: significant problems that this release has but
which 2.1.3-alpha did not.)

THIS IS NOT THE ACTUAL RELEASE.  Do not upload this to package
repositories, etc.

I've attached a signed sha256sum again.

[*] The ubsan scanner doesn't like the FD_SET macro as used with
select, since the fd_mask type is required by POSIX to be long, but
FD_SET sets the high bit by doing "1L << N", which is technically a
signed integer overflow.  I'll leave it to the compiler people, the
standards people, and the POSIX people to argue about this one: the
POSIX standard and the C standard seem to be in disagreement.

best wishes,
--

-- 
Nick

http://www.wangafu.net/~nickm/volatile/libevent-2.1.4-alpha-candidate2.tar.gz

sha256sum =
6a440db1fb3dd7a316e5aca2625aab363dfaf029becc4f9699a8e498c8d2017b

Nick Mathewson | 17 Mar 18:31 2014
Picon

upcoming 2.1.4-alpha Libevent release

Hi, all!

There's been a lot of activity on Libevent recently, so I'm hoping to
put out a Libevent 2.1.4-alpha in the next day or two.  It will not
have every bugfix that I've been told about, or every feature that I'm
hoping to include in 2.1.x, but it's been long enough without an alpha
that it's probably wise to put a

If you want to try it out before the release, have a look at

http://www.wangafu.net/~nickm/volatile/libevent-2.1.4-alpha-candidate.tar.gz

Please let me know about any total showstopper bugs here.  (Like,
major regressions against 2.1.3-alpha)

THIS IS NOT THE ACTUAL RELEASE.  Do not upload this to package
repositories, etc.

I've attached a signed sha256sum.

--

-- 
Nick

http://www.wangafu.net/~nickm/volatile/libevent-2.1.4-alpha-candidate.tar.gz

sha256sum ==
cd788646ab6dfa3e1df8dc5e00a374f32e112821a7d58a71207f170890065f7a
Jeffrey Walton | 13 Mar 14:43 2014
Picon

How to interpret paramters to timeout callback?

I have a persistent timer. When its callback is invoked, I log the following:

timeout_cb: socket: -1; what: BEV_EVENT_READING; arg: 0x0x7362e0

Is a socket of -1 expected? If so, what is the purpose of the socket?

Why is BEV_EVENT_READING set? Shouldn't a timer set a
BEV_EVENT_TIMEOUT? Can I expect a BEV_EVENT_WRITING too?
***********************************************************************
To unsubscribe, send an e-mail to majordomo <at> freehaven.net with
unsubscribe libevent-users    in the body.

Jeffrey Walton | 11 Mar 22:56 2014
Picon

evbuffer_search_eol not finding CRLF?

I'm using the following to connect to my server:

$ printf "GET / HTTP/1.0 \r\n\r\n" | openssl s_client -connect localhost:8443

19 bytes are read in the callback, and that's the length of the string
in the printf above.

But the following is returning -1 for pos:

    size_t len = 0;

    evbuffer_ptr loc;
    memset(&loc, 0x00, sizeof(loc));

    evbuffer* c_buf = bufferevent_get_input(bev);
    ASSERT(c_buf);

    loc = evbuffer_search_eol(c_buf, &loc, &len, EVBUFFER_EOL_CRLF);
    if (loc.pos == -1)
    {
        /* No CRLF found */
        return 0;
    }

Any ideas what I am doing wrong?
***********************************************************************
To unsubscribe, send an e-mail to majordomo <at> freehaven.net with
unsubscribe libevent-users    in the body.

Jeffrey Walton | 11 Mar 16:20 2014
Picon

evbuffer_search_eol and double EVBUFFER_EOL_CRLF

I need to read a request from a client. A well formed request will
have a double-CRLF.

Is there a better way to search for the double-EOL that calling
evbuffer_search_eol, and then searching again starting at pos+1?
***********************************************************************
To unsubscribe, send an e-mail to majordomo <at> freehaven.net with
unsubscribe libevent-users    in the body.

Jeffrey Walton | 7 Mar 01:08 2014
Picon

OpenSSL support and Crash in COMP_CTX_free on Mac OS X?

I jumped to OS X from Linux for some quick testing. I could not help
but notice a crash in COMP_CTX_free started when the SSL object is
free'd after a call to bufferevent_free.

The crash occurs under no load with 1 test connection.

Has anyone else experienced the same?
***********************************************************************
To unsubscribe, send an e-mail to majordomo <at> freehaven.net with
unsubscribe libevent-users    in the body.

Jeffrey Walton | 4 Mar 02:25 2014
Picon

Add -rpath to Makefile?

Forgive my autotools ignorance here....

I'm trying to track down an issue with ECDSA certificates. I want to
add a couple of linker paths and a rpath to libevent during build.

How do I add an -rpath to libevent's Makefile? Is it as simple as
adding it it to LDFLAGS in Makefile and things will just work? Or is
an LDFLAGS envar before `config` the recommended way of doing it?

Thanks in advance.
***********************************************************************
To unsubscribe, send an e-mail to majordomo <at> freehaven.net with
unsubscribe libevent-users    in the body.


Gmane