2012-05-30 Leif Middelschulte (T_UNIX)
* Add ECORE_X_RANDR_OUTPUT_POLICY_ASK
+
+2012-06-04 Mike Blumenkrantz
+
+ * ECORE_{CON,IPC}_NO_PROXY now available for disabling proxying on certain connections
- Add transparency support on Windows (GDI engine only)
* ecore_x:
- Add Ecore_X_Error_Code enumeration
+ * ecore_x:
+ - ECORE_X_RANDR_OUTPUT_POLICY_ASK
+ * ecore_con:
+ - ECORE_{CON,IPC}_NO_PROXY now available for disabling proxying on certain connections
Fixes:
* ecore
- Force cancel of all running Ecore_Thread on shutdown.
- Make Ecore_Thread work reliably when called without a running main loop.
-Additions:
-
- * ecore_x:
- - ECORE_X_RANDR_OUTPUT_POLICY_ASK
Ecore 1.2.0
/** Use both TLS and SSL3 */
ECORE_CON_USE_MIXED = ECORE_CON_USE_SSL3 | ECORE_CON_USE_TLS,
/** Attempt to use the loaded certificate */
- ECORE_CON_LOAD_CERT = (1 << 7)
+ ECORE_CON_LOAD_CERT = (1 << 7),
+ /** Disable all types of proxy on the server
+ * @note Only functional for clients
+ * @since 1.2
+ */
+ ECORE_CON_NO_PROXY = (1 << 8)
} Ecore_Con_Type;
/**
svr->data = (void *)data;
svr->created = EINA_FALSE;
svr->use_cert = (compl_type & ECORE_CON_SSL & ECORE_CON_LOAD_CERT) == ECORE_CON_LOAD_CERT;
+ svr->disable_proxy = (compl_type & ECORE_CON_SSL & ECORE_CON_NO_PROXY) == ECORE_CON_NO_PROXY;
svr->reject_excess_clients = EINA_FALSE;
svr->clients = NULL;
svr->client_limit = -1;
type = compl_type & ECORE_CON_TYPE;
- if (type > ECORE_CON_LOCAL_ABSTRACT)
+ if ((!svr->disable_proxy) && (type > ECORE_CON_LOCAL_ABSTRACT))
{
/* never use proxies on local connections */
if (_ecore_con_proxy_once)
#define ECORE_MAGIC_CON_URL 0x77074255
#define ECORE_CON_TYPE 0x0f
-#define ECORE_CON_SSL 0xf0
+#define ECORE_CON_SSL 0xf00
#if USE_GNUTLS
# include <gnutls/gnutls.h>
Eina_Bool connecting : 1; /* @c EINA_FALSE if just initialized or connected */
Eina_Bool handshaking : 1; /* @c EINA_TRUE if server is ssl handshaking */
Eina_Bool upgrade : 1; /* STARTTLS queued */
+ Eina_Bool disable_proxy : 1; /* proxy should never be used with this connection */
Eina_Bool ssl_prepared : 1;
Eina_Bool use_cert : 1; /* @c EINA_TRUE if using certificate auth */
Ecore_Con_Ssl_State ssl_state; /* current state of ssl handshake on the server */
ECORE_IPC_LOCAL_USER,
ECORE_IPC_LOCAL_SYSTEM,
ECORE_IPC_REMOTE_SYSTEM,
- ECORE_IPC_USE_SSL = 16
+ ECORE_IPC_USE_SSL = (1 << 4),
+ ECORE_IPC_NO_PROXY = (1 << 5)
} Ecore_Ipc_Type;
typedef struct _Ecore_Ipc_Event_Client_Add Ecore_Ipc_Event_Client_Add;
Ecore_Ipc_Server *svr;
Ecore_Ipc_Type type;
Ecore_Con_Type extra = 0;
+ int features;
svr = calloc(1, sizeof(Ecore_Ipc_Server));
if (!svr) return NULL;
- type = compl_type;
- type &= ~ECORE_IPC_USE_SSL;
- if (compl_type & ECORE_IPC_USE_SSL) extra = ECORE_CON_USE_SSL;
+ type = compl_type & ECORE_IPC_TYPE;
+ features = compl_type & ECORE_IPC_SSL;
+ if ((features & ECORE_IPC_USE_SSL) == ECORE_IPC_USE_SSL)
+ extra |= ECORE_CON_USE_SSL;
+ if ((features & ECORE_IPC_NO_PROXY) == ECORE_IPC_NO_PROXY)
+ extra |= ECORE_CON_NO_PROXY;
switch (type)
{
case ECORE_IPC_LOCAL_USER:
#define ECORE_MAGIC_IPC_CLIENT 0x78875665
typedef struct _Ecore_Ipc_Msg_Head Ecore_Ipc_Msg_Head;
-
+#define ECORE_IPC_TYPE 0x0f
+#define ECORE_IPC_SSL 0xf0
#if defined (_MSC_VER) || (defined (__SUNPRO_C) && __SUNPRO_C < 0x5100)
# pragma pack(1)