- if (ioctl(new_sock, FIONBIO, (unsigned char *)(&on)) >= 0) {
-//#warning
-// PERROR("DEBUG incoming socket %d, serial=%d\n", new_sock, sockserial);
- memuse++;
- fhuse++;
- admin->sockserial = sockserial++;
- admin->next = admin_first;
- admin_first = admin;
- admin->sock = new_sock;
- } else {
- close(new_sock);
- FREE(admin, sizeof(struct admin_list));
- }
+ memuse++;
+ fhuse++;
+ admin->sockserial = sockserial++;
+ admin->next = admin_first;
+ admin_first = admin;
+ admin->sock = new_sock;
+ admin->fd.fd = new_sock;
+ register_fd(&admin->fd, LCR_FD_READ | LCR_FD_EXCEPT, admin_handle_con, admin, 0);