/* we return 0 even if rmwatch fails, because xmsg_handle_data checks * if our session is still connected, so it'll ignore unneeded events */ static COMMAND(xmsg_disconnect) { if (!session_connected_get(session)) { printq("not_connected", session_name(session)); return -1; } xmsg_timer_change(session, NULL); if (!timer_remove_session(session, "o")) xdebug("old oneshot resume timer removed"); session_status_set(session, EKG_STATUS_NA); if (quiet == -1) protocol_disconnected_emit(session, format_find("xmsg_umount"), EKG_DISCONNECT_NETWORK); else protocol_disconnected_emit(session, NULL, EKG_DISCONNECT_USER); #ifdef HAVE_INOTIFY if (session->priv && inotify_rm_watch(in_fd, (long int) session->priv)) xdebug2(DEBUG_ERROR, "rmwatch failed"); else xdebug("inotify watch removed: %d", (long int) session->priv); #endif /*HAVE_INOTIFY*/ return 0; }
static COMMAND(sniff_command_disconnect) { if (!session_connected_get(session)) { printq("not_connected", session_name(session)); return -1; } protocol_disconnected_emit(session, NULL, EKG_DISCONNECT_USER); if (!GET_DEV(session)) { debug_error("sniff_command_disconnect() not dev?!\n"); return -1; } pcap_close(GET_DEV(session)); session->priv = NULL; return 0; }