int main(int argc, char **argv) { t_server *s; int port; char path[4096]; getcwd(path, 4096); if (argc >= 2) port = atoi(argv[1]); else port = 4242; s = xmalloc(sizeof(*s)); init_socket(s); bind_socket(s, port); xlisten(s->listener, 10); FD_SET(s->listener, &(s->master)); s->fdmax = s->listener; s->home = path; loop_server(s, argv); return (0); }
int create_server(char *port) { t_addrinfo hints; t_addrinfo *res; t_protoent *proto; int sock; if (!(proto = getprotobyname("tcp"))) return (-1); ft_memset((void *)&hints, 0, sizeof(hints)); hints.ai_flags = AI_PASSIVE; hints.ai_family = AF_INET6; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = proto->p_proto; if (getaddrinfo(NULL, port, &hints, &res) != 0) return (-1); sock = loop_server(res); if (sock != -1) return (sock); printf("Bind error\n"); return (-1); }