[prev in list] [next in list] [prev in thread] [next in thread]
List: enlightenment-svn
Subject: E SVN: discomfitor trunk/ecore/src/lib/ecore_con
From: "Enlightenment SVN" <no-reply () enlightenment ! org>
Date: 2010-09-29 23:53:01
Message-ID: 20100929235301.18A5E1180C6 () e2 ! enlightenment ! org
[Download RAW message or body]
Log:
set fd handler flags properly from gnutls, update dbg info accordingly
reminder: do this for openssl later
Author: discomfitor
Date: 2010-09-29 16:53:00 -0700 (Wed, 29 Sep 2010)
New Revision: 52910
Modified:
trunk/ecore/src/lib/ecore_con/ecore_con.c trunk/ecore/src/lib/ecore_con/ecore_con_ssl.c
Modified: trunk/ecore/src/lib/ecore_con/ecore_con.c
===================================================================
--- trunk/ecore/src/lib/ecore_con/ecore_con.c 2010-09-29 23:50:33 UTC (rev 52909)
+++ trunk/ecore/src/lib/ecore_con/ecore_con.c 2010-09-29 23:53:00 UTC (rev 52910)
@@ -1809,6 +1809,7 @@
_ecore_con_cl_handler(void *data, Ecore_Fd_Handler *fd_handler)
{
Ecore_Con_Server *svr;
+ Eina_Bool want_read, want_write;
svr = data;
if (svr->dead)
@@ -1817,21 +1818,17 @@
if (svr->delete_me)
return ECORE_CALLBACK_RENEW;
- if (svr->handshaking && ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ | ECORE_FD_WRITE))
+ want_read = ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ);
+ want_write = ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_WRITE);
+
+ if (svr->handshaking && (want_read || want_write))
{
- DBG("Continuing ssl handshake");
- if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ))
- DBG("Preparing to read handshake data...");
- else
- DBG("Preparing to write handshake data...");
+ DBG("Continuing ssl handshake: preparing to %s...", want_read ? "read" : "write");
#ifdef PRINT_LOTS_OF_DEBUG
- if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ))
- {
char buf[32768];
ssize_t len;
len = recv(svr->fd, buf, sizeof(buf), MSG_DONTWAIT | MSG_PEEK);
DBG("%zu bytes in buffer", len);
- }
#endif
if (!svr->ssl_state)
{
@@ -1865,9 +1862,9 @@
}
}
- else if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ))
+ else if (want_read)
_ecore_con_cl_read(svr);
- else if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_WRITE))
+ else if (want_write)
{
if (svr->connecting && (!svr_try_connect(svr)))
return ECORE_CALLBACK_RENEW;
Modified: trunk/ecore/src/lib/ecore_con/ecore_con_ssl.c
===================================================================
--- trunk/ecore/src/lib/ecore_con/ecore_con_ssl.c 2010-09-29 23:50:33 UTC (rev 52909)
+++ trunk/ecore/src/lib/ecore_con/ecore_con_ssl.c 2010-09-29 23:53:00 UTC (rev 52910)
@@ -501,12 +501,15 @@
{
svr->handshaking = EINA_FALSE;
svr->ssl_state = ECORE_CON_SSL_STATE_DONE;
+ if (gnutls_record_get_direction(svr->session))
+ ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_WRITE);
+ else
+ ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ);
+ return ECORE_CON_SSL_ERROR_NONE;
}
default:
break;
}
- if (svr->ssl_state)
- return ECORE_CON_SSL_ERROR_NONE;
if (!svr->verify)
/* not verifying certificates, so we're done! */
@@ -789,6 +792,11 @@
{
cl->handshaking = EINA_FALSE;
cl->ssl_state = ECORE_CON_SSL_STATE_DONE;
+ if (gnutls_record_get_direction(cl->session))
+ ecore_main_fd_handler_active_set(cl->fd_handler, ECORE_FD_WRITE);
+ else
+ ecore_main_fd_handler_active_set(cl->fd_handler, ECORE_FD_READ);
+ return ECORE_CON_SSL_ERROR_NONE;
}
default:
break;
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
enlightenment-svn mailing list
enlightenment-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic