From 9dc81113efef49f6bf30ea400f202fb71b96a236 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sat, 10 Nov 2001 04:30:56 +0000
Subject: [PATCH] Now sends errors to stderr instead of stdout.

---
 src/sbbs3/smbutil.c | 116 ++++++++++++++++++++++----------------------
 1 file changed, 58 insertions(+), 58 deletions(-)

diff --git a/src/sbbs3/smbutil.c b/src/sbbs3/smbutil.c
index 8fc0ab7c6b..a69d73403c 100644
--- a/src/sbbs3/smbutil.c
+++ b/src/sbbs3/smbutil.c
@@ -187,7 +187,7 @@ void postmsg(char type, char* to, char* to_number, char* to_address,
 		if(i<1)
 			break;
 		if((msgtxt=(char*)realloc(msgtxt,msgtxtlen+i))==NULL) {
-			printf("\n\7malloc(%ld) failure\n",msgtxtlen+i);
+			fprintf(stderr,"\n\7malloc(%ld) failure\n",msgtxtlen+i);
 			exit(1);
 		}
 		memcpy(msgtxt+msgtxtlen,buf,i);
@@ -199,7 +199,7 @@ void postmsg(char type, char* to, char* to_number, char* to_address,
 	if(!(smb.status.attr&SMB_HYPERALLOC)) {
 		i=smb_open_da(&smb);
 		if(i) {
-			printf("\n\7!smb_open_da returned %d: %s\n",i,smb.last_error);
+			fprintf(stderr,"\n\7!smb_open_da returned %d: %s\n",i,smb.last_error);
 			exit(1); 
 		}
 		offset=smb_allocdat(&smb,length,1);
@@ -229,7 +229,7 @@ void postmsg(char type, char* to, char* to_number, char* to_address,
 		crc=~crc;
 		i=smb_addcrc(&smb,crc);
 		if(i) {
-			printf("\n\7!smb_addcrc returned %d: %s\n",i,smb.last_error);
+			fprintf(stderr,"\n\7!smb_addcrc returned %d: %s\n",i,smb.last_error);
 			smb_freemsgdat(&smb,offset,length,1);
 			exit(1); 
 		} 
@@ -246,7 +246,7 @@ void postmsg(char type, char* to, char* to_number, char* to_address,
 	truncsp(str);
 	i=smb_hfield(&msg,RECIPIENT,(ushort)strlen(str),str);
 	if(i) {
-		printf("\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
 		smb_freemsgdat(&smb,offset,length,1);
 		exit(1); }
 	if(type=='E' || type=='N')
@@ -260,7 +260,7 @@ void postmsg(char type, char* to, char* to_number, char* to_address,
 		truncsp(str);
 		i=smb_hfield(&msg,RECIPIENTEXT,(ushort)strlen(str),str);
 		if(i) {
-			printf("\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
+			fprintf(stderr,"\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
 			smb_freemsgdat(&smb,offset,length,1);
 			exit(1); 
 		}
@@ -284,12 +284,12 @@ void postmsg(char type, char* to, char* to_number, char* to_address,
 				net=NET_QWK;
 			i=smb_hfield(&msg,RECIPIENTNETTYPE,sizeof(net),&net);
 			if(i) {
-				printf("\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
+				fprintf(stderr,"\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
 				smb_freemsgdat(&smb,offset,length,1);
 				exit(1); }
 			i=smb_hfield(&msg,RECIPIENTNETADDR,(ushort)strlen(str),str);
 			if(i) {
-				printf("\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
+				fprintf(stderr,"\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
 				smb_freemsgdat(&smb,offset,length,1);
 				exit(1); 
 			} 
@@ -304,7 +304,7 @@ void postmsg(char type, char* to, char* to_number, char* to_address,
 	truncsp(str);
 	i=smb_hfield(&msg,SENDER,(ushort)strlen(str),str);
 	if(i) {
-		printf("\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
 		smb_freemsgdat(&smb,offset,length,1);
 		exit(1); }
 	if(smb.status.attr&SMB_EMAIL) {
@@ -316,7 +316,7 @@ void postmsg(char type, char* to, char* to_number, char* to_address,
 		truncsp(str);
 		i=smb_hfield(&msg,SENDEREXT,(ushort)strlen(str),str);
 		if(i) {
-			printf("\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
+			fprintf(stderr,"\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
 			smb_freemsgdat(&smb,offset,length,1);
 			exit(1); 
 		}
@@ -334,7 +334,7 @@ void postmsg(char type, char* to, char* to_number, char* to_address,
 	truncsp(str);
 	i=smb_hfield(&msg,SUBJECT,(ushort)strlen(str),str);
 	if(i) {
-		printf("\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_hfield returned %d: %s\n",i,smb.last_error);
 		smb_freemsgdat(&smb,offset,length,1);
 		exit(1); 
 	}
@@ -344,14 +344,14 @@ void postmsg(char type, char* to, char* to_number, char* to_address,
 
 	i=smb_dfield(&msg,TEXT_BODY,length);
 	if(i) {
-		printf("\n\7!smb_dfield returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_dfield returned %d: %s\n",i,smb.last_error);
 		smb_freemsgdat(&smb,offset,length,1);
 		exit(1); }
 
 	i=smb_addmsghdr(&smb,&msg,smb.status.attr&SMB_HYPERALLOC);
 
 	if(i) {
-		printf("\n\7!smb_addmsghdr returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_addmsghdr returned %d: %s\n",i,smb.last_error);
 		smb_freemsgdat(&smb,offset,length,1);
 		exit(1); }
 	smb_freemsgmem(&msg);
@@ -368,12 +368,12 @@ void showstatus(void)
 
 	i=smb_locksmbhdr(&smb);
 	if(i) {
-		printf("\n\7!smb_locksmbhdr returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_locksmbhdr returned %d: %s\n",i,smb.last_error);
 		return; }
 	i=smb_getstatus(&smb);
 	smb_unlocksmbhdr(&smb);
 	if(i) {
-		printf("\n\7!smb_getstatus returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_getstatus returned %d: %s\n",i,smb.last_error);
 		return; }
 	printf("last_msg        =%lu\n"
 		   "total_msgs      =%lu\n"
@@ -402,12 +402,12 @@ void config(void)
 
 	i=smb_locksmbhdr(&smb);
 	if(i) {
-		printf("\n\7!smb_locksmbhdr returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_locksmbhdr returned %d: %s\n",i,smb.last_error);
 		return; }
 	i=smb_getstatus(&smb);
 	smb_unlocksmbhdr(&smb);
 	if(i) {
-		printf("\n\7!smb_getstatus returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_getstatus returned %d: %s\n",i,smb.last_error);
 		return; }
 	printf("Header offset =%-5lu  New value (CR=No Change): "
 		,smb.status.header_offset);
@@ -426,11 +426,11 @@ void config(void)
 	gets(attr);
 	i=smb_locksmbhdr(&smb);
 	if(i) {
-		printf("\n\7!smb_locksmbhdr returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_locksmbhdr returned %d: %s\n",i,smb.last_error);
 		return; }
 	i=smb_getstatus(&smb);
 	if(i) {
-		printf("\n\7!smb_getstatus returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_getstatus returned %d: %s\n",i,smb.last_error);
 		smb_unlocksmbhdr(&smb);
 		return; }
 	if(isdigit(max_msgs[0]))
@@ -446,7 +446,7 @@ void config(void)
 	i=smb_putstatus(&smb);
 	smb_unlocksmbhdr(&smb);
 	if(i)
-		printf("\n\7!smb_putstatus returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_putstatus returned %d: %s\n",i,smb.last_error);
 }
 
 /****************************************************************************/
@@ -466,12 +466,12 @@ void listmsgs(ulong start, ulong count)
 			break;
 		i=smb_lockmsghdr(&smb,&msg);
 		if(i) {
-			printf("\n\7!smb_lockmsghdr returned %d: %s\n",i,smb.last_error);
+			fprintf(stderr,"\n\7!smb_lockmsghdr returned %d: %s\n",i,smb.last_error);
 			break; }
 		i=smb_getmsghdr(&smb,&msg);
 		smb_unlockmsghdr(&smb,&msg);
 		if(i) {
-			printf("\n\7!smb_getmsghdr returned %d: %s\n",i,smb.last_error);
+			fprintf(stderr,"\n\7!smb_getmsghdr returned %d: %s\n",i,smb.last_error);
 			break; }
 		printf("%4lu %-25.25s %-25.25s %.20s\n"
 			,msg.hdr.number,msg.from,msg.to,msg.subj);
@@ -626,12 +626,12 @@ void viewmsgs(ulong start, ulong count)
 			break;
 		i=smb_lockmsghdr(&smb,&msg);
 		if(i) {
-			printf("\n\7!smb_lockmsghdr returned %d: %s\n",i,smb.last_error);
+			fprintf(stderr,"\n\7!smb_lockmsghdr returned %d: %s\n",i,smb.last_error);
 			break; }
 		i=smb_getmsghdr(&smb,&msg);
 		smb_unlockmsghdr(&smb,&msg);
 		if(i) {
-			printf("\n\7!smb_getmsghdr returned %d: %s\n",i,smb.last_error);
+			fprintf(stderr,"\n\7!smb_getmsghdr returned %d: %s\n",i,smb.last_error);
 			break; }
 
 		sprintf(when_written,"%.24s %s"
@@ -781,12 +781,12 @@ void maint(void)
 	now=time(NULL);
 	i=smb_locksmbhdr(&smb);
 	if(i) {
-		printf("\n\7!smb_locksmbhdr returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_locksmbhdr returned %d: %s\n",i,smb.last_error);
 		return; }
 	i=smb_getstatus(&smb);
 	if(i) {
 		smb_unlocksmbhdr(&smb);
-		printf("\n\7!smb_getstatus returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_getstatus returned %d: %s\n",i,smb.last_error);
 		return; }
 	if(!smb.status.total_msgs) {
 		smb_unlocksmbhdr(&smb);
@@ -796,7 +796,7 @@ void maint(void)
 	if((idx=(idxrec_t *)LMALLOC(sizeof(idxrec_t)*smb.status.total_msgs))
 		==NULL) {
 		smb_unlocksmbhdr(&smb);
-		printf("\n\7!Error allocating %lu bytes of memory\n"
+		fprintf(stderr,"\n\7!Error allocating %lu bytes of memory\n"
 			,sizeof(idxrec_t)*smb.status.total_msgs);
 		return; }
 	fseek(smb.sid_fp,0L,SEEK_SET);
@@ -861,12 +861,12 @@ void maint(void)
 			i=smb_open_da(&smb);
 			if(i) {
 				smb_unlocksmbhdr(&smb);
-				printf("\n\7!smb_open_da returned %d: %s\n",i,smb.last_error);
+				fprintf(stderr,"\n\7!smb_open_da returned %d: %s\n",i,smb.last_error);
 				exit(1); }
 			i=smb_open_ha(&smb);
 			if(i) {
 				smb_unlocksmbhdr(&smb);
-				printf("\n\7!smb_open_ha returned %d: %s\n",i,smb.last_error);
+				fprintf(stderr,"\n\7!smb_open_ha returned %d: %s\n",i,smb.last_error);
 				exit(1); } }
 
 		for(m=n=0;m<l;m++) {
@@ -875,26 +875,26 @@ void maint(void)
 				msg.idx=idx[m];
 				msg.hdr.number=msg.idx.number;
 				if((i=smb_getmsgidx(&smb,&msg))!=0) {
-					printf("\n\7!smb_getmsgidx returned %d: %s\n",i,smb.last_error);
+					fprintf(stderr,"\n\7!smb_getmsgidx returned %d: %s\n",i,smb.last_error);
 					continue; }
 				i=smb_lockmsghdr(&smb,&msg);
 				if(i) {
-					printf("\n\7!smb_lockmsghdr returned %d: %s\n",i,smb.last_error);
+					fprintf(stderr,"\n\7!smb_lockmsghdr returned %d: %s\n",i,smb.last_error);
 					break; }
 				if((i=smb_getmsghdr(&smb,&msg))!=0) {
 					smb_unlockmsghdr(&smb,&msg);
-					printf("\n\7!smb_getmsghdr returned %d: %s\n",i,smb.last_error);
+					fprintf(stderr,"\n\7!smb_getmsghdr returned %d: %s\n",i,smb.last_error);
 					break; }
 				msg.hdr.attr|=MSG_DELETE;			/* mark header as deleted */
 				if((i=smb_putmsg(&smb,&msg))!=0) {
 					smb_freemsgmem(&msg);
 					smb_unlockmsghdr(&smb,&msg);
-					printf("\n\7!smb_putmsg returned %d: %s\n",i,smb.last_error);
+					fprintf(stderr,"\n\7!smb_putmsg returned %d: %s\n",i,smb.last_error);
 					break; }
 				smb_unlockmsghdr(&smb,&msg);
 				if((i=smb_freemsg(&smb,&msg))!=0) {
 					smb_freemsgmem(&msg);
-					printf("\n\7!smb_freemsg returned %d: %s\n",i,smb.last_error);
+					fprintf(stderr,"\n\7!smb_freemsg returned %d: %s\n",i,smb.last_error);
 					break; }
 				smb_freemsgmem(&msg); } }
 		if(!(smb.status.attr&SMB_HYPERALLOC)) {
@@ -942,25 +942,25 @@ void packmsgs(ulong packable)
 	printf("Packing %s\n",smb.file);
 	i=smb_locksmbhdr(&smb);
 	if(i) {
-		printf("\n\7!smb_locksmbhdr returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_locksmbhdr returned %d: %s\n",i,smb.last_error);
 		return; }
 	i=smb_getstatus(&smb);
 	if(i) {
 		smb_unlocksmbhdr(&smb);
-		printf("\n\7!smb_getstatus returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_getstatus returned %d: %s\n",i,smb.last_error);
 		return; }
 
 	if(!(smb.status.attr&SMB_HYPERALLOC)) {
 		i=smb_open_ha(&smb);
 		if(i) {
 			smb_unlocksmbhdr(&smb);
-			printf("\n\7!smb_open_ha returned %d: %s\n",i,smb.last_error);
+			fprintf(stderr,"\n\7!smb_open_ha returned %d: %s\n",i,smb.last_error);
 			return; }
 		i=smb_open_da(&smb);
 		if(i) {
 			smb_unlocksmbhdr(&smb);
 			smb_close_ha(&smb);
-			printf("\n\7!smb_open_da returned %d: %s\n",i,smb.last_error);
+			fprintf(stderr,"\n\7!smb_open_da returned %d: %s\n",i,smb.last_error);
 			return; } }
 
 	if(!smb.status.total_msgs) {
@@ -1089,7 +1089,7 @@ void packmsgs(ulong packable)
 		if(!(smb.status.attr&SMB_HYPERALLOC)) {
 			smb_close_ha(&smb);
 			smb_close_da(&smb); }
-		printf("\n\7!Error opening temp files\n");
+		fprintf(stderr,"\n\7!Error opening temp files\n");
 		return; }
 	setvbuf(tmp_sdt,NULL,_IOFBF,2*1024);
 	setvbuf(tmp_shd,NULL,_IOFBF,2*1024);
@@ -1103,7 +1103,7 @@ void packmsgs(ulong packable)
 		fclose(tmp_sdt);
 		fclose(tmp_shd);
 		fclose(tmp_sid);
-		printf("\n\7!Error allocating memory\n");
+		fprintf(stderr,"\n\7!Error allocating memory\n");
 		return; }
 	fseek(smb.shd_fp,0L,SEEK_SET);
 	fread(&hdr,1,sizeof(smbhdr_t),smb.shd_fp);
@@ -1123,12 +1123,12 @@ void packmsgs(ulong packable)
 			continue; }
 		i=smb_lockmsghdr(&smb,&msg);
 		if(i) {
-			printf("\n\7!smb_lockmsghdr returned %d: %s\n",i,smb.last_error);
+			fprintf(stderr,"\n\7!smb_lockmsghdr returned %d: %s\n",i,smb.last_error);
 			continue; }
 		i=smb_getmsghdr(&smb,&msg);
 		smb_unlockmsghdr(&smb,&msg);
 		if(i) {
-			printf("\n\7!smb_getmsghdr returned %d: %s\n",i,smb.last_error);
+			fprintf(stderr,"\n\7!smb_getmsghdr returned %d: %s\n",i,smb.last_error);
 			continue; }
 		if(msg.hdr.attr&MSG_DELETE) {
 			printf("\nDeleted header.\n");
@@ -1154,7 +1154,7 @@ void packmsgs(ulong packable)
 
 			m=smb_getmsgdatlen(&msg);
 			if(m>16L*1024L*1024L) {
-				printf("\n\7!Invalid data length (%lu)\n",m);
+				fprintf(stderr,"\n\7!Invalid data length (%lu)\n",m);
 				continue; }
 
 			if(!(smb.status.attr&SMB_HYPERALLOC)) {
@@ -1235,10 +1235,10 @@ void packmsgs(ulong packable)
 	fclose(tmp_shd);
 	sprintf(fname,"%s.shd",smb.file);
 	if(remove(fname)!=0)
-		printf("\n\7!Error %d removing %s\n",errno,fname);
+		fprintf(stderr,"\n\7!Error %d removing %s\n",errno,fname);
 	sprintf(tmpfname,"%s.sh$",smb.file);
 	if(rename(tmpfname,fname)!=0)
-		printf("\n\7!Error %d renaming %s to %s\n",errno,tmpfname,fname);
+		fprintf(stderr,"\n\7!Error %d renaming %s to %s\n",errno,tmpfname,fname);
 
 
 	/* Change *.sd$ into *.sdt */
@@ -1246,30 +1246,30 @@ void packmsgs(ulong packable)
 	fclose(tmp_sdt);
 	sprintf(fname,"%s.sdt",smb.file);
 	if(remove(fname)!=0)
-		printf("\n\7!Error %d removing %s\n",errno,fname);
+		fprintf(stderr,"\n\7!Error %d removing %s\n",errno,fname);
 
 	sprintf(tmpfname,"%s.sd$",smb.file);
 	if(rename(tmpfname,fname)!=0)
-		printf("\n\7!Error %d renaming %s to %s\n",errno,tmpfname,fname);
+		fprintf(stderr,"\n\7!Error %d renaming %s to %s\n",errno,tmpfname,fname);
 
 	/* Change *.si$ into *.sid */
 	fclose(smb.sid_fp);
 	fclose(tmp_sid);
 	sprintf(fname,"%s.sid",smb.file);
 	if(remove(fname)!=0)
-		printf("\n\7!Error %d removing %s\n",errno,fname);
+		fprintf(stderr,"\n\7!Error %d removing %s\n",errno,fname);
 
 	sprintf(tmpfname,"%s.si$",smb.file);
 	if(rename(tmpfname,fname)!=0)
-		printf("\n\7!Error %d renaming %s to %s\n",errno,tmpfname,fname);
+		fprintf(stderr,"\n\7!Error %d renaming %s to %s\n",errno,tmpfname,fname);
 
 	if((i=smb_open(&smb))!=0) {
-		printf("\n\7!Error %d reopening %s\n",i,smb.file);
+		fprintf(stderr,"\n\7!Error %d reopening %s\n",i,smb.file);
 		return; }
 
 	smb.status.total_msgs=total;
 	if((i=smb_putstatus(&smb))!=0)
-		printf("\n\7!smb_putstatus returned %d: %s\n",i,smb.last_error);
+		fprintf(stderr,"\n\7!smb_putstatus returned %d: %s\n",i,smb.last_error);
 	printf("\nDone.\n\n");
 }
 
@@ -1294,11 +1294,11 @@ void readmsgs(ulong start)
 				break;
 			i=smb_lockmsghdr(&smb,&msg);
 			if(i) {
-				printf("\n\7!smb_lockmsghdr returned %d: %s\n",i,smb.last_error);
+				fprintf(stderr,"\n\7!smb_lockmsghdr returned %d: %s\n",i,smb.last_error);
 				break; }
 			i=smb_getmsghdr(&smb,&msg);
 			if(i) {
-				printf("\n\7!smb_getmsghdr returned %d: %s\n",i,smb.last_error);
+				fprintf(stderr,"\n\7!smb_getmsghdr returned %d: %s\n",i,smb.last_error);
 				break; }
 
 			printf("\n%lu (%lu)\n",msg.hdr.number,msg.offset+1);
@@ -1324,7 +1324,7 @@ void readmsgs(ulong start)
 
 			i=smb_unlockmsghdr(&smb,&msg);
 			if(i) {
-				printf("\n\7!smb_unlockmsghdr returned %d: %s\n",i,smb.last_error);
+				fprintf(stderr,"\n\7!smb_unlockmsghdr returned %d: %s\n",i,smb.last_error);
 				break; }
 			smb_freemsgmem(&msg); }
 		domsg=1;
@@ -1407,7 +1407,7 @@ int main(int argc, char **argv)
 	setvbuf(stdout,0,_IONBF,0);
 
 	smb.file[0]=0;
-	printf("\nSMBUTIL Version %s (%s) SMBLIB %s - Synchronet Message Base "\
+	fprintf(stderr,"\nSMBUTIL Version %s (%s) SMBLIB %s - Synchronet Message Base "\
 		"Utility\n\n"
 		,SMBUTIL_VER
 #if defined(__linux__)
@@ -1512,9 +1512,9 @@ int main(int argc, char **argv)
 					s=strrchr(smb.file,'\\');
 				if(p>s) *p=0;
 				smb.retry_time=30;
-				printf("Opening %s\r\n",smb.file);
+				fprintf(stderr,"Opening %s\r\n",smb.file);
 				if((i=smb_open(&smb))!=0) {
-					printf("\n\7!Error %d (%s) opening %s message base\n"
+					fprintf(stderr,"\n\7!Error %d (%s) opening %s message base\n"
 						,i,smb.last_error,smb.file);
 					exit(1); }
 				if(!filelength(fileno(smb.shd_fp))) {
@@ -1539,7 +1539,7 @@ int main(int argc, char **argv)
 						case 'N':
 							if(cmd[1]!=0) {
 								if((fp=fopen(cmd+1,"r"))==NULL) {
-									printf("\n\7!Error %d opening %s\n"
+									fprintf(stderr,"\n\7!Error %d opening %s\n"
 										,errno,cmd+1);
 									exit(1);
 								}
@@ -1547,7 +1547,7 @@ int main(int argc, char **argv)
 								fp=stdin;
 							i=smb_locksmbhdr(&smb);
 							if(i) {
-								printf("\n\7!smb_locksmbhdr returned %d: %s\n",i,smb.last_error);
+								fprintf(stderr,"\n\7!smb_locksmbhdr returned %d: %s\n",i,smb.last_error);
 								return(1); }
 							postmsg((char)toupper(cmd[y]),to,to_number,to_address,from,from_number,subj,fp);
 							fclose(fp);
-- 
GitLab