static int _kick_client(FdNode* node) { VhostClient* vhost_client = (VhostClient*) node->context; int kickfd = node->fd; ssize_t r; uint64_t kick_it = 0; r = read(kickfd, &kick_it, sizeof(kick_it)); if (r < 0) { perror("recv kick"); } else if (r == 0) { fprintf(stdout, "Kick fd closed\n"); del_fd_list(&vhost_client->client->fd_list, FD_READ, kickfd); } else { int idx = VHOST_CLIENT_VRING_IDX_RX; #if 0 fprintf(stdout, "Got kick %ld\n", kick_it); #endif process_avail_vring(&vhost_client->vring_table, idx); } return 0; }
int my_close(int fd, int iline, char *pcfile) { int r; r = save_close(fd); if (r == 0) del_fd_list(&g_pfdheader, fd, iline, pcfile); return r; }