mirror of
https://github.com/haiwen/libsearpc.git
synced 2025-09-04 22:30:54 +00:00
Fix a bug for glib-2.32.1
doamin passed to g_set_error must not be 0
This commit is contained in:
@@ -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); \
|
||||
|
@@ -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);
|
||||
|
@@ -4,6 +4,10 @@
|
||||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
|
||||
#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);
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -3,6 +3,9 @@
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
#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,
|
||||
|
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <json-glib/json-glib.h>
|
||||
|
||||
|
||||
inline static const gchar *
|
||||
json_object_get_string_or_null_member (JsonObject *object, const gchar *member_name)
|
||||
{
|
||||
|
@@ -4,9 +4,13 @@
|
||||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
|
||||
#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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user