Wrapper Functions of GDbus
******************************************************************************************/
-static int _parse_error_msg(char *full_err_msg, char **err_name, char **err_msg)
+static int _convert_error_name(const char *err_msg)
{
- char *save_p = NULL, *domain, *_err_name, *_err_msg;
+ int i;
- if (!(domain = strtok_r(full_err_msg, ":", &save_p))) {
- debug_error("get domain failed");
- return -1;
- }
- if (!(_err_name = strtok_r(NULL, ":", &save_p))) {
- debug_error("get err name failed");
- return -1;
- }
- if (!(_err_msg = strtok_r(NULL, ":", &save_p))) {
- debug_error("get err msg failed");
- return -1;
- }
-
- *err_name = _err_name;
- *err_msg = _err_msg;
-
- return 0;
-}
-
-static int _convert_error_name(const char *err_name)
-{
- int i = 0;
-
- debug_error("error name is [%s]", err_name);
+ if (!err_msg)
+ return MM_ERROR_SOUND_INTERNAL;
for (i = 0; i < G_N_ELEMENTS(mm_sound_error_entries); i++) {
- if (!strcmp(mm_sound_error_entries[i].dbus_error_name, err_name))
+ if (strstr(err_msg, mm_sound_error_entries[i].dbus_error_name))
return mm_sound_error_entries[i].error_code;
}
NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err);
if (!dbus_reply || err) {
- char *err_name = NULL, *err_msg = NULL;
debug_error("Method Call '%s.%s' Failed, %s", intf, method, err ? err->message : NULL);
ret = MM_ERROR_SOUND_INTERNAL;
- if (err) {
- if (_parse_error_msg(err->message, &err_name, &err_msg) < 0) {
- debug_error("failed to parse error message");
- g_error_free(err);
- return MM_ERROR_SOUND_INTERNAL;
- }
- ret = _convert_error_name(err_name);
- }
+ if (err)
+ ret = _convert_error_name(err->message);
+
g_error_free(err);
} else {
debug_log("Method Call '%s.%s' Success", intf, method);