forked from enlightenment/efl
cleaner handling of optional features
SVN revision: 26084
This commit is contained in:
parent
64386aa44c
commit
feeca8301b
|
@ -74,8 +74,8 @@ extern "C" {
|
|||
ECORE_CON_LOCAL_USER,
|
||||
ECORE_CON_LOCAL_SYSTEM,
|
||||
ECORE_CON_LOCAL_ABSTRACT,
|
||||
ECORE_CON_REMOTE_SYSTEM
|
||||
,ECORE_CON_USE_SSL = 16
|
||||
ECORE_CON_REMOTE_SYSTEM,
|
||||
ECORE_CON_USE_SSL = 16
|
||||
} Ecore_Con_Type;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -171,11 +171,8 @@ ecore_con_server_add(Ecore_Con_Type compl_type,
|
|||
#endif
|
||||
|
||||
if ((type == ECORE_CON_LOCAL_USER) ||
|
||||
(type == ECORE_CON_LOCAL_SYSTEM)
|
||||
#ifdef HAVE_ABSTRACT_SOCKETS
|
||||
|| (type == ECORE_CON_LOCAL_ABSTRACT)
|
||||
#endif
|
||||
)
|
||||
(type == ECORE_CON_LOCAL_SYSTEM) ||
|
||||
(type == ECORE_CON_LOCAL_ABSTRACT))
|
||||
{
|
||||
const char *homedir;
|
||||
struct stat st;
|
||||
|
@ -236,24 +233,25 @@ ecore_con_server_add(Ecore_Con_Type compl_type,
|
|||
goto error;
|
||||
}
|
||||
socket_unix.sun_family = AF_UNIX;
|
||||
#ifdef HAVE_ABSTRACT_SOCKET
|
||||
if (type == ECORE_CON_LOCAL_ABSTRACT)
|
||||
{
|
||||
#ifdef HAVE_ABSTRACT_SOCKET
|
||||
/* . is a placeholder */
|
||||
snprintf(socket_unix.sun_path, sizeof(socket_unix.sun_path), ".%s", name);
|
||||
/* first char null indicates abstract namespace */
|
||||
socket_unix.sun_path[0] = '\0';
|
||||
socket_unix_len = LENGTH_OF_ABSTRACT_SOCKADDR_UN(&socket_unix, name);
|
||||
#else
|
||||
fprintf(stderr, "Your system does not support abstract sockets!\n");
|
||||
umask(pmode);
|
||||
goto error;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
strncpy(socket_unix.sun_path, buf, sizeof(socket_unix.sun_path));
|
||||
socket_unix_len = LENGTH_OF_SOCKADDR_UN(&socket_unix);
|
||||
}
|
||||
#else
|
||||
strncpy(socket_unix.sun_path, buf, sizeof(socket_unix.sun_path));
|
||||
socket_unix_len = LENGTH_OF_SOCKADDR_UN(&socket_unix);
|
||||
#endif
|
||||
if (bind(svr->fd, (struct sockaddr *)&socket_unix, socket_unix_len) < 0)
|
||||
{
|
||||
if (connect(svr->fd, (struct sockaddr *)&socket_unix,
|
||||
|
@ -425,11 +423,8 @@ ecore_con_server_connect(Ecore_Con_Type compl_type,
|
|||
if ((type == ECORE_CON_REMOTE_SYSTEM) && (port < 0)) return NULL;
|
||||
|
||||
if ((type == ECORE_CON_LOCAL_USER) ||
|
||||
(type == ECORE_CON_LOCAL_SYSTEM)
|
||||
#ifdef HAVE_ABSTRACT_SOCKETS
|
||||
|| (type == ECORE_CON_LOCAL_ABSTRACT)
|
||||
#endif
|
||||
)
|
||||
(type == ECORE_CON_LOCAL_SYSTEM) ||
|
||||
(type == ECORE_CON_LOCAL_ABSTRACT))
|
||||
{
|
||||
const char *homedir;
|
||||
int socket_unix_len;
|
||||
|
@ -465,23 +460,23 @@ ecore_con_server_connect(Ecore_Con_Type compl_type,
|
|||
if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, &curstate, sizeof(curstate)) < 0) goto error;
|
||||
socket_unix.sun_family = AF_UNIX;
|
||||
|
||||
#ifdef HAVE_ABSTRACT_SOCKETS
|
||||
if (type == ECORE_CON_LOCAL_ABSTRACT)
|
||||
{
|
||||
#ifdef HAVE_ABSTRACT_SOCKETS
|
||||
/* copy name insto sun_path, prefixed by null to indicate abstract namespace */
|
||||
snprintf(socket_unix.sun_path, sizeof(socket_unix.sun_path), ".%s", name);
|
||||
socket_unix.sun_path[0] = '\0';
|
||||
socket_unix_len = LENGTH_OF_ABSTRACT_SOCKADDR_UN(&socket_unix, name);
|
||||
#else
|
||||
fprintf(stderr, "Your system does not support abstract sockets!\n");
|
||||
goto error;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
strncpy(socket_unix.sun_path, buf, sizeof(socket_unix.sun_path));
|
||||
socket_unix_len = LENGTH_OF_SOCKADDR_UN(&socket_unix);
|
||||
}
|
||||
#else
|
||||
strncpy(socket_unix.sun_path, buf, sizeof(socket_unix.sun_path));
|
||||
socket_unix_len = LENGTH_OF_SOCKADDR_UN(&socket_unix);
|
||||
#endif
|
||||
|
||||
if (connect(svr->fd, (struct sockaddr *)&socket_unix, socket_unix_len) < 0) goto error;
|
||||
svr->path = strdup(buf);
|
||||
|
|
|
@ -27,13 +27,9 @@ typedef enum _Ecore_Con_Type
|
|||
{
|
||||
ECORE_CON_LOCAL_USER,
|
||||
ECORE_CON_LOCAL_SYSTEM,
|
||||
#ifdef HAVE_ABSTRACT_SOCKETS
|
||||
ECORE_CON_LOCAL_ABSTRACT,
|
||||
#endif
|
||||
ECORE_CON_REMOTE_SYSTEM
|
||||
#if USE_OPENSSL
|
||||
,ECORE_CON_USE_SSL = 16
|
||||
#endif
|
||||
ECORE_CON_REMOTE_SYSTEM,
|
||||
ECORE_CON_USE_SSL = 16
|
||||
} Ecore_Con_Type;
|
||||
|
||||
struct _Ecore_Con_Client
|
||||
|
|
|
@ -184,13 +184,11 @@ ecore_dbus_address_connect(Ecore_DBus_Address *addr, const void *data)
|
|||
type = ECORE_CON_LOCAL_SYSTEM;
|
||||
name = ecore_dbus_address_value_get(addr, "path");
|
||||
|
||||
#ifdef HAVE_ABSTRACT_SOCKETS
|
||||
if (!name)
|
||||
{
|
||||
name = ecore_dbus_address_value_get(addr, "abstract");
|
||||
type = ECORE_CON_LOCAL_ABSTRACT;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!name) return NULL;
|
||||
port = -1;
|
||||
|
|
Loading…
Reference in New Issue