diff --git a/src/sbbs3/xtrn.cpp b/src/sbbs3/xtrn.cpp index e8a30cea71b6801f8b03bf5d7cb98d27691d086e..d70af16f81907bd6829eb89a72feaaec4c3d2ad2 100644 --- a/src/sbbs3/xtrn.cpp +++ b/src/sbbs3/xtrn.cpp @@ -837,12 +837,10 @@ int sbbs_t::external(const char* cmdline, long mode, const char* startup_dir) ,OPEN_EXISTING ,FILE_ATTRIBUTE_NORMAL ,(HANDLE) NULL); -#if 0 - if(wrslot==INVALID_HANDLE_VALUE) { - errormsg(WHERE,ERR_OPEN,str,0); - break; - } -#endif + if(wrslot==INVALID_HANDLE_VALUE) + lprintf(LOG_DEBUG,"Node %d !ERROR %u opening %s", cfg.node_num, GetLastError(), str); + else + lprintf(LOG_DEBUG,"Node %d CreateFile(%s)=0x%x", cfg.node_num, str, wrslot); } /* CR expansion */ @@ -851,16 +849,25 @@ int sbbs_t::external(const char* cmdline, long mode, const char* startup_dir) else bp=buf; - if(wrslot!=INVALID_HANDLE_VALUE - && WriteFile(wrslot,bp,wr,&len,NULL)==TRUE) { + len=0; + if(wrslot==INVALID_HANDLE_VALUE) + lprintf(LOG_WARNING,"Node %d VDD Open failed (not loaded yet?)",cfg.node_num); + else if(!WriteFile(wrslot,bp,wr,&len,NULL)) { + lprintf(LOG_ERR,"Node %d !VDD WriteFile(0x%x, %u) FAILURE (Error=%u)", cfg.node_num, wrslot, wr, GetLastError()); + if(GetMailslotInfo(wrslot,&wr,NULL,NULL,NULL)) + lprintf(LOG_DEBUG,"Node %d !VDD MailSlot max_msg_size=%u", cfg.node_num, wr); + else + lprintf(LOG_DEBUG,"Node %d !GetMailslotInfo(0x%x)=%u", cfg.node_num, wrslot, GetLastError()); + } else { + if(len!=wr) + lprintf(LOG_WARNING,"Node %d VDD short write (%u instead of %u)",cfg.node_num,len,wr); RingBufRead(&inbuf, NULL, len); - wr=len; if(use_pipes && !(mode&EX_NOECHO)) { /* echo */ - RingBufWrite(&outbuf, bp, wr); + RingBufWrite(&outbuf, bp, len); } - } else // VDD not loaded yet - wr=0; + } + wr=len; } /* Read from VDD */