Enlightenment CVS committal
Author : tsauerbeck
Project : e17
Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_con
Modified Files:
ecore_con.c
Log Message:
try to connect the socket in the write branch of the fd handler, too. this seems to
fix a bug where a SERVER_DATA event was delivered before/without a SERVER_ADD event
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_con/ecore_con.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -3 -r1.30 -r1.31
--- ecore_con.c 9 May 2004 07:55:40 -0000 1.30
+++ ecore_con.c 9 May 2004 20:23:23 -0000 1.31
@@ -19,7 +19,6 @@
#include <stdlib.h>
#include <fcntl.h>
#include <netdb.h>
-#include <assert.h>
#if USE_OPENSSL
#include <time.h>
@@ -765,7 +764,7 @@
}
static int
-svr_try_connect(Ecore_Con_Server *svr)
+svr_try_connect_plain(Ecore_Con_Server *svr)
{
int so_err = 0, size = sizeof(int);
@@ -795,6 +794,29 @@
return (!svr->dead);
}
+/* returns 1 on success, 0 on failure */
+static int svr_try_connect (Ecore_Con_Server *svr)
+{
+#if USE_OPENSSL
+ if (!svr->ssl)
+ {
+#endif
+ return svr_try_connect_plain(svr);
+#if USE_OPENSSL
+ }
+ else
+ switch (svr_try_connect_ssl(svr)) {
+ case 1:
+ return svr_try_connect_plain(svr);
+ case -1:
+ kill_server(svr);
+ return 0;
+ default:
+ return 0;
+ }
+#endif
+}
+
static int
_ecore_con_cl_handler(void *data, Ecore_Fd_Handler *fd_handler)
@@ -811,22 +833,9 @@
unsigned char *inbuf = NULL;
int inbuf_num = 0;
-#if USE_OPENSSL
- if (svr->ssl && svr->connecting) {
- switch (svr_try_connect_ssl(svr)) {
- case 1:
- if (!svr_try_connect(svr))
- return 1;
- break;
- case -1:
- kill_server(svr);
- return 1;
- default:
- return 1;
- }
- }
-#endif
-
+ if (svr->connecting && !svr_try_connect(svr))
+ return 1;
+
for (;;)
{
int num, lost_server = 0;
@@ -895,29 +904,9 @@
}
else if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_WRITE))
{
- if (svr->connecting)
- {
-#if USE_OPENSSL
- if (!svr->ssl)
- {
-#endif
- if (!svr_try_connect(svr))
- return 1;
-#if USE_OPENSSL
- }
- else
- switch (svr_try_connect_ssl(svr)) {
- case 1:
- if (!svr_try_connect(svr))
- return 1;
- case -1:
- kill_server(svr);
- return 1;
- default:
- return 1;
- }
-#endif
- }
+ if (svr->connecting && !svr_try_connect (svr))
+ return 1;
+
_ecore_con_server_flush(svr);
}
-------------------------------------------------------
This SF.Net email is sponsored by Sleepycat Software
Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to
deliver higher performing products faster, at low TCO.
http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs