+ if (relay_client_agent) {
+ obex_session_remove_session(
+ relay_client_agent->session);
+
+ for (list = g_list_first(pending_p_list); list; list = next) {
+ p_file = list->data;
+ next = g_list_next(list);
+
+ if (p_file == NULL)
+ continue;
+
+ if (p_file->path) {
+ transfer_id = obex_get_transfer_id(
+ p_file->path, OBEX_CLIENT);
+ send_pushstatus(relay_client_agent->address,
+ p_file->file_name, 0, transfer_id,
+ OBEX_TRANSFER_CANCELED, 0,
+ relay_client_agent->pid);
+ obex_transfer_clear_notify(p_file->path);
+ }
+ free_pending_files(p_file);
+ }
+
+ free_relay_agent(relay_client_agent);
+ relay_client_agent = NULL;
+ }
+
+ if (g_list_length(agent_list) > 0) {
+ list = g_list_first(agent_list);
+ relay_client_agent = list->data;
+ agent_list = g_list_remove(agent_list, relay_client_agent);
+ obex_create_session(relay_client_agent->address,
+ OBEX_OPP, session_state_cb, NULL);
+ }