mirror of
https://github.com/haiwen/libsearpc.git
synced 2025-09-06 23:30:35 +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); \
|
&ret_len); \
|
||||||
if (!fret) { \
|
if (!fret) { \
|
||||||
g_free (fcall); \
|
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}; \
|
return ${default_value}; \
|
||||||
} \
|
} \
|
||||||
result = searpc_client_fret__${ret_type} (gtype, fret, ret_len, error); \
|
result = searpc_client_fret__${ret_type} (gtype, fret, ret_len, error); \
|
||||||
@@ -289,7 +289,7 @@ funcname (SearpcClient *client, ${args}) \
|
|||||||
&ret_len); \
|
&ret_len); \
|
||||||
if (!fret) { \
|
if (!fret) { \
|
||||||
g_free (fcall); \
|
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}; \
|
return ${default_value}; \
|
||||||
} \
|
} \
|
||||||
result = searpc_client_fret__${ret_type} (fret, ret_len, error); \
|
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;
|
gint64 ret64;
|
||||||
|
|
||||||
if (errstr) {
|
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);
|
data->callback (NULL, data->cbdata, error);
|
||||||
g_error_free (error);
|
g_error_free (error);
|
||||||
} else {
|
} else {
|
||||||
@@ -155,7 +156,8 @@ handle_ret_common (char *data, size_t len, JsonParser **parser,
|
|||||||
*root = json_parser_get_root (*parser);
|
*root = json_parser_get_root (*parser);
|
||||||
*object = json_node_get_object (*root);
|
*object = json_node_get_object (*root);
|
||||||
if (*object == NULL) {
|
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);
|
g_object_unref (*parser);
|
||||||
*parser = NULL;
|
*parser = NULL;
|
||||||
*root = 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")) {
|
if (json_object_has_member (*object, "err_code")) {
|
||||||
err_code = json_object_get_int_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");
|
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);
|
g_object_unref (*parser);
|
||||||
*parser = NULL;
|
*parser = NULL;
|
||||||
*object = 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);
|
JsonNode *member = json_array_get_element (array, i);
|
||||||
GObject *obj = json_gobject_deserialize(gtype, member);
|
GObject *obj = json_gobject_deserialize(gtype, member);
|
||||||
if (obj == NULL) {
|
if (obj == NULL) {
|
||||||
g_set_error (error, 0, 503,
|
g_set_error (error, DFT_DOMAIN, 503,
|
||||||
"Invalid data: object list contains null");
|
"Invalid data: object list contains null");
|
||||||
clean_objlist(ret);
|
clean_objlist(ret);
|
||||||
g_object_unref (parser);
|
g_object_unref (parser);
|
||||||
|
@@ -4,6 +4,10 @@
|
|||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include <glib-object.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,
|
typedef char *(*TransportCB)(void *arg, const gchar *fcall_str,
|
||||||
size_t fcall_len, size_t *ret_len);
|
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);
|
service = g_hash_table_lookup (service_table, svc_name);
|
||||||
if (!service) {
|
if (!service) {
|
||||||
g_warning ("[SeaRPC] cannot find service %s.\n", svc_name);
|
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;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -271,7 +271,7 @@ searpc_server_call_function (const char *svc_name,
|
|||||||
FuncItem *fitem = g_hash_table_lookup(service->func_table, fname);
|
FuncItem *fitem = g_hash_table_lookup(service->func_table, fname);
|
||||||
if (!fitem) {
|
if (!fitem) {
|
||||||
g_warning ("[SeaRPC] cannot find function %s.\n", fname);
|
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;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -3,6 +3,9 @@
|
|||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
|
||||||
|
#ifndef DFT_DOMAIN
|
||||||
|
#define DFT_DOMAIN g_quark_from_string(G_LOG_DOMAIN)
|
||||||
|
#endif
|
||||||
|
|
||||||
struct _JsonArray;
|
struct _JsonArray;
|
||||||
typedef gchar* (*SearpcMarshalFunc) (void *func, struct _JsonArray *param_array,
|
typedef gchar* (*SearpcMarshalFunc) (void *func, struct _JsonArray *param_array,
|
||||||
|
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include <json-glib/json-glib.h>
|
#include <json-glib/json-glib.h>
|
||||||
|
|
||||||
|
|
||||||
inline static const gchar *
|
inline static const gchar *
|
||||||
json_object_get_string_or_null_member (JsonObject *object, const gchar *member_name)
|
json_object_get_string_or_null_member (JsonObject *object, const gchar *member_name)
|
||||||
{
|
{
|
||||||
|
@@ -4,9 +4,13 @@
|
|||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include <glib-object.h>
|
#include <glib-object.h>
|
||||||
|
|
||||||
|
#define DFT_DOMAIN g_quark_from_string("TEST")
|
||||||
|
|
||||||
#include "searpc-server.h"
|
#include "searpc-server.h"
|
||||||
#include "searpc-client.h"
|
#include "searpc-client.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define MAMAN_TYPE_BAR (maman_bar_get_type ())
|
#define MAMAN_TYPE_BAR (maman_bar_get_type ())
|
||||||
#define MAMAN_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAMAN_TYPE_BAR, MamanBar))
|
#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))
|
#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)
|
get_substring (const gchar *orig_str, int sub_len, GError **error)
|
||||||
{
|
{
|
||||||
if (sub_len > strlen(orig_str)) {
|
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");
|
"Substring length larger than the length of origin string");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -227,11 +231,11 @@ get_maman_bar_list (const char *name, int num, GError **error)
|
|||||||
GObject *obj;
|
GObject *obj;
|
||||||
|
|
||||||
if (num < 0) {
|
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;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (num > 1000) {
|
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;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user