From df4dad66501a85e6f53c00aa508ab11d4a93364c Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 23 Jan 2002 03:26:52 +0000
Subject: [PATCH] external() creates correct door32.sys for Win32 stdio doors
 (are there any?). Fixed %h command-line specifier for Unix builds.

---
 src/sbbs3/xtrn.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/sbbs3/xtrn.cpp b/src/sbbs3/xtrn.cpp
index 0b10473be8..20a45e3b5e 100644
--- a/src/sbbs3/xtrn.cpp
+++ b/src/sbbs3/xtrn.cpp
@@ -490,9 +490,10 @@ int sbbs_t::external(char* cmdline, long mode, char* startup_dir)
 		FILE* fp;
 		sprintf(fname,"%sDOOR32.SYS",cfg.node_dir);
 		fp=fopen(fname,"wb");
-		fprintf(fp,"2\r\n%d\r\n38400\r\n%s%c\r\n%d\r\n%s\r\n%s\r\n%d\r\n%d\r\n"
+		fprintf(fp,"%d\r\n%d\r\n38400\r\n%s%c\r\n%d\r\n%s\r\n%s\r\n%d\r\n%d\r\n"
 			"%d\r\n%d\r\n"
-			,client_socket_dup
+			,mode&EX_OUTR ? 0 /* Local */ : 2 /* Telnet */
+			,mode&EX_OUTR ? INVALID_SOCKET : client_socket_dup
 			,VERSION_NOTICE,REVISION
 			,useron.number
 			,useron.name
@@ -1118,7 +1119,11 @@ char * sbbs_t::cmdstr(char *instr, char *fpath, char *fspec, char *outstr)
                     strcat(cmd,cfg.temp_dir);
                     break;
                 case 'H':   /* Port Handle or Hardware Flow Control */
+#if defined(__unix__)
+					strcat(cmd,ultoa(client_socket,str,10));
+#else
                     strcat(cmd,ultoa(client_socket_dup,str,10));
+#endif
                     break;
                 case 'I':   /* UART IRQ Line */
                     strcat(cmd,ultoa(cfg.com_irq,str,10));
-- 
GitLab