diff --git a/src/sbbs3/chat.cpp b/src/sbbs3/chat.cpp index 542417e7f13d8cab2ccea77bc120230f27ef3a89..8db216f8471368210f34c25a3fbf5dcc943491db 100644 --- a/src/sbbs3/chat.cpp +++ b/src/sbbs3/chat.cpp @@ -1210,6 +1210,7 @@ void sbbs_t::nodemsg() char tmp[512]; int i,usernumber,done=0; node_t node,savenode; + time_t last=0; if(nodemsg_inside>1) /* nested once only */ return; @@ -1231,26 +1232,29 @@ void sbbs_t::nodemsg() break; if(sys_status&SS_ABORT) break; - getnodedat(cfg.node_num,&thisnode,0); - if(thisnode.misc&(NODE_MSGW|NODE_NMSG)) { - lncntr=0; /* prevent pause prompt */ - SAVELINE; - CRLF; - if(thisnode.misc&NODE_NMSG) - getnmsg(); - if(thisnode.misc&NODE_MSGW) - getsmsg(useron.number); - CRLF; - RESTORELINE; } - else - nodesync(); - gettimeleft(); - checkline(); } + if(last!=now && getnodedat(cfg.node_num,&thisnode,false)==0) { + if(thisnode.misc&(NODE_MSGW|NODE_NMSG)) { + lncntr=0; /* prevent pause prompt */ + SAVELINE; + CRLF; + if(thisnode.misc&NODE_NMSG) + getnmsg(); + if(thisnode.misc&NODE_MSGW) + getsmsg(useron.number); + CRLF; + RESTORELINE; } + else + nodesync(); + last=now; + } + gettimeleft(); // sets 'now' + } if(!online || sys_status&SS_ABORT) { sys_status&=~SS_ABORT; CRLF; - break; } + break; + } switch(toupper(ch)) { case 'T': /* Telegram */