All pastes #945042 Raw Edit

Untitled

public text v1 · immutable
·published 2008-03-16 17:29 UTC
rendered paste body
  while (1) {
    apprentice = master;
    if (select(maxfd+1, &apprentice, NULL, NULL, NULL) == -1) {
      output(server, "chat_server()~> select(): couldn't execute select call.\n");
      exit(EXIT_FAILURE);
    }
    for (x = 0; x <= maxfd; x++) {
      if (FD_ISSET(&apprentice, x)) {
	if (x == sockfd) {
	  // Woha, new pplz!
	  sock_len = sizeof(remote);
	  if ((newfd = accept(x, (struct sockaddr *)remote, &sock_len)) == -1) {
	    output(server, "chat_server()~> accept(): wasn't able to stablish new connection!.\n");
	    exit(EXIT_FAILURE);
	  }
	  else {
	    FD_SET(newfd, &master);
	    if (newfd > maxfd) maxfd = newfd;
	    output(server, "chat_server()~> Connection: new connection from %s @ FD %i.\n", inet_ntoa(remote.sin_addr), newfd);
	  }
	}
	else {
	  // Handle data recieving, etc etc etc

	}
      }
    }
  }