| version 1.1, 2001/10/03 21:03:41 |
version 1.2, 2002/10/15 22:25:01 |
| Line 45 int main(int argc, char *argv[]) { |
|
| Line 45 int main(int argc, char *argv[]) { |
|
| struct sockaddr_in bind_addr; |
struct sockaddr_in bind_addr; |
| struct client *client_first = NULL; |
struct client *client_first = NULL; |
| char **process; |
char **process; |
| char *fake_argv[] = { |
char *fake_argv[] = { |
| "vim", "parser.h", "parser.c", "config.h", "main.h", "main.c", NULL |
"vim", "parser.h", "parser.c", "config.h", "main.h", "main.c", NULL |
| }; |
}; |
| |
|
| if (argc < 3) { |
if (argc < 3) { |
| fprintf(stderr, "Usage: %s <port> <process> <arg1> ... <argn>\n", |
fprintf(stderr, "Usage: %s <port> <process> <arg1> ... <argn>\n", |
| PROG_NAME); |
PROG_NAME); |
| return 1; |
return 1; |
| } |
} |
| Line 80 int main(int argc, char *argv[]) { |
|
| Line 80 int main(int argc, char *argv[]) { |
|
| { |
{ |
| int argv_size = 0; |
int argv_size = 0; |
| |
|
| for (k = 0; k < argc; k++) |
for (k = 0; k < argc; k++) |
| argv_size += strlen(argv[k]) + 1; |
argv_size += strlen(argv[k]) + 1; |
| |
|
| memset(argv[0], '\0', argv_size); |
memset(argv[0], '\0', argv_size); |
| Line 106 int main(int argc, char *argv[]) { |
|
| Line 106 int main(int argc, char *argv[]) { |
|
| |
|
| /* |
/* |
| (void) setpgrp(); |
(void) setpgrp(); |
| signal(SIGBRK, SIG_IGN); |
signal(SIGBRK, SIG_IGN); |
| */ |
*/ |
| |
|
| listen_sock = socket(AF_INET, SOCK_STREAM, 0); |
listen_sock = socket(AF_INET, SOCK_STREAM, 0); |
| Line 153 int main(int argc, char *argv[]) { |
|
| Line 153 int main(int argc, char *argv[]) { |
|
| struct timeval tv; |
struct timeval tv; |
| |
|
| /* |
/* |
| for (pid = 0, client = client_first; client != NULL; |
for (pid = 0, client = client_first; client != NULL; |
| client = client->next) |
client = client->next) |
| pid++; |
pid++; |
| |
|
| fprintf(stderr, "debug: %d active clients\n", pid); |
fprintf(stderr, "debug: %d active clients\n", pid); |
| Line 180 int main(int argc, char *argv[]) { |
|
| Line 180 int main(int argc, char *argv[]) { |
|
| accept_sock = accept(listen_sock, |
accept_sock = accept(listen_sock, |
| (struct sockaddr*) &acc_addr, &size); |
(struct sockaddr*) &acc_addr, &size); |
| |
|
| if (accept_sock > 0 && |
if (accept_sock > 0 && |
| (client_new = (struct client*) |
(client_new = (struct client*) |
| malloc(sizeof(struct client))) != NULL) { |
malloc(sizeof(struct client))) != NULL) { |
| |
|
| Line 249 int main(int argc, char *argv[]) { |
|
| Line 249 int main(int argc, char *argv[]) { |
|
| } |
} |
| |
|
| /* |
/* |
| * Terminated childs remove stuff. |
* Terminated childs remove stuff. |
| */ |
*/ |
| |
|
| while ((pid = waitpid(-1, NULL, WNOHANG)) > 0) { |
while ((pid = waitpid(-1, NULL, WNOHANG)) > 0) { |
| Line 290 int main(int argc, char *argv[]) { |
|
| Line 290 int main(int argc, char *argv[]) { |
|
| client = client->next; |
client = client->next; |
| } |
} |
| } |
} |
| } |
} |
| |
|
| } /* while (1) */ |
} /* while (1) */ |
| |
|
| return 0; |
return 0; |
| } |
} |
| |
|
| |
|