1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| void accept_client(t_stck *s, int fd)
{
struct sockaddr_in csin;
unsigned int csin_len;
int cfd;
char *user;
int err;
int accepted;
accepted = accept(fd, (struct sockaddr *)&csin, &csin_len);
err = -1;
cfd = (int)X((void *)&err, (void *)&accepted, "accept");
printf("New client #%d from %s:%d\n", cfd,
inet_ntoa(csin.sin_addr), ntohs(csin.sin_port));
memset(&(s->fds[cfd]), 0, sizeof(t_fd));
if (!(user = getenv("USER")))
user = "user";
strcpy((s->fds[cfd].nickname), user);
(s->fds[cfd]).type = FD_CLIENT;
(s->fds[cfd]).fct_read = client_read;
} |