reorder functions, redo doxy, make a not so obvious null pointer more obvious for...
authordiscomfitor <discomfitor@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 29 Jul 2010 00:27:15 +0000 (00:27 +0000)
committerdiscomfitor <discomfitor@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 29 Jul 2010 00:27:15 +0000 (00:27 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@50627 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/ecore_con/ecore_con.c

index 9fa8e7d..e9703ca 100644 (file)
@@ -89,17 +89,17 @@ static int _ecore_con_init_count = 0;
 int _ecore_con_log_dom = -1;
 
 /**
- * @defgroup Ecore_Con_Lib_Group Ecore Connection Library Functions
+ * @addtogroup Ecore_Con_Lib_Group Ecore Connection Library Functions
  *
  * Utility functions that set up and shut down the Ecore Connection
  * library.
+ * @{
  */
 
 /**
  * Initialises the Ecore_Con library.
  * @return  Number of times the library has been initialised without being
  *          shut down.
- * @ingroup Ecore_Con_Lib_Group
  */
 EAPI int
 ecore_con_init(void)
@@ -143,7 +143,6 @@ ecore_con_init(void)
  * Shuts down the Ecore_Con library.
  * @return  Number of times the library has been initialised without being
  *          shut down.
- * @ingroup Ecore_Con_Lib_Group
  */
 EAPI int
 ecore_con_shutdown(void)
@@ -165,11 +164,14 @@ ecore_con_shutdown(void)
 
    return _ecore_con_init_count;
 }
+/** @} */
+
 
 /**
- * @defgroup Ecore_Con_Server_Group Ecore Connection Server Functions
+ * @addtogroup Ecore_Con_Server_Group Ecore Connection Server Functions
  *
  * Functions that operate on Ecore server objects.
+ * @{
  */
 
 /**
@@ -196,7 +198,6 @@ ecore_con_shutdown(void)
  * @param  data       Data to associate with the created Ecore_Con_Server
  *                    object.
  * @return A new Ecore_Con_Server.
- * @ingroup Ecore_Con_Server_Group
  */
 EAPI Ecore_Con_Server *
 ecore_con_server_add(Ecore_Con_Type compl_type, const char *name, int port,
@@ -307,7 +308,6 @@ error:
  * @param  data       Data to associate with the created Ecore_Con_Server
  *                    object.
  * @return A new Ecore_Con_Server.
- * @ingroup Ecore_Con_Server_Group
  */
 EAPI Ecore_Con_Server *
 ecore_con_server_connect(Ecore_Con_Type compl_type, const char *name, int port,
@@ -398,7 +398,6 @@ error:
  * Closes the connection and frees the given server.
  * @param   svr The given server.
  * @return  Data associated with the server when it was created.
- * @ingroup Ecore_Con_Server_Group
  * @see ecore_con_server_add, ecore_con_server_connect
  */
 EAPI void *
@@ -436,7 +435,6 @@ ecore_con_server_del(Ecore_Con_Server *svr)
  * Retrieves the data associated with the given server.
  * @param   svr The given server.
  * @return  The associated data.
- * @ingroup Ecore_Con_Server_Group
  */
 EAPI void *
 ecore_con_server_data_get(Ecore_Con_Server *svr)
@@ -453,11 +451,34 @@ ecore_con_server_data_get(Ecore_Con_Server *svr)
 }
 
 /**
+ * Sets the data associated with the given server.
+ * @param svr The given server.
+ * @param data The data to associate with @p svr
+ * @return  The previously associated data, if any.
+ */
+EAPI void *
+ecore_con_server_data_set(Ecore_Con_Server *svr, void *data)
+{
+   void *ret = NULL;
+
+   if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER))
+     {
+        ECORE_MAGIC_FAIL(svr,
+                         ECORE_MAGIC_CON_SERVER,
+                         "ecore_con_server_data_get");
+        return NULL;
+     }
+
+   ret = svr->data;
+   svr->data = data;
+   return ret;
+}
+
+/**
  * Retrieves whether the given server is currently connected.
  * @todo Check that this function does what the documenter believes it does.
  * @param   svr The given server.
  * @return  @c 1 if the server is connected.  @c 0 otherwise.
- * @ingroup Ecore_Con_Server_Group
  */
 EAPI int
 ecore_con_server_connected_get(Ecore_Con_Server *svr)
@@ -479,7 +500,6 @@ ecore_con_server_connected_get(Ecore_Con_Server *svr)
  * Retrieves the current list of clients.
  * @param   svr The given server.
  * @return  The list of clients on this server.
- * @ingroup Ecore_Con_Server_Group
  */
 EAPI Eina_List *
 ecore_con_server_clients_get(Ecore_Con_Server *svr)
@@ -501,7 +521,6 @@ ecore_con_server_clients_get(Ecore_Con_Server *svr)
  * @param   size Length of the data, in bytes, to send.
  * @return  The number of bytes sent.  @c 0 will be returned if there is an
  *          error.
- * @ingroup Ecore_Con_Server_Group
  */
 EAPI int
 ecore_con_server_send(Ecore_Con_Server *svr, const void *data, int size)
@@ -571,7 +590,6 @@ ecore_con_server_send(Ecore_Con_Server *svr, const void *data, int size)
  *                        drops. This causes the kernel to queue up to 4096
  *                        connections (or your kernel's limit, whichever is
  *                        lower).
- * @ingroup Ecore_Con_Server_Group
  */
 EAPI void
 ecore_con_server_client_limit_set(Ecore_Con_Server *svr, int client_limit,
@@ -596,7 +614,6 @@ ecore_con_server_client_limit_set(Ecore_Con_Server *svr, int client_limit,
  *          the connected server in the form "XXX.YYY.ZZZ.AAA" IP notation.
  *          This string should not be modified or trusted to stay valid after
  *          deletion for the @p svr object. If no IP is known NULL is returned.
- * @ingroup Ecore_Con_Server_Group
  */
 EAPI const char *
 ecore_con_server_ip_get(Ecore_Con_Server *svr)
@@ -614,7 +631,6 @@ ecore_con_server_ip_get(Ecore_Con_Server *svr)
  * Flushes all pending data to the given server. Will return when done.
  *
  * @param   svr           The given server.
- * @ingroup Ecore_Con_Server_Group
  */
 EAPI void
 ecore_con_server_flush(Ecore_Con_Server *svr)
@@ -629,9 +645,37 @@ ecore_con_server_flush(Ecore_Con_Server *svr)
 }
 
 /**
- * @defgroup Ecore_Con_Client_Group Ecore Connection Client Functions
+ * Add an ssl certificate for use in ecore_con_server functions.
+ *
+ * Use this function to add a SSL PEM certificate.
+ * Simply specify the cert here to make it available,
+ * then OR the @ref ECORE_CON_LOAD_CERT flag into the @ref ecore_con_server_connect
+ * call to use it.  If there is an error loading the certificate upon creating
+ * the connection, an error will be automatically logged.
+ * @param cert The path to the certificate.
+ * @return EINA_FALSE if the file cannot be loaded,
+ * otherwise EINA_TRUE.
+ * @note Currently certificate verification is not implemented.
+ */
+
+EAPI Eina_Bool
+ecore_con_server_ssl_cert_add(const char *cert)
+{
+
+   if (!eina_str_has_extension(cert, "pem"))
+      return EINA_FALSE;
+
+   return ecore_con_ssl_server_cert_add(cert);
+}
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Ecore_Con_Client_Group Ecore Connection Client Functions
  *
  * Functions that operate on Ecore connection client objects.
+ * @{
  */
 
 /**
@@ -641,7 +685,6 @@ ecore_con_server_flush(Ecore_Con_Server *svr)
  * @param   size Length of the data, in bytes, to send.
  * @return  The number of bytes sent.  @c 0 will be returned if there is an
  *          error.
- * @ingroup Ecore_Con_Client_Group
  */
 EAPI int
 ecore_con_client_send(Ecore_Con_Client *cl, const void *data, int size)
@@ -699,7 +742,6 @@ ecore_con_client_send(Ecore_Con_Client *cl, const void *data, int size)
  * connected to.
  * @param   cl The given client.
  * @return  The server that the client connected to.
- * @ingroup Ecore_Con_Client_Group
  */
 EAPI Ecore_Con_Server *
 ecore_con_client_server_get(Ecore_Con_Client *cl)
@@ -718,7 +760,6 @@ ecore_con_client_server_get(Ecore_Con_Client *cl)
  * Closes the connection and frees memory allocated to the given client.
  * @param   cl The given client.
  * @return  Data associated with the client.
- * @ingroup Ecore_Con_Client_Group
  */
 EAPI void *
 ecore_con_client_del(Ecore_Con_Client *cl)
@@ -765,7 +806,6 @@ ecore_con_client_del(Ecore_Con_Client *cl)
  * Sets the data associated with the given client to @p data.
  * @param   cl   The given client.
  * @param   data What to set the data to.
- * @ingroup Ecore_Con_Client_Group
  */
 EAPI void
 ecore_con_client_data_set(Ecore_Con_Client *cl, const void *data)
@@ -785,7 +825,6 @@ ecore_con_client_data_set(Ecore_Con_Client *cl, const void *data)
  * Retrieves the data associated with the given client.
  * @param   cl The given client.
  * @return  The data associated with @p cl.
- * @ingroup Ecore_Con_Client_Group
  */
 EAPI void *
 ecore_con_client_data_get(Ecore_Con_Client *cl)
@@ -809,7 +848,6 @@ ecore_con_client_data_get(Ecore_Con_Client *cl)
  *          the connected client in the form "XXX.YYY.ZZZ.AAA" IP notation.
  *          This string should not be modified or trusted to stay valid after
  *          deletion for the @p cl object. If no IP is known NULL is returned.
- * @ingroup Ecore_Con_Client_Group
  */
 EAPI const char *
 ecore_con_client_ip_get(Ecore_Con_Client *cl)
@@ -827,7 +865,6 @@ ecore_con_client_ip_get(Ecore_Con_Client *cl)
  * Flushes all pending data to the given client. Will return when done.
  *
  * @param   cl            The given client.
- * @ingroup Ecore_Con_Client_Group
  */
 EAPI void
 ecore_con_client_flush(Ecore_Con_Client *cl)
@@ -842,6 +879,40 @@ ecore_con_client_flush(Ecore_Con_Client *cl)
 }
 
 /**
+ * @brief Add an ssl certificate for use in ecore_con_client functions.
+ *
+ * Use this function to add a SSL PEM certificate.
+ * Simply specify the cert here to make it available,
+ * then OR the @ref ECORE_CON_LOAD_CERT flag into the @ref ecore_con_server_add
+ * call to use it.  If there is an error loading the certificate upon creating
+ * the connection, an error will be automatically logged.
+ * @param cert_file The path to the certificate.
+ * @param crl_file The path to the CRL file
+ * @param key_file The path to the private key file. If not specified, the private key
+ * from the cert will be loaded.
+ * @return EINA_FALSE if the file cannot be loaded,
+ * otherwise EINA_TRUE.
+ * @note Currently CRL file adding and certificate verification is not implemented,
+ * so specifying it here has no effect.
+ */
+
+EAPI Eina_Bool
+ecore_con_client_ssl_cert_add(const char *cert_file,
+                              const char *crl_file,
+                              const char *key_file)
+{
+
+   if (!eina_str_has_extension(cert_file, "pem"))
+      return EINA_FALSE;
+
+   return ecore_con_ssl_client_cert_add(cert_file, crl_file, key_file);
+}
+
+/**
+ * @}
+ */
+
+/**
  * Do an asynchronous DNS lookup.
  *
  * This function performs a DNS lookup on the hostname specified by @p name, then
@@ -909,62 +980,6 @@ on_error:
    return EINA_FALSE;
 }
 
-/**
- * Add an ssl certificate for use in ecore_con_server functions.
- *
- * Use this function to add a SSL PEM certificate.
- * Simply specify the cert here to make it available,
- * then OR the @ref ECORE_CON_LOAD_CERT flag into the @ref ecore_con_server_connect
- * call to use it.  If there is an error loading the certificate upon creating
- * the connection, an error will be automatically logged.
- * @param cert The path to the certificate.
- * @return EINA_FALSE if the file cannot be loaded,
- * otherwise EINA_TRUE.
- * @note Currently certificate verification is not implemented.
- * @ingroup Ecore_Con_Server_Group
- */
-
-EAPI Eina_Bool
-ecore_con_server_ssl_cert_add(const char *cert)
-{
-
-   if (!eina_str_has_extension(cert, "pem"))
-      return EINA_FALSE;
-
-   return ecore_con_ssl_server_cert_add(cert);
-}
-
-/**
- * @brief Add an ssl certificate for use in ecore_con_client functions.
- *
- * Use this function to add a SSL PEM certificate.
- * Simply specify the cert here to make it available,
- * then OR the @ref ECORE_CON_LOAD_CERT flag into the @ref ecore_con_server_add
- * call to use it.  If there is an error loading the certificate upon creating
- * the connection, an error will be automatically logged.
- * @param cert_file The path to the certificate.
- * @param crl_file The path to the CRL file
- * @param key_file The path to the private key file. If not specified, the private key
- * from the cert will be loaded.
- * @return EINA_FALSE if the file cannot be loaded,
- * otherwise EINA_TRUE.
- * @note Currently CRL file adding and certificate verification is not implemented,
- * so specifying it here has no effect.
- * @ingroup Ecore_Con_Client_Group
- */
-
-EAPI Eina_Bool
-ecore_con_client_ssl_cert_add(const char *cert_file,
-                              const char *crl_file,
-                              const char *key_file)
-{
-
-   if (!eina_str_has_extension(cert_file, "pem"))
-      return EINA_FALSE;
-
-   return ecore_con_ssl_client_cert_add(cert_file, crl_file, key_file);
-}
-
 static void
 _ecore_con_server_free(Ecore_Con_Server *svr)
 {
@@ -1803,7 +1818,8 @@ _ecore_con_svr_udp_handler(void *data, Ecore_Fd_Handler *fd_handler)
                   if (e)
                     {
                        svr->event_count++;
-                       e->client = cl;
+                       /* be explicit here */
+                       e->client = NULL;
                             ecore_event_add(ECORE_CON_EVENT_CLIENT_DEL, e,
                                        _ecore_con_event_client_del_free,
                                        NULL);
@@ -1885,7 +1901,7 @@ _ecore_con_svr_cl_handler(void *data, Ecore_Fd_Handler *fd_handler)
                     {
                        if (!cl->delete_me)
                          {
-/* we lost our client! */
+                            /* we lost our client! */
                             Ecore_Con_Event_Client_Del *e;
 
                             e = calloc(1, sizeof(Ecore_Con_Event_Client_Del));