From 4ce7444dd117867d2a2d955c5652bb3cc2ab20ca Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Tue, 24 Sep 2019 15:52:34 +0200 Subject: [PATCH] efl: use new eolian error functionality instead of globals Also enable referencing errors in docs. --- src/lib/ecore_con/ecore_con.c | 19 +++++++------------ src/lib/ecore_con/efl_net_dialer.eo | 6 +++--- src/lib/ecore_con/efl_net_socket_ssl.eo | 4 ++-- src/lib/eolian/eolian_database.c | 1 + 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 75f083ac9f..5cf7bc18cf 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -59,13 +59,6 @@ int sd_fd_max = 0; EWAPI Eina_Error EFL_NET_ERROR_COULDNT_RESOLVE_HOST = 0; -EWAPI Eina_Error EFL_NET_DIALER_ERROR_COULDNT_CONNECT = 0; -EWAPI Eina_Error EFL_NET_DIALER_ERROR_COULDNT_RESOLVE_PROXY = 0; -EWAPI Eina_Error EFL_NET_DIALER_ERROR_PROXY_AUTHENTICATION_FAILED = 0; - -EWAPI Eina_Error EFL_NET_SOCKET_SSL_ERROR_HANDSHAKE = 0; -EWAPI Eina_Error EFL_NET_SOCKET_SSL_ERROR_CERTIFICATE_VERIFY_FAILED = 0; - static int _ecore_con_init_count = 0; int _ecore_con_log_dom = -1; @@ -104,12 +97,14 @@ ecore_con_init(void) EFL_NET_ERROR_COULDNT_RESOLVE_HOST = eina_error_msg_static_register("Couldn't resolve host name"); - EFL_NET_DIALER_ERROR_COULDNT_CONNECT = eina_error_msg_static_register("Couldn't connect to server"); - EFL_NET_DIALER_ERROR_COULDNT_RESOLVE_PROXY = eina_error_msg_static_register("Couldn't resolve proxy name"); - EFL_NET_DIALER_ERROR_PROXY_AUTHENTICATION_FAILED = eina_error_msg_static_register("Proxy authentication failed"); + /* initialize the .eo file errors once to guarantee thread safety */ - EFL_NET_SOCKET_SSL_ERROR_HANDSHAKE = eina_error_msg_static_register("Failed SSL handshake"); - EFL_NET_SOCKET_SSL_ERROR_CERTIFICATE_VERIFY_FAILED = eina_error_msg_static_register("Failed to verify peer's certificate"); + EFL_NET_DIALER_ERROR_COULDNT_CONNECT; + EFL_NET_DIALER_ERROR_COULDNT_RESOLVE_PROXY; + EFL_NET_DIALER_ERROR_PROXY_AUTHENTICATION_FAILED; + + EFL_NET_SOCKET_SSL_ERROR_HANDSHAKE; + EFL_NET_SOCKET_SSL_ERROR_CERTIFICATE_VERIFY_FAILED; #ifdef HAVE_SYSTEMD sd_fd_max = sd_listen_fds(0); diff --git a/src/lib/ecore_con/efl_net_dialer.eo b/src/lib/ecore_con/efl_net_dialer.eo index 8570e6538e..6ba5656c2b 100644 --- a/src/lib/ecore_con/efl_net_dialer.eo +++ b/src/lib/ecore_con/efl_net_dialer.eo @@ -1,6 +1,6 @@ -var @beta Efl.Net.Dialer_Error.COULDNT_CONNECT: Eina.Error; [[The dialer could not connect to the remote]] -var @beta Efl.Net.Dialer_Error.COULDNT_RESOLVE_PROXY: Eina.Error; [[The dialer could not resolve the given proxy server]] -var @beta Efl.Net.Dialer_Error.PROXY_AUTHENTICATION_FAILED: Eina.Error; [[The dialer failed to authenticate against the proxy server]] +error @beta Efl.Net.Dialer_Error.COULDNT_CONNECT = "Couldn't connect to server"; [[The dialer could not connect to the remote]] +error @beta Efl.Net.Dialer_Error.COULDNT_RESOLVE_PROXY = "Couldn't resolve proxy name"; [[The dialer could not resolve the given proxy server]] +error @beta Efl.Net.Dialer_Error.PROXY_AUTHENTICATION_FAILED = "Proxy authentication failed"; [[The dialer failed to authenticate against the proxy server]] interface @beta Efl.Net.Dialer extends Efl.Net.Socket { [[Creates a client socket to reach a remote peer. diff --git a/src/lib/ecore_con/efl_net_socket_ssl.eo b/src/lib/ecore_con/efl_net_socket_ssl.eo index 7bf9b4cba7..60a1fbb1ec 100644 --- a/src/lib/ecore_con/efl_net_socket_ssl.eo +++ b/src/lib/ecore_con/efl_net_socket_ssl.eo @@ -1,5 +1,5 @@ -var @beta Efl.Net.Socket_Ssl_Error.HANDSHAKE: Eina.Error; [[Failed SSL handshake]] -var @beta Efl.Net.Socket_Ssl_Error.CERTIFICATE_VERIFY_FAILED: Eina.Error; [[Failed to verify peer's certificate]] +error @beta Efl.Net.Socket_Ssl_Error.HANDSHAKE = "Failed SSL handshake"; [[Failed SSL handshake]] +error @beta Efl.Net.Socket_Ssl_Error.CERTIFICATE_VERIFY_FAILED = "Failed to verify peer's certificate"; [[Failed to verify peer's certificate]] class @beta Efl.Net.Socket_Ssl extends Efl.Loop_Consumer implements Efl.Net.Socket { [[A wrapper socket doing SSL (Secure Sockets Layer). diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 9aa6b8f87b..cef722dd95 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -492,6 +492,7 @@ database_doc_token_ref_resolve(const Eolian_Doc_Token *tok, case EOLIAN_OBJECT_CLASS: case EOLIAN_OBJECT_TYPEDECL: case EOLIAN_OBJECT_VARIABLE: + case EOLIAN_OBJECT_ERROR: /* we only allow certain types to be referenced */ return tp; default: