{
Ecore_Con_Event_Server_Add *ev;
- svr->delete_me = svr->dead = EINA_TRUE;
+ svr->delete_me = EINA_TRUE;
INF("svr %p is dead", svr);
/* some pointer hacks here to prevent double frees if people are being stupid */
EINA_LIST_FREE(svr->event_count, ev)
return 0;
}
- EINA_SAFETY_ON_TRUE_RETURN_VAL(svr->dead, 0);
+ EINA_SAFETY_ON_TRUE_RETURN_VAL(svr->delete_me, 0);
EINA_SAFETY_ON_NULL_RETURN_VAL(data, 0);
return 0;
}
- EINA_SAFETY_ON_TRUE_RETURN_VAL(cl->dead, 0);
+ EINA_SAFETY_ON_TRUE_RETURN_VAL(cl->delete_me, 0);
EINA_SAFETY_ON_NULL_RETURN_VAL(data, 0);
return EINA_FALSE;
}
- return !cl->dead;
+ return !cl->delete_me;
}
EAPI void
ecore_con_info_data_clear(svr->infos->data);
svr->infos = eina_list_remove_list(svr->infos, svr->infos);
}
- if ((!svr->buf) && svr->delete_me && (!svr->dead) && (!svr->event_count))
- {
- /* this is a catch-all for cases when a server is not properly killed. */
- CRIT("THIS SHOULD NOT BE REACHED! PLEASE SEND A FULL BT!");
- abort();
- /*
- svr->dead = EINA_TRUE;
- INF("svr %p is dead", svr);
- ecore_con_event_server_del(svr);
- return;
- */
- }
t_start = ecore_time_get();
- while (svr->buf && (!svr->dead))
+ while (svr->buf && (!svr->delete_me))
{
_ecore_con_server_flush(svr);
t = ecore_time_get();
/* some pointer hacks here to prevent double frees if people are being stupid */
EINA_LIST_FREE(cl->event_count, ev)
ev->server = NULL;
- cl->delete_me = cl->dead = EINA_TRUE;
+ cl->delete_me = EINA_TRUE;
INF("cl %p is dead", cl);
_ecore_con_client_free(cl);
}
if (!cl->delete_me)
ecore_con_event_client_del(cl);
INF("Lost client %s", (cl->ip) ? cl->ip : "");
- cl->dead = EINA_TRUE;
INF("cl %p is dead", cl);
if (cl->fd_handler)
ecore_main_fd_handler_del(cl->fd_handler);
if (cl->event_count) return;
- if (cl->delete_me && (!cl->dead) && (!cl->event_count))
- {
- /* this is a catch-all for cases when a client is not properly killed. */
- CRIT("THIS SHOULD NOT BE REACHED! PLEASE SEND A FULL BT!");
- abort();
- /*
- cl->dead = EINA_TRUE;
- INF("cl %p is dead", cl);
- ecore_con_event_client_del(cl);
- return;
- */
- }
-
-
t_start = ecore_time_get();
- while ((cl->buf) && (!cl->dead))
+ while ((cl->buf) && (!cl->delete_me))
{
_ecore_con_client_flush(cl);
t = ecore_time_get();
if (!svr->delete_me)
ecore_con_event_server_del(svr);
- svr->dead = EINA_TRUE;
INF("svr %p is dead", svr);
if (svr->fd_handler)
ecore_main_fd_handler_del(svr->fd_handler);
if (res == SOCKET_ERROR)
so_err = WSAGetLastError();
- if ((so_err == WSAEINPROGRESS) && !svr->dead)
+ if ((so_err == WSAEINPROGRESS) && !svr->delete_me)
return ECORE_CON_INPROGRESS;
#else
if (res < 0)
so_err = errno;
- if ((so_err == EINPROGRESS) && !svr->dead)
+ if ((so_err == EINPROGRESS) && !svr->delete_me)
return ECORE_CON_INPROGRESS;
#endif
if (svr->fd_handler && (!svr->buf))
ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ);
- if (!svr->dead)
+ if (!svr->delete_me)
return ECORE_CON_CONNECTED;
else
return ECORE_CON_DISCONNECTED;
const char *clerr = NULL;
svr = data;
- if (svr->dead)
+ if (svr->delete_me)
return ECORE_CALLBACK_RENEW;
if (svr->delete_me)
Eina_Bool want_read, want_write;
svr = data;
- if (svr->dead)
+ if (svr->delete_me)
return ECORE_CALLBACK_RENEW;
if (svr->delete_me)
want_write = ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_WRITE);
svr = data;
- if (svr->dead || svr->delete_me || ((!want_read) && (!want_write)))
+ if (svr->delete_me || svr->delete_me || ((!want_read) && (!want_write)))
return ECORE_CALLBACK_RENEW;
if (want_write)
svr = data;
- if (svr->delete_me || svr->dead)
+ if (svr->delete_me)
return ECORE_CALLBACK_RENEW;
if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_WRITE))
Ecore_Con_Client *cl;
cl = data;
- if (cl->dead)
- return ECORE_CALLBACK_RENEW;
-
if (cl->delete_me)
return ECORE_CALLBACK_RENEW;
#endif
Ecore_Con_Ssl_State ssl_state;
Eina_Bool handshaking : 1;
- Eina_Bool upgrade : 1;
- Eina_Bool dead : 1;
- Eina_Bool delete_me : 1;
+ Eina_Bool upgrade : 1; /* STARTTLS queued */
+ Eina_Bool delete_me : 1; /* del event has been queued */
};
struct _Ecore_Con_Server
double disconnect_time;
double client_disconnect_time;
const char *ip;
- Eina_Bool dead : 1;
Eina_Bool created : 1; /* EINA_TRUE if server is our listening server */
Eina_Bool connecting : 1; /* EINA_FALSE if just initialized or connected */
Eina_Bool handshaking : 1; /* EINA_TRUE if server is ssl handshaking */
- Eina_Bool upgrade : 1;
+ Eina_Bool upgrade : 1; /* STARTTLS queued */
Eina_Bool ssl_prepared : 1;
Eina_Bool use_cert : 1; /* EINA_TRUE if using certificate auth */
Ecore_Con_Ssl_State ssl_state; /* current state of ssl handshake on the server */
Eina_Bool verify : 1; /* EINA_TRUE if certificates will be verified */
Eina_Bool verify_basic : 1; /* EINA_TRUE if certificates will be verified only against the hostname */
Eina_Bool reject_excess_clients : 1;
- Eina_Bool delete_me : 1;
+ Eina_Bool delete_me : 1; /* del event has been queued */
#ifdef _WIN32
Eina_Bool want_write : 1;
Eina_Bool read_stop : 1;