1 #ifndef _ECORE_CON_PRIVATE_H
2 #define _ECORE_CON_PRIVATE_H
4 #include "ecore_private.h"
7 #define ECORE_MAGIC_CON_SERVER 0x77665544
8 #define ECORE_MAGIC_CON_CLIENT 0x77556677
9 #define ECORE_MAGIC_CON_URL 0x77074255
11 #define ECORE_CON_TYPE 0x0f
12 #define ECORE_CON_SSL 0xf0
15 # include <gnutls/gnutls.h>
17 # include <openssl/ssl.h>
20 #include <curl/curl.h>
23 #define READBUFSIZ 65536
25 extern int _ecore_con_log_dom ;
27 #ifdef ECORE_CON_DEFAULT_LOG_COLOR
28 #undef ECORE_LOG_DEFAULT_LOG_COLOR
30 #define ECORE_CON_DEFAULT_LOG_COLOR EINA_COLOR_BLUE
35 #define ERR(...) EINA_LOG_DOM_ERR(_ecore_con_log_dom, __VA_ARGS__)
40 #define DBG(...) EINA_LOG_DOM_DBG(_ecore_con_log_dom, __VA_ARGS__)
45 #define INF(...) EINA_LOG_DOM_INFO(_ecore_con_log_dom, __VA_ARGS__)
50 #define WRN(...) EINA_LOG_DOM_WARN(_ecore_con_log_dom, __VA_ARGS__)
55 #define CRIT(...) EINA_LOG_DOM_CRIT(_ecore_con_log_dom, __VA_ARGS__)
57 typedef enum _Ecore_Con_State
60 ECORE_CON_DISCONNECTED,
64 typedef enum _Ecore_Con_Ssl_Error
66 ECORE_CON_SSL_ERROR_NONE = 0,
67 ECORE_CON_SSL_ERROR_NOT_SUPPORTED,
68 ECORE_CON_SSL_ERROR_INIT_FAILED,
69 ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED,
70 ECORE_CON_SSL_ERROR_SSL2_NOT_SUPPORTED
71 } Ecore_Con_Ssl_Error;
73 struct _Ecore_Con_Client
77 Ecore_Con_Server *server;
79 Ecore_Fd_Handler *fd_handler;
85 struct sockaddr *client_addr;
88 gnutls_session session;
98 struct _Ecore_Con_Server
107 Ecore_Fd_Handler *fd_handler;
110 int write_buf_offset;
111 unsigned char *write_buf;
116 gnutls_session session;
117 gnutls_anon_client_credentials_t anoncred_c;
118 gnutls_anon_server_credentials_t anoncred_s;
128 char reject_excess_clients : 1;
133 struct _Ecore_Con_Url
137 struct curl_slist *headers;
138 struct curl_httppost* post;
139 Eina_List *additional_headers;
140 Eina_List *response_headers;
143 Ecore_Con_Url_Time condition;
147 Ecore_Fd_Handler *fd_handler;
154 unsigned char active : 1;
158 struct _Ecore_Con_Info
161 struct addrinfo info;
163 char service[NI_MAXSERV];
166 /* from ecore_local.c */
167 int ecore_con_local_init(void);
168 int ecore_con_local_shutdown(void);
169 int ecore_con_local_connect(Ecore_Con_Server *svr, int (*cb_done)(void *data, Ecore_Fd_Handler *fd_handler), void *data, void (*cb_free)(void *data, void *ev));
170 int ecore_con_local_listen(Ecore_Con_Server *svr, int (*cb_listen)(void *data, Ecore_Fd_Handler *fd_handler), void *data);
171 /* from ecore_con_info.c */
172 int ecore_con_info_init(void);
173 int ecore_con_info_shutdown(void);
174 int ecore_con_info_tcp_connect(Ecore_Con_Server *svr, Ecore_Con_Info_Cb done_cb, void *data);
175 int ecore_con_info_tcp_listen(Ecore_Con_Server *svr, Ecore_Con_Info_Cb done_cb, void *data);
176 int ecore_con_info_udp_connect(Ecore_Con_Server *svr, Ecore_Con_Info_Cb done_cb, void *data);
177 int ecore_con_info_udp_listen(Ecore_Con_Server *svr, Ecore_Con_Info_Cb done_cb, void *data);
178 int ecore_con_info_mcast_listen(Ecore_Con_Server *svr, Ecore_Con_Info_Cb done_cb, void *data);
179 /* from ecore_con_ssl.c */
180 Ecore_Con_Ssl_Error ecore_con_ssl_init(void);
181 Ecore_Con_Ssl_Error ecore_con_ssl_shutdown(void);
182 void ecore_con_ssl_server_prepare(Ecore_Con_Server *svr);
183 Ecore_Con_Ssl_Error ecore_con_ssl_server_init(Ecore_Con_Server *svr);
184 Ecore_Con_Ssl_Error ecore_con_ssl_server_shutdown(Ecore_Con_Server *svr);
185 Ecore_Con_State ecore_con_ssl_server_try(Ecore_Con_Server *svr);
186 int ecore_con_ssl_server_read(Ecore_Con_Server *svr, unsigned char *buf, int size);
187 int ecore_con_ssl_server_write(Ecore_Con_Server *svr, unsigned char *buf, int size);
188 Ecore_Con_Ssl_Error ecore_con_ssl_client_init(Ecore_Con_Client *svr);
189 Ecore_Con_Ssl_Error ecore_con_ssl_client_shutdown(Ecore_Con_Client *svr);
190 Ecore_Con_State ecore_con_ssl_client_try(Ecore_Con_Client *svr);
191 int ecore_con_ssl_client_read(Ecore_Con_Client *svr, unsigned char *buf, int size);
192 int ecore_con_ssl_client_write(Ecore_Con_Client *svr, unsigned char *buf, int size);