From fdb9d46f888c300ea221fdaae8f311297c2fbedb Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Thu, 15 May 2003 06:15:53 +0000
Subject: [PATCH] CTRL-S spys on the current node.

---
 src/sbbs3/umonitor/umonitor.c | 90 +++++++++++++++++++++--------------
 1 file changed, 55 insertions(+), 35 deletions(-)

diff --git a/src/sbbs3/umonitor/umonitor.c b/src/sbbs3/umonitor/umonitor.c
index 69e8d4963c..c457fe6835 100644
--- a/src/sbbs3/umonitor/umonitor.c
+++ b/src/sbbs3/umonitor/umonitor.c
@@ -425,6 +425,54 @@ void node_toggles(int nodenum)  {
 	}
 }
 
+int chat(int nodenum) {
+	return(-1);
+}
+
+int dospy(int nodenum, bbs_startup_t *bbs_startup)  {
+	char str[80],str2[80];
+	int i;
+
+	if(bbs_startup->temp_dir[0])
+    	snprintf(str,sizeof(str),"%slocalspy%d.sock", bbs_startup->temp_dir, nodenum);
+	else
+		snprintf(str,sizeof(str),"%slocalspy%d.sock", bbs_startup->ctrl_dir, nodenum);
+	endwin();
+	i=spyon(str);
+	refresh();
+	switch(i) {
+		case SPY_NOSOCKET:
+			uifc.msg("Could not create socket");
+			return(-1);
+					
+		case SPY_NOCONNECT:
+			sprintf(str2,"Failed to connect to %s",str);
+			uifc.msg(str2);
+			return(-1);
+
+		case SPY_SELECTFAILED:
+			uifc.msg("select() failed, connection terminated.");
+			return(-1);
+
+		case SPY_SOCKETLOST:
+			uifc.msg("Spy socket lost");
+			return(-1);
+							
+		case SPY_STDINLOST:
+			uifc.msg("STDIN has gone away... you probably can't close this window.  :-)");
+			return(-1);
+							
+		case SPY_CLOSED:
+			break;
+			
+		default:
+			sprintf(str,"Unknown return code %d",i);
+			uifc.msg(str);
+			return(-1);
+	}
+	return(0);
+}
+
 int main(int argc, char** argv)  {
 	char**	opt;
 	char**	mopt;
@@ -629,6 +677,7 @@ int main(int argc, char** argv)  {
 
 		uifc.helpbuf=	"`Synchronet Monitor:`\n"
 						"\nCTRL-E displays the error log"
+						"\nCTRL-S spys on the currently selected node"
 						"\nToDo: Add more help.";
 						
 		j=uifc.list(WIN_ORG|WIN_MID|WIN_ESC|WIN_ACT|WIN_DYN,0,0,70,&main_dflt,&main_bar
@@ -658,6 +707,11 @@ int main(int argc, char** argv)  {
 			}
 			continue;
 		}
+		
+		if(j==-21) {	/* CTRL-S */
+			dospy(main_dflt+1,&bbs_startup);
+		}
+		
 
 		if(j <= -2)
 			continue;
@@ -692,41 +746,7 @@ int main(int argc, char** argv)  {
 							"\nToDo: Add help";
 			switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&i,0,"Node Options",opt))  {
 				case 0:	/* Spy */
-					if(bbs_startup.temp_dir[0])
-		    			snprintf(str,sizeof(str),"%slocalspy%d.sock", bbs_startup.temp_dir, j+1);
-					else
-		    			snprintf(str,sizeof(str),"%slocalspy%d.sock", bbs_startup.temp_dir, j+1);
-					endwin();
-					i=spyon(str);
-					refresh();
-					switch(i) {
-						case SPY_NOSOCKET:
-							uifc.msg("Could not create socket");
-							break;
-							
-						case SPY_NOCONNECT:
-							sprintf(str2,"Failed to connect to %s",str);
-							uifc.msg(str2);
-							break;
-
-						case SPY_SELECTFAILED:
-							uifc.msg("select() failed, connection terminated.");
-
-						case SPY_SOCKETLOST:
-							uifc.msg("Spy socket lost");
-							break;
-							
-						case SPY_STDINLOST:
-							uifc.msg("STDIN has gone away... you probably can't close this window.  :-)");
-							break;
-							
-						case SPY_CLOSED:
-							break;
-							
-						default:
-							sprintf(str,"Unknown return code %d",i);
-							uifc.msg(str);
-					}
+					dospy(j+1,&bbs_startup);
 					break;
 
 				case 1: /* Node Toggles */
-- 
GitLab