summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Hacohen <tom@stosb.com>2014-08-22 17:05:15 +0100
committerTom Hacohen <tom@stosb.com>2014-08-22 17:05:15 +0100
commit0977799d9b428bf79af3248d19c9cd31dab9bfdd (patch)
tree94b7939550427c15f199b7035b2abefb2fcaee52
parent585d7be93f08b47c13144182033d88776041085f (diff)
downloadefl-devs/tasn/eolian_segfault.tar.gz
-rw-r--r--src/lib/ecore_con/Ecore_Con.h11
-rw-r--r--src/lib/ecore_con/ecore_con.c6
-rw-r--r--src/lib/ecore_con/ecore_con_server.eo16
3 files changed, 18 insertions, 15 deletions
diff --git a/src/lib/ecore_con/Ecore_Con.h b/src/lib/ecore_con/Ecore_Con.h
index 2e1696b2c8..ce95aeb23d 100644
--- a/src/lib/ecore_con/Ecore_Con.h
+++ b/src/lib/ecore_con/Ecore_Con.h
@@ -890,17 +890,6 @@ EAPI void * ecore_con_server_data_set(Ecore_Con_Server *svr,
* @return @c EINA_TRUE if the server is connected, @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool ecore_con_server_connected_get(const Ecore_Con_Server *svr);
-/**
- * Retrieves the current list of clients.
- *
- * @param svr The given server.
- * @return The list of clients on this server.
- *
- * Each node in the returned list points to an @ref Ecore_Con_Client. This list
- * cannot be modified or freed. It can also change if new clients are connected
- * or disconnected, and will become invalid when the server is deleted/freed.
- */
-EAPI const Eina_List * ecore_con_server_clients_get(Ecore_Con_Server *svr);
/**
* Retrieves the server port in use.
diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c
index 147f39b789..9859473ed5 100644
--- a/src/lib/ecore_con/ecore_con.c
+++ b/src/lib/ecore_con/ecore_con.c
@@ -588,11 +588,9 @@ _ecore_con_server_ecore_con_connected_get(Eo *obj EINA_UNUSED, Ecore_Con_Server_
return !svr->connecting;
}
-EAPI const Eina_List *
-ecore_con_server_clients_get(Ecore_Con_Server *obj)
+EOLIAN const Eina_List *
+_ecore_con_server_clients_get(Eo *obj EINA_UNUSED, Ecore_Con_Server_Data *svr)
{
- Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS);
-
return svr->clients;
}
diff --git a/src/lib/ecore_con/ecore_con_server.eo b/src/lib/ecore_con/ecore_con_server.eo
index 99ce1838fa..c6ebed2262 100644
--- a/src/lib/ecore_con/ecore_con_server.eo
+++ b/src/lib/ecore_con/ecore_con_server.eo
@@ -36,6 +36,22 @@ class Ecore.Con.Server (Ecore.Con) {
char reject_excess_clients; /*@ Set to 1 to automatically disconnect excess clients as soon as they connect if you are already handling client_limit clients. Set to 0 (default) to just hold off on the "accept()" system call until the number of active clients drops. This causes the kernel to queue up to 4096 connections (or your kernel's limit, whichever is lower). */
}
}
+ /* FIXME: Should this return an iterator? */
+ clients {
+ /*@
+ * Retrieves the current list of clients.
+ *
+ *
+ * Each node in the returned list points to an @ref Ecore_Con_Client. This list
+ * cannot be modified or freed. It can also change if new clients are connected
+ * or disconnected, and will become invalid when the server is deleted/freed.
+ */
+ get {
+ }
+ values {
+ const(Eina_List <const(Ecore.Con.Client) *>) *clients; /*@ The list of clients on this server. */
+ }
+ }
}
implements {
Eo.Base.destructor;