emit pulse failure event when server connection fails

SVN revision: 76585
This commit is contained in:
Mike Blumenkrantz 2012-09-13 07:19:07 +00:00
parent 457152dc16
commit d62d619774
1 changed files with 10 additions and 1 deletions

View File

@ -345,11 +345,20 @@ static Eina_Bool
con(Pulse *conn, int type __UNUSED__, Ecore_Con_Event_Server_Add *ev)
{
int on = 1;
int fd;
if (conn != ecore_con_server_data_get(ev->server)) return ECORE_CALLBACK_PASS_ON;
INF("connected to %s", ecore_con_server_name_get(ev->server));
conn->fd = dup(ecore_con_server_fd_get(ev->server));
fd = ecore_con_server_fd_get(ev->server);
if (fd == -1)
{
conn->state = PA_STATE_INIT;
ecore_con_server_del(ev->server);
ecore_event_add(PULSE_EVENT_DISCONNECTED, conn, pulse_fake_free, NULL);
return ECORE_CALLBACK_RENEW;
}
conn->fd = dup(fd);
#ifdef SO_PASSCRED
setsockopt(conn->fd, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on));
#endif