From a6a146f8703cb33d36147abcd684c242e7f63418 Mon Sep 17 00:00:00 2001
From: "Rob Swindell (on ChromeOS)" <rob@synchro.net>
Date: Sat, 11 Feb 2023 17:08:30 -0800
Subject: [PATCH] Change qhub_t mode and days to an unsigned 8-bit int

Resolve the QWKnet hub 'days' key in msgs.ini being written as -1
---
 src/sbbs3/scfg/scfgnet.c | 2 +-
 src/sbbs3/scfgdefs.h     | 4 ++--
 src/sbbs3/scfglib1.c     | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/sbbs3/scfg/scfgnet.c b/src/sbbs3/scfg/scfgnet.c
index be79f086e0..630b2931b0 100644
--- a/src/sbbs3/scfg/scfgnet.c
+++ b/src/sbbs3/scfg/scfgnet.c
@@ -54,7 +54,7 @@ bool new_qhub_sub(qhub_t* qhub, unsigned subnum, sub_t* sub, unsigned confnum)
 {
 	if((qhub->sub=realloc(qhub->sub, sizeof(*qhub->sub)*(qhub->subs+1)))==NULL
 		|| (qhub->conf=(ushort *)realloc(qhub->conf, sizeof(*qhub->conf)*(qhub->subs+1)))==NULL
-		|| (qhub->mode=(char *)realloc(qhub->mode, sizeof(*qhub->mode)*(qhub->subs+1)))==NULL) {
+		|| (qhub->mode=(uchar *)realloc(qhub->mode, sizeof(*qhub->mode)*(qhub->subs+1)))==NULL) {
 		/* ToDo: report error */
 		return false;
 	}
diff --git a/src/sbbs3/scfgdefs.h b/src/sbbs3/scfgdefs.h
index 712d27f882..4827d9cd2d 100644
--- a/src/sbbs3/scfgdefs.h
+++ b/src/sbbs3/scfgdefs.h
@@ -320,11 +320,11 @@ typedef struct {							/* Generic Timed Event */
 
 typedef struct {							/* QWK Network Hub */
 	char		id[LEN_QWKID+1],			/* System ID of Hub */
-				*mode,						/* Mode for Ctrl-A codes for ea. sub */
-				days,						/* Days to call-out on */
 				call[LEN_CMD+1],			/* Call-out command line to execute */
 				pack[LEN_CMD+1],			/* Packing command line */
 				unpack[LEN_CMD+1];			/* Unpacking command line */
+	uint8_t		*mode,						/* Mode for Ctrl-A codes for ea. sub */
+				days;						/* Days to call-out on */
 	char		fmt[MAX_FILEEXT_LEN+1]; 	/* Archive format */
 	uint16_t	time,						/* Time to call-out */
 				node,						/* Node to do the call-out */
diff --git a/src/sbbs3/scfglib1.c b/src/sbbs3/scfglib1.c
index 9fbfd3047a..845893b515 100644
--- a/src/sbbs3/scfglib1.c
+++ b/src/sbbs3/scfglib1.c
@@ -531,7 +531,7 @@ BOOL read_msgs_cfg(scfg_t* cfg, char* error, size_t maxerrlen)
 				return allocerr(error, maxerrlen, fname, "qhub sub", sizeof(sub_t)*k);
 			if((cfg->qhub[i]->conf=(ushort *)malloc(sizeof(ushort)*k))==NULL)
 				return allocerr(error, maxerrlen, fname, "qhub conf", sizeof(ushort)*k);
-			if((cfg->qhub[i]->mode=(char *)malloc(sizeof(char)*k))==NULL)
+			if((cfg->qhub[i]->mode=(uchar *)malloc(sizeof(uchar)*k))==NULL)
 				return allocerr(error, maxerrlen, fname, "qhub mode", sizeof(uchar)*k);
 		}
 
-- 
GitLab