Skip to content
Snippets Groups Projects
Commit 0b26128d authored by rswindell's avatar rswindell
Browse files

Added support for spy buffer output semaphores in bbs_startup_t.

parent 6d80c6eb
No related branches found
No related tags found
No related merge requests found
......@@ -910,9 +910,13 @@ void output_thread(void* arg)
if(sbbs->cfg.node_num && !(sbbs->sys_status&SS_FILEXFER)) {
/* Spy on the user locally */
if(startup->node_spybuf!=NULL
&& startup->node_spybuf[sbbs->cfg.node_num-1]!=NULL)
&& startup->node_spybuf[sbbs->cfg.node_num-1]!=NULL) {
RingBufWrite(startup->node_spybuf[sbbs->cfg.node_num-1],buf+bufbot,i);
/* Signal spy output semaphore? */
if(startup->node_spysem!=NULL
&& startup->node_spysem[sbbs->cfg.node_num-1]!=NULL)
sem_post(&startup->node_spysem[sbbs->cfg.node_num-1]);
}
/* Spy on the user remotely */
if(spy_socket[sbbs->cfg.node_num-1]!=INVALID_SOCKET)
sendsocket(spy_socket[sbbs->cfg.node_num-1],(char*)buf+bufbot,i);
......@@ -2130,8 +2134,13 @@ void sbbs_t::spymsg(char*msg)
sprintf(str,"\r\n\r\n*** Spy Message ***\r\nNode %d: %s [%s]\r\n*** %s ***\r\n\r\n"
,cfg.node_num,client_name,inet_ntoa(addr),msg);
if(startup->node_spybuf!=NULL
&& startup->node_spybuf[cfg.node_num-1]!=NULL)
&& startup->node_spybuf[cfg.node_num-1]!=NULL) {
RingBufWrite(startup->node_spybuf[cfg.node_num-1],(uchar*)str,strlen(str));
/* Signal spy output semaphore? */
if(startup->node_spysem!=NULL
&& startup->node_spysem[sbbs->cfg.node_num-1]!=NULL)
sem_post(&startup->node_spysem[sbbs->cfg.node_num-1]);
}
if(cfg.node_num && spy_socket[cfg.node_num-1]!=INVALID_SOCKET)
sendsocket(spy_socket[cfg.node_num-1],str,strlen(str));
......
......@@ -44,6 +44,7 @@
#include "client.h"
#include "ringbuf.h"
#include "sbbswrap.h"
typedef struct {
......@@ -63,7 +64,7 @@ typedef struct {
DWORD js_max_bytes;
RingBuf** node_spybuf; // Spy output buffer (each node)
RingBuf** node_inbuf; // User input buffer (each node)
DWORD reserved_dword2;
sem_t* node_spysem; // Spy output semaphore (each node)
DWORD reserved_dword1;
int (*event_log)(char*); // Event log - put string
int (*lputs)(char*); // Log - put string
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment