diff --git a/lib/gencode.py b/lib/gencode.py index 00bd073..9e66932 100644 --- a/lib/gencode.py +++ b/lib/gencode.py @@ -261,7 +261,7 @@ funcname (SearpcClient *client, ${args}) \ &ret_len); \ if (!fret) { \ g_free (fcall); \ - g_set_error (error, 0, TRANSPORT_ERROR_CODE, TRANSPORT_ERROR); \ + g_set_error (error, DFT_DOMAIN, TRANSPORT_ERROR_CODE, TRANSPORT_ERROR); \ return ${default_value}; \ } \ result = searpc_client_fret__${ret_type} (gtype, fret, ret_len, error); \ @@ -289,7 +289,7 @@ funcname (SearpcClient *client, ${args}) \ &ret_len); \ if (!fret) { \ g_free (fcall); \ - g_set_error (error, 0, TRANSPORT_ERROR_CODE, TRANSPORT_ERROR); \ + g_set_error (error, DFT_DOMAIN, TRANSPORT_ERROR_CODE, TRANSPORT_ERROR); \ return ${default_value}; \ } \ result = searpc_client_fret__${ret_type} (fret, ret_len, error); \ diff --git a/lib/searpc-client.c b/lib/searpc-client.c index 4254466..adfe829 100644 --- a/lib/searpc-client.c +++ b/lib/searpc-client.c @@ -51,7 +51,8 @@ searpc_client_generic_callback (char *retstr, size_t len, gint64 ret64; if (errstr) { - g_set_error (&error, 0, 500, "Transport error: %s", errstr); + g_set_error (&error, DFT_DOMAIN, + 500, "Transport error: %s", errstr); data->callback (NULL, data->cbdata, error); g_error_free (error); } else { @@ -155,7 +156,8 @@ handle_ret_common (char *data, size_t len, JsonParser **parser, *root = json_parser_get_root (*parser); *object = json_node_get_object (*root); if (*object == NULL) { - g_set_error (error, 0, 502, "Invalid data: not a object"); + g_set_error (error, DFT_DOMAIN, + 502, "Invalid data: not a object"); g_object_unref (*parser); *parser = NULL; *root = NULL; @@ -165,7 +167,8 @@ handle_ret_common (char *data, size_t len, JsonParser **parser, if (json_object_has_member (*object, "err_code")) { err_code = json_object_get_int_member (*object, "err_code"); err_msg = json_object_get_string_or_null_member (*object, "err_msg"); - g_set_error (error, 0, err_code, "%s", err_msg); + g_set_error (error, DFT_DOMAIN, + err_code, "%s", err_msg); g_object_unref (*parser); *parser = NULL; *object = NULL; @@ -287,7 +290,7 @@ searpc_client_fret__objlist (GType gtype, char *data, size_t len, GError **error JsonNode *member = json_array_get_element (array, i); GObject *obj = json_gobject_deserialize(gtype, member); if (obj == NULL) { - g_set_error (error, 0, 503, + g_set_error (error, DFT_DOMAIN, 503, "Invalid data: object list contains null"); clean_objlist(ret); g_object_unref (parser); diff --git a/lib/searpc-client.h b/lib/searpc-client.h index de2ac65..36e197f 100644 --- a/lib/searpc-client.h +++ b/lib/searpc-client.h @@ -4,6 +4,10 @@ #include #include +#ifndef DFT_DOMAIN +#define DFT_DOMAIN g_quark_from_string(G_LOG_DOMAIN) +#endif + typedef char *(*TransportCB)(void *arg, const gchar *fcall_str, size_t fcall_len, size_t *ret_len); diff --git a/lib/searpc-server.c b/lib/searpc-server.c index 95d44dc..2a6816a 100644 --- a/lib/searpc-server.c +++ b/lib/searpc-server.c @@ -252,7 +252,7 @@ searpc_server_call_function (const char *svc_name, service = g_hash_table_lookup (service_table, svc_name); if (!service) { g_warning ("[SeaRPC] cannot find service %s.\n", svc_name); - g_set_error (error, 0, 501, "cannot find service %s.", svc_name); + g_set_error (error, DFT_DOMAIN, 501, "cannot find service %s.", svc_name); return NULL; } @@ -271,7 +271,7 @@ searpc_server_call_function (const char *svc_name, FuncItem *fitem = g_hash_table_lookup(service->func_table, fname); if (!fitem) { g_warning ("[SeaRPC] cannot find function %s.\n", fname); - g_set_error (error, 0, 500, "cannot find function %s.", fname); + g_set_error (error, DFT_DOMAIN, 500, "cannot find function %s.", fname); return NULL; } diff --git a/lib/searpc-server.h b/lib/searpc-server.h index bcdf1cf..e8fd45d 100644 --- a/lib/searpc-server.h +++ b/lib/searpc-server.h @@ -3,6 +3,9 @@ #include +#ifndef DFT_DOMAIN +#define DFT_DOMAIN g_quark_from_string(G_LOG_DOMAIN) +#endif struct _JsonArray; typedef gchar* (*SearpcMarshalFunc) (void *func, struct _JsonArray *param_array, diff --git a/lib/searpc-utils.h b/lib/searpc-utils.h index ad9b2bb..388568c 100644 --- a/lib/searpc-utils.h +++ b/lib/searpc-utils.h @@ -3,6 +3,7 @@ #include + inline static const gchar * json_object_get_string_or_null_member (JsonObject *object, const gchar *member_name) { diff --git a/tests/test-searpc.c b/tests/test-searpc.c index 557f26d..491b5b5 100644 --- a/tests/test-searpc.c +++ b/tests/test-searpc.c @@ -4,9 +4,13 @@ #include #include +#define DFT_DOMAIN g_quark_from_string("TEST") + #include "searpc-server.h" #include "searpc-client.h" + + #define MAMAN_TYPE_BAR (maman_bar_get_type ()) #define MAMAN_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAMAN_TYPE_BAR, MamanBar)) #define MAMAN_IS_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAMAN_TYPE_BAR)) @@ -153,7 +157,7 @@ gchar * get_substring (const gchar *orig_str, int sub_len, GError **error) { if (sub_len > strlen(orig_str)) { - g_set_error (error, 0, 100, + g_set_error (error, DFT_DOMAIN, 100, "Substring length larger than the length of origin string"); return NULL; } @@ -227,11 +231,11 @@ get_maman_bar_list (const char *name, int num, GError **error) GObject *obj; if (num < 0) { - g_set_error (error, 0, 100, "num must be positive."); + g_set_error (error, DFT_DOMAIN, 100, "num must be positive."); return NULL; } if (num > 1000) { - g_set_error (error, 0, 100, "num must no larger than 1000."); + g_set_error (error, DFT_DOMAIN, 100, "num must no larger than 1000."); return NULL; }