static void session_notify_complete(struct obc_session *session, struct obc_transfer *transfer) { DBG("Transfer(%p) complete", transfer); session_terminate_transfer(session, transfer, NULL); }
static void session_notify_complete(struct session_data *session, struct transfer_data *transfer) { struct agent_data *agent = session->agent; DBusMessage *message; if (agent == NULL || transfer->path == NULL) goto done; message = dbus_message_new_method_call(agent->name, agent->path, AGENT_INTERFACE, "Complete"); if (message == NULL) return; dbus_message_set_no_reply(message, TRUE); dbus_message_append_args(message, DBUS_TYPE_OBJECT_PATH, &transfer->path, DBUS_TYPE_INVALID); g_dbus_send_message(session->conn, message); done: DBG("Transfer(%p) complete", transfer); session_terminate_transfer(session, transfer, NULL); }
static void session_notify_error(struct obc_session *session, struct obc_transfer *transfer, GError *err) { error("Transfer(%p) Error: %s", transfer, err->message); session_terminate_transfer(session, transfer, err); }
static void session_request_reply(DBusPendingCall *call, gpointer user_data) { struct session_data *session = user_data; struct agent_data *agent = session->agent; struct pending_data *pending = agent->pending; DBusMessage *reply = dbus_pending_call_steal_reply(call); const char *name; DBusError derr; dbus_error_init(&derr); if (dbus_set_error_from_message(&derr, reply)) { GError *gerr = NULL; error("Replied with an error: %s, %s", derr.name, derr.message); dbus_error_free(&derr); dbus_message_unref(reply); g_set_error(&gerr, OBEX_IO_ERROR, -ECANCELED, "%s", derr.message); session_terminate_transfer(session, pending->transfer, gerr); g_clear_error(&gerr); return; } dbus_message_get_args(reply, NULL, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID); DBG("Agent.Request() reply: %s", name); if (strlen(name)) { g_free(pending->transfer->name); pending->transfer->name = g_strdup(name); } agent->pending = NULL; pending->cb(session, NULL, pending->transfer); dbus_message_unref(reply); free_pending(pending); return; }
static void session_notify_error(struct obc_session *session, struct obc_transfer *transfer, GError *err) { struct obc_agent *agent = session->agent; const char *path; path = obc_transfer_get_path(transfer); if (agent == NULL || path == NULL) goto done; obc_agent_notify_error(agent, path, err->message); done: error("Transfer(%p) Error: %s", transfer, err->message); session_terminate_transfer(session, transfer, err); }
static void session_notify_complete(struct obc_session *session, struct obc_transfer *transfer) { struct obc_agent *agent = session->agent; const char *path; path = obc_transfer_get_path(transfer); if (agent == NULL || path == NULL) goto done; obc_agent_notify_complete(agent, path); done: DBG("Transfer(%p) complete", transfer); session_terminate_transfer(session, transfer, NULL); }
static void session_notify_error(struct session_data *session, struct transfer_data *transfer, GError *err) { struct agent_data *agent = session->agent; DBusMessage *message; if (session->msg) { DBusMessage *reply; reply = g_dbus_create_error(session->msg, "org.openobex.Error.Failed", "%s", err->message); g_dbus_send_message(session->conn, reply); dbus_message_unref(session->msg); session->msg = NULL; } if (agent == NULL || transfer->path == NULL) goto done; message = dbus_message_new_method_call(agent->name, agent->path, AGENT_INTERFACE, "Error"); if (message == NULL) return; dbus_message_set_no_reply(message, TRUE); dbus_message_append_args(message, DBUS_TYPE_OBJECT_PATH, &transfer->path, DBUS_TYPE_STRING, &err->message, DBUS_TYPE_INVALID); g_dbus_send_message(session->conn, message); done: error("Transfer(%p) Error: %s", transfer, err->message); session_terminate_transfer(session, transfer, err); }