int push_fd(t_fd **fds, int fd, int type, handler_fptr handler) { t_fd *elem; t_fd *ptr; if (!(elem = malloc(sizeof(*elem)))) return (msg_error(EALLOC, 1)); elem->fd = fd; elem->type = type; elem->state = ACTIVE; elem->handler_fptr = handler; if ((type == FD_CLIENT && !(elem->nick = get_default_nick(*fds))) || (type == FD_SERVER && !(elem->nick = strdup("server")))) return (msg_error(EALLOC, 1)); elem->channels = NULL; elem->next = NULL; if (!(*fds)) { *fds = elem; return (EXIT_SUCCESS); } ptr = *fds; while (ptr->next) ptr = ptr->next; ptr->next = elem; return (EXIT_SUCCESS); }
void controller::start_connection(const std::string& hostname) { start_connection(hostname, get_default_nick(), get_default_username(), get_default_fullname(), get_default_port()); }