corrections:

If I comment out the call bufferevent_openssl_filter_new(), then the client
can finish handshake, but the server read/write callback not working.

The code as above (i.e., with the bufferevent_openssl_filter_new() call)
enters an infinite loop (from the USE_DEBUG build).

[debug] event_add: event: 0xe1bfe0 (fd 6), EV_READ   call 0x7fca51fec1b0
[debug] Epoll ADD(1) on fd 6 okay. [old events were 0; read change was 1;
write change was 0]
[debug] event_add: event: 0xe1af40 (fd 7), EV_READ   call 0x7fca51ff94ce
[debug] Epoll ADD(1) on fd 7 okay. [old events were 0; read change was 1;
write change was 0]
[debug] event_add: event: 0xe1a740 (fd 2),    call 0x402044
[debug] evsig_add: 2: changing signal handler
[debug] _evsig_set_handler: evsignal (2) >= sh_old_max (0), resizing
[debug] event_add: event: 0xe1be38 (fd 5), EV_READ   call 0x7fca52003839
[debug] Epoll ADD(1) on fd 5 okay. [old events were 0; read change was 1;
write change was 0]
[debug] epoll_dispatch: epoll_wait reports 1
[debug] event_active: 0xe1af40 (fd 7), res 2, callback 0x7fca51ff94ce
[debug] event_process_active: event: 0xe1af40, EV_READ  call 0x7fca51ff94ce
[debug] event_add: event: 0xe1ca80 (fd 8), EV_READ   call 0x7fca51fd5793
[debug] Epoll ADD(1) on fd 8 okay. [old events were 0; read change was 1;
write change was 0]
[debug] event_add: event: 0xe1cb08 (fd 8),  EV_WRITE  call 0x7fca51fd5793
[debug] Epoll MOD(5) on fd 8 okay. [old events were 2; read change was 0;
write change was 1]
[debug] event_add: event: 0xe1ca80 (fd 8), EV_READ   call 0x7fca51fd5793
[debug] event_add: event: 0xe1cb08 (fd 8),  EV_WRITE  call 0x7fca51fd5793
[debug] epoll_dispatch: epoll_wait reports 1
[debug] event_active: 0xe1ca80 (fd 8), res 2, callback 0x7fca51fd5793
[debug] event_active: 0xe1cb08 (fd 8), res 4, callback 0x7fca51fd5793
[debug] event_process_active: event: 0xe1ca80, EV_READ  call 0x7fca51fd5793
[debug] event_del: 0xe1cb08 (fd 8), callback 0x7fca51fd5793
[debug] Epoll MOD(1) on fd 8 okay. [old events were 6; read change was 0;
write change was 2]
[debug] event_add: event: 0xe1ca80 (fd 8), EV_READ   call 0x7fca51fd5793
[debug] epoll_dispatch: epoll_wait reports 1
[debug] event_active: 0xe1ca80 (fd 8), res 2, callback 0x7fca51fd5793
[debug] event_process_active: event: 0xe1ca80, EV_READ  call 0x7fca51fd5793
[debug] event_del: 0xe1cb08 (fd 8), callback 0x7fca51fd5793
[debug] event_add: event: 0xe1ca80 (fd 8), EV_READ   call 0x7fca51fd5793
[debug] epoll_dispatch: epoll_wait reports 1
[debug] event_active: 0xe1ca80 (fd 8), res 2, callback 0x7fca51fd5793
[debug] event_process_active: event: 0xe1ca80, EV_READ  call 0x7fca51fd5793
[debug] event_del: 0xe1cb08 (fd 8), callback 0x7fca51fd5793
 ( and continues ...)

On Wed, Feb 2, 2011 at 1:17 PM, Wayne Shao <[email protected]> wrote:

> I changed it to BUFFEREVENT_SSL_ACCEPTING. The read/write callbacks are
> still not invoked.
>
> Is there an example SSL server anywhere?
>
>
> On Wed, Feb 2, 2011 at 12:44 PM, Nick Mathewson <[email protected]>wrote:
>
>> On Wed, Feb 2, 2011 at 2:27 PM, Wayne Shao <[email protected]> wrote:
>> > Hi,
>> > I tried to setup an SSL server with libevent. But the read/write
>> callbacks
>> > are not invoked after the handshake phase.
>> > Please see the code below.
>> > Thanks,
>> > W Shao
>>
>> I think the problem is using BUFFEREVENT_SSL_OPEN.  When you get the
>> connection,  it *isn't* an open SSL connection, so you need to pass in
>> BUFFEREVENT_SSL_ACCEPTING.
>> ***********************************************************************
>> To unsubscribe, send an e-mail to [email protected] with
>> unsubscribe libevent-users    in the body.
>>
>
>
>
> --
> W. Shao
>
>

Reply via email to