So I moved to a new server and accept() seems to freeze on me.
Here is the MUD when it is frozen:
I can return out of that using gdb... but other than that I have no idea how to fix it.
Here is the MUD when it is frozen:
#0 0xb7fe57f2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1 0xb7ddfec1 in accept () from /lib/libc.so.6
#2 0x081f847e in handle_web () at web-server.c:172
#3 0x080e12d0 in game_loop () at comm.c:1183
#4 0x080e04fe in main (argc=2, argv=0xbfca4f64) at comm.c:626
#2 0x081f847e in handle_web () at web-server.c:172
172 if((current->fd = accept(sockfd, (struct sockaddr *)&(current->their_addr), &(current->sin_size))) == -1) {
(gdb) list
167 of code .. no. --GW */
168 CREATE( current, WEB_DESCRIPTOR, 1 );
169 current->sin_size = sizeof(struct sockaddr_in);
170 current->request[0] = '\0';
171
172 if((current->fd = accept(sockfd, (struct sockaddr *)&(current->their_addr), &(current->sin_size))) == -1) {
173 perror("web-accept");
174 exit(1);
175 }
176
I can return out of that using gdb... but other than that I have no idea how to fix it.