diff --git a/src/sbbs3/str.cpp b/src/sbbs3/str.cpp index 6c6f4e2424a41cf283790546b241affd9648dd92..839d72df791ee0930d6b58029921a0f707f1bfbd 100644 --- a/src/sbbs3/str.cpp +++ b/src/sbbs3/str.cpp @@ -1077,7 +1077,10 @@ bool sbbs_t::spy(uint i /* node_num */) } bprintf("*** Synchronet Remote Spy on Node %d: Ctrl-C to Abort ***" "\r\n\r\n",i); - spy_socket[i-1]=client_socket; + if(passthru_thread_running) + spy_socket[i-1]=client_socket_dup; + else + spy_socket[i-1]=client_socket; ansi_len=0; while(online && client_socket!=INVALID_SOCKET @@ -1120,7 +1123,7 @@ bool sbbs_t::spy(uint i /* node_num */) lncntr=0; /* defeat pause */ spy_socket[i-1]=INVALID_SOCKET; /* disable spy output */ ch=handle_ctrlkey(ch,K_NONE); - spy_socket[i-1]=client_socket; /* enable spy output */ + spy_socket[i-1] = passthru_thread_running ? client_socket_dup : client_socket; /* enable spy output */ if(ch==0) continue; } @@ -1128,6 +1131,7 @@ bool sbbs_t::spy(uint i /* node_num */) RingBufWrite(node_inbuf[i-1],(uchar*)&ch,1); } spy_socket[i-1]=INVALID_SOCKET; + return(true); }