--- linkfind.c.dist	Fri Jan 30 13:21:19 2004
+++ linkfind.c	Fri Jan 30 13:45:49 2004
@@ -255,7 +255,7 @@
  * message too. */
 void parse_server_line(int plug,char *servername,char *line_from_server)
 {
-	char *tmp,buff[512];
+	char *tmp,buff[512],linebuf[512];
 	
 	if (wild_match("% 465 *",line_from_server)) {
 		access_denied(servername,"Banned from server","Denied");
@@ -285,6 +285,12 @@
 	} else if (wild_match("% 376 *",line_from_server)) {
 		process_motd((char *)0,servername);
 		return;
+	} else if (wild_match("PING *",line_from_server)) {
+		strcpy(buff,line_from_server);
+		strtok(buff, " ");
+		tmp = strtok(NULL, " ");
+		sprintf(linebuf,"PONG %s\n",tmp);
+		outserv(plug, linebuf);
 	}
 }
 
@@ -393,11 +399,20 @@
 						}
 					}
 				} else if (!strncmp("PING",linebuf,4)) {
+					char outbuf2[512];
+
+					strcpy(buff,linebuf); /* Don't overflow! */
+					strtok(buff, " ");
+					tmp = strtok(NULL, " ");
+					sprintf(outbuf2,"PONG %s\n",tmp);
+					outserv(plug, outbuf2);
+#if 0
 					close(plug);
 					if (tunnels_left > 0) {
 						printf("\n%d tunneling requests timed out",tunnels_left);
 						fflush(stdout);
 					}
+#endif
 				} else if (wild_match("% 465 *",linebuf)) { 
 					printf("Banned from server\n");
 					close(plug);
