...
 
Commits (2)
  • Rob Swindell's avatar
    The great C function dependency refactor of 2020 · c6808b3f
    Rob Swindell authored
    The goal of this commit is that: only modules that either are part-of sbbs.dll/libsbbs.so or need to link with/use that library, will #include "sbbs.h" and thus be dependent on its subsequent includes (e.g. cryptlib.h, jsapi.h). This should mean extdeps.mk can be trimmed way down.
    
    I also removed CVS keyword/comments and trimmed up the boilerplate copyright notice in modified and added source/header files in this commit.
    
    There is no functional change in behavior in this comment.
    c6808b3f
  • Rob Swindell's avatar
    Merge branch 'c_dependency_refactor' into 'master' · d2f969b8
    Rob Swindell authored
    C dependency refactor: limit use/dependency-on sbbs.h
    
    See merge request sbbs/sbbs!36
    d2f969b8
/* Program to add files to a Synchronet file database */
/* $Id: addfiles.c,v 1.63 2020/08/17 00:48:27 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -15,26 +13,21 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "nopen.h"
#include "str_util.h"
#include "datewrap.h"
#include "date_str.h"
#include "userdat.h"
#include "filedat.h"
#include "load_cfg.h"
#include <stdbool.h>
#include <stdarg.h>
#define ADDFILES_VER "3.04"
......@@ -600,7 +593,7 @@ void synclist(char *inpath, int dirnum)
printf("ERR_ALLOC %s\n",str);
return;
}
if(lread(file,ixbbuf,length)!=length) {
if(read(file,ixbbuf,length)!=length) {
close(file);
free((char *)ixbbuf);
printf("ERR_READ %s\n",str);
......
/* $Id: allusers.c,v 1.7 2018/02/20 11:56:26 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -13,21 +11,9 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
......@@ -37,7 +23,8 @@
#include <stdlib.h>
#include <sys/stat.h>
#include "sbbs.h"
#include "sbbsdefs.h"
#include "str_util.h"
int min=0,max=99;
long reqflags[4]={0},reqrest=0,reqexempt=0;
......
/* ars.c */
/* Synchronet Access Requirement String (ARS) functions */
/* $Id: ars.c,v 1.24 2020/05/14 07:49:58 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -17,25 +13,13 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "ars_defs.h"
static BOOL ar_string_arg(int artype)
{
......
/* dat_rec.c */
/* Synchronet text data-related routines (exported) */
/* $Id: dat_rec.c,v 1.3 2018/02/20 11:56:26 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -17,25 +13,15 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "dat_rec.h"
#include "gen_defs.h"
#include <string.h>
/****************************************************************************/
/* Places into 'strout' CR or ETX terminated string starting at */
......
/* date_str.c */
/* Synchronet date/time string conversion routines */
/* $Id: date_str.c,v 1.29 2016/05/27 07:44:46 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -17,25 +13,14 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "date_str.h"
#include "datewrap.h"
const char *wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
const char *mon[]={"Jan","Feb","Mar","Apr","May","Jun"
......
/* Synchronet date/time string conversion routines */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version 2 *
* of the License, or (at your option) any later version. *
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#ifndef _DATE_STR_H_
#define _DATE_STR_H_
#include "scfgdefs.h" // scfg_t
#include "dllexport.h"
#ifdef __cplusplus
extern "C" {
#endif
extern const char* wday[]; /* abbreviated weekday names */
extern const char* mon[]; /* abbreviated month names */
DLLEXPORT char * zonestr(short zone);
DLLEXPORT time32_t dstrtounix(scfg_t*, const char *str);
DLLEXPORT char * unixtodstr(scfg_t*, time32_t, char *str);
DLLEXPORT char * sectostr(uint sec, char *str);
DLLEXPORT char * seconds_to_str(uint, char*);
DLLEXPORT char * hhmmtostr(scfg_t* cfg, struct tm* tm, char* str);
DLLEXPORT char * timestr(scfg_t* cfg, time32_t intime, char* str);
#ifdef __cplusplus
}
#endif
#endif /* Don't add anything after this line */
\ No newline at end of file
/* delfiles.c */
/* Program to delete expired files from a Synchronet file database */
/* $Id: delfiles.c,v 1.14 2020/08/17 00:48:28 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -17,25 +13,18 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "scfgdefs.h"
#include "load_cfg.h"
#include "filedat.h"
#include "nopen.h"
#include "str_util.h"
#include <stdarg.h>
#define DELFILES_VER "1.01"
......
#ifdef DLLEXPORT
#undef DLLEXPORT
#endif
#if defined(_WIN32) && ! defined(__MINGW32__)
#ifdef SBBS_EXPORTS
#define DLLEXPORT __declspec(dllexport)
#else
#define DLLEXPORT __declspec(dllimport)
#endif
#endif
#ifndef DLLEXPORT
#define DLLEXPORT
#endif
......@@ -37,11 +37,12 @@
#include <errno.h>
#include <stdlib.h>
#include "sbbs.h"
#include "str_util.h"
#include "dirwrap.h"
#include "nopen.h"
#include "sbbsdefs.h"
#include "scfgdefs.h"
#include "conwrap.h"
#include "date_str.h"
int
main(int argc, char **argv)
......
/* $Id: dupefind.c,v 1.8 2020/08/17 00:48:28 rswindell Exp $ */
// vi: tabstop=4
#include "sbbs.h"
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version 2 *
* of the License, or (at your option) any later version. *
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "scfgdefs.h"
#include "str_util.h"
#include "load_cfg.h"
#include "nopen.h"
#include "crc32.h"
#include <stdarg.h>
#define DUPEFIND_VER "1.02"
......
/* FidoNet configuration utility */
/* $Id: echocfg.c,v 3.58 2020/08/17 00:48:28 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -15,21 +13,9 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
......@@ -45,8 +31,10 @@
#define __COLORS
#include "ciolib.h"
#include "uifc.h"
#include "sbbs.h"
#include "scfgdefs.h"
#include "sbbsecho.h"
#include "sockwrap.h"
#include "str_util.h"
char **opt;
......
/* filedat.c */
/* Synchronet file database-related exported functions */
/* $Id: filedat.c,v 1.40 2019/01/12 08:11:13 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -17,25 +13,19 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "filedat.h"
#include "dat_rec.h"
#include "datewrap.h" // time32()
#include "str_util.h"
#include "nopen.h"
static char* crlf = "\r\n";
/****************************************************************************/
/* Gets filedata from dircode.DAT file */
......@@ -246,7 +236,7 @@ BOOL DLLCALL addfiledat(scfg_t* cfg, file_t* f)
close(file);
return(FALSE);
}
if(lread(file,ixbbuf,length)!=length) {
if(read(file,ixbbuf,length)!=length) {
close(file);
free(ixbbuf);
return(FALSE);
......@@ -293,7 +283,7 @@ BOOL DLLCALL addfiledat(scfg_t* cfg, file_t* f)
}
write(file,&f->dateuled,4);
write(file,&f->datedled,4); /* Write 0 for datedled */
if(lwrite(file,&ixbbuf[l],length-l)!=length-l) { /* Write rest of IXB */
if(write(file,&ixbbuf[l],length-l)!=length-l) { /* Write rest of IXB */
close(file);
free(ixbbuf);
return(FALSE);
......@@ -342,7 +332,7 @@ BOOL DLLCALL getfileixb(scfg_t* cfg, file_t* f)
close(file);
return(FALSE);
}
if(lread(file,ixbbuf,length)!=length) {
if(read(file,ixbbuf,length)!=length) {
close(file);
free(ixbbuf);
return(FALSE);
......@@ -393,7 +383,7 @@ BOOL DLLCALL putfileixb(scfg_t* cfg, file_t* f)
close(file);
return(FALSE);
}
if(lread(file,ixbbuf,length)!=length) {
if(read(file,ixbbuf,length)!=length) {
close(file);
free(ixbbuf);
return(FALSE);
......@@ -449,7 +439,7 @@ BOOL DLLCALL removefiledat(scfg_t* cfg, file_t* f)
close(file);
return(FALSE);
}
if(lread(file,ixbbuf,length)!=length) {
if(read(file,ixbbuf,length)!=length) {
close(file);
free(ixbbuf);
return(FALSE);
......@@ -464,7 +454,7 @@ BOOL DLLCALL removefiledat(scfg_t* cfg, file_t* f)
ixbname[i]=ixbbuf[l+i];
ixbname[i]=0;
if(stricmp(ixbname,fname))
if(lwrite(file,&ixbbuf[l],F_IXBSIZE)!=F_IXBSIZE) {
if(write(file,&ixbbuf[l],F_IXBSIZE)!=F_IXBSIZE) {
close(file);
free(ixbbuf);
return(FALSE);
......@@ -514,7 +504,7 @@ BOOL DLLCALL findfile(scfg_t* cfg, uint dirnum, char *filename)
close(file);
return(FALSE);
}
if(lread(file,ixbbuf,length)!=length) {
if(read(file,ixbbuf,length)!=length) {
close(file);
free(ixbbuf);
return(FALSE);
......
/* Synchronet Filebase Access functions */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version 2 *
* of the License, or (at your option) any later version. *
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#ifndef _FILEDAT_H_
#define _FILEDAT_H_
#include "scfgdefs.h" // scfg_t
#include "dllexport.h"
#ifdef __cplusplus
extern "C" {
#endif
DLLEXPORT BOOL getfileixb(scfg_t* cfg, file_t* f);
DLLEXPORT BOOL putfileixb(scfg_t* cfg, file_t* f);
DLLEXPORT BOOL getfiledat(scfg_t* cfg, file_t* f);
DLLEXPORT BOOL putfiledat(scfg_t* cfg, file_t* f);
DLLEXPORT void putextdesc(scfg_t* cfg, uint dirnum, ulong datoffset, char *ext);
DLLEXPORT void getextdesc(scfg_t* cfg, uint dirnum, ulong datoffset, char *ext);
DLLEXPORT char* getfilepath(scfg_t* cfg, file_t* f, char* path);
DLLEXPORT BOOL removefiledat(scfg_t* cfg, file_t* f);
DLLEXPORT BOOL addfiledat(scfg_t* cfg, file_t* f);
DLLEXPORT BOOL findfile(scfg_t* cfg, uint dirnum, char *filename);
DLLEXPORT char * padfname(const char *filename, char *str);
DLLEXPORT char * unpadfname(const char *filename, char *str);
DLLEXPORT BOOL rmuserxfers(scfg_t* cfg, int fromuser, int destuser, char *fname);
DLLEXPORT int update_uldate(scfg_t* cfg, file_t* f);
#ifdef __cplusplus
}
#endif
#endif /* Don't add anything after this line */
\ No newline at end of file
/* filelist.c */
/* Utility to create list of files from Synchronet file directories */
/* Default list format is FILES.BBS, but file size, uploader, upload date */
/* and other information can be included. */
/* $Id: filelist.c,v 1.22 2020/08/17 00:48:28 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -19,25 +15,20 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "datewrap.h"
#include "load_cfg.h"
#include "str_util.h"
#include "date_str.h"
#include "nopen.h"
#include "filedat.h"
#include "dat_rec.h"
#include <stdarg.h>
#define FILELIST_VER "3.15"
......
/* Synchronet DLL-exported mail-related routines */
/* $Id: getmail.c,v 1.20 2018/12/30 04:33:48 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -15,25 +13,13 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "getmail.h"
/****************************************************************************/
/* Returns the number of pieces of mail waiting for usernumber */
......
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version 2 *
* of the License, or (at your option) any later version. *
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#ifndef _GETMAIL_H_
#define _GETMAIL_H_
#include "scfgdefs.h"
#include "smblib.h"
#include "dllexport.h"
#ifdef __cplusplus
extern "C" {
#endif
DLLEXPORT int getmail(scfg_t* cfg, int usernumber, BOOL sent, uint16_t attr);
DLLEXPORT mail_t * loadmail(smb_t* smb, uint32_t* msgs, uint usernumber
,int which, long mode);
DLLEXPORT void freemail(mail_t* mail);
DLLEXPORT BOOL delfattach(scfg_t*, smbmsg_t*);
#ifdef __cplusplus
}
#endif
#endif /* Don't add anything after this line */
\ No newline at end of file
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version 2 *
* of the License, or (at your option) any later version. *
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#ifndef _GETSTATS_H_
#define _GETSTATS_H_
#include "scfgdefs.h" // scfg_t
#include "dllexport.h"
#ifdef __cplusplus
extern "C" {
#endif
DLLEXPORT BOOL getstats(scfg_t* cfg, char node, stats_t* stats);
DLLEXPORT ulong getposts(scfg_t* cfg, uint subnum);
DLLEXPORT long getfiles(scfg_t* cfg, uint dirnum);
DLLEXPORT BOOL inc_sys_upload_stats(scfg_t*, ulong files, ulong bytes);
DLLEXPORT BOOL inc_sys_download_stats(scfg_t*, ulong files, ulong bytes);
#ifdef __cplusplus
}
#endif
#endif /* Don't add anything after this line */
\ No newline at end of file
/* Synchronet configuration load routines (exported) */
/* $Id: load_cfg.c,v 1.82 2020/05/26 01:49:22 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -15,25 +13,17 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "load_cfg.h"
#include "scfglib.h"
#include "str_util.h"
#include "nopen.h"
#include "datewrap.h"
#include "text.h" /* TOTAL_TEXT */
#ifdef USE_CRYPTLIB
#include "cryptlib.h"
......@@ -44,6 +34,9 @@ static void free_attr_cfg(scfg_t* cfg);
int lprintf(int level, const char *fmt, ...); /* log output */
/* readtext.c */
char * readtext(long *line, FILE *stream, long dflt);
/****************************************************************************/
/* Initializes system and node configuration information and data variables */
/****************************************************************************/
......
/* Synchronet Configuration Load/Preparation functions */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version 2 *
* of the License, or (at your option) any later version. *
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#ifndef _LOAD_CFG_H_
#define _LOAD_CFG_H_
#include "scfgdefs.h" // scfg_t
#include "dllexport.h"
#ifdef __cplusplus
extern "C" {
#endif
DLLEXPORT BOOL load_cfg(scfg_t* cfg, char* text[], BOOL prep, char* error);
DLLEXPORT void free_cfg(scfg_t* cfg);
DLLEXPORT void free_text(char* text[]);
DLLEXPORT ushort sys_timezone(scfg_t* cfg);
DLLEXPORT char * prep_dir(const char* base, char* dir, size_t buflen);
DLLEXPORT char * prep_code(char *str, const char* prefix);
DLLEXPORT int md(const char *path);
#ifdef __cplusplus
}
#endif
#endif /* Don't add anything after this line */
\ No newline at end of file
/* makeuser.c */
/* Program to add a user to a Synchronet user database */
/* $Id: makeuser.c,v 1.12 2020/08/17 00:48:28 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -17,25 +13,17 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "load_cfg.h"
#include "str_util.h"
#include "userdat.h"
#include "scfglib.h"
#include <stdarg.h>
scfg_t scfg;
......
/* Synchronet Message-ID generation routines */
/* $Id: msg_id.c,v 1.16 2020/07/15 06:12:56 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -15,25 +13,14 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "msg_id.h"
#include "smblib.h"
static ulong msg_number(smbmsg_t* msg)
{
......
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version 2 *
* of the License, or (at your option) any later version. *
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#ifndef _MSG_ID_H_
#define _MSG_ID_H_
#include "smbdefs.h"
#include "scfgdefs.h"
#include "dllexport.h"
#ifdef __cplusplus
extern "C" {
#endif
DLLEXPORT char * ftn_msgid(sub_t*, smbmsg_t*, char* msgid, size_t);
DLLEXPORT char * get_msgid(scfg_t*, uint subnum, smbmsg_t*, char* msgid, size_t);
DLLEXPORT char * get_replyid(scfg_t*, smb_t*, smbmsg_t*, char* msgid, size_t maxlen);
DLLEXPORT uint32_t get_new_msg_number(smb_t*);
DLLEXPORT BOOL add_msg_ids(scfg_t*, smb_t*, smbmsg_t*, smbmsg_t* remsg);
DLLEXPORT BOOL add_reply_ids(scfg_t*, smb_t*, smbmsg_t*, smbmsg_t* remsg);
DLLEXPORT char* msg_program_id(char* pid, size_t);
DLLEXPORT uint nearest_sysfaddr(scfg_t*, faddr_t* dest_addr);
#ifdef __cplusplus
}
#endif
#endif /* Don't add anything after this line */
/* msgdate.c */
/* Synchronet RFC822 message date/time string conversion routines */
/* $Id: msgdate.c,v 1.7 2018/07/24 11:37:38 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -17,25 +13,16 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "msgdate.h"
#include "smblib.h"
#include "datewrap.h"
#include "date_str.h"
/****************************************************************************/
/* Convert when_t structure to RFC822 date header field (string) */
......
/* Synchronet RFC822 message date/time string conversion routines */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version 2 *
* of the License, or (at your option) any later version. *
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#ifndef _MSGDATE_H_
#define _MSGDATE_H_
#include <time.h> // time_t
#include "scfgdefs.h" // scfg_t
#include "smbdefs.h" // when_t
#include "dllexport.h"
#ifdef __cplusplus
extern "C" {
#endif
DLLEXPORT when_t rfc822date(char* p);
DLLEXPORT char * msgdate(when_t when, char* buf);
DLLEXPORT BOOL newmsgs(smb_t*, time_t);
#ifdef __cplusplus
}
#endif
#endif /* Don't add anything after this line */
\ No newline at end of file
/* nopen.c */
/* Network open functions (nopen and fnopen) and friends */
/* $Id: nopen.c,v 1.30 2018/11/23 17:08:42 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -17,26 +13,15 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "crc32.h"
#include "filewrap.h"
#include "sockwrap.h"
#include "sbbsdefs.h"
/****************************************************************************/
/* Network open function. Opens all files DENYALL, DENYWRITE, or DENYNONE */
......
/* $Id: qwknodes.c,v 1.25 2020/08/17 00:48:28 rswindell Exp $ */
/* Synchronet QWKnet node list or route.dat file generator */
/****************************************************************************
......@@ -15,29 +13,21 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "load_cfg.h"
#include "str_util.h"
#include "date_str.h"
#include "smblib.h"
#include "nopen.h"
#include "crc16.h"
#include "crc32.h"
#include "conwrap.h" /* kbhit */
#include <stdarg.h>
unsigned _stklen=10000;
smb_t smb;
......
/* Synchronet FidoNet EchoMail Scanning/Tossing and NetMail Tossing Utility */
/* $Id: rechocfg.c,v 3.48 2020/05/04 03:14:51 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -15,21 +13,9 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
......@@ -45,9 +31,9 @@
#include <string.h>
#include <sys/stat.h>
#include "sbbs.h"
#include "sbbsecho.h"
#include "filewrap.h" /* O_DENYNONE */
#include "nopen.h" /* backup() */
/****************************************************************************/
/* Returns the FidoNet address kept in str as ASCII. */
......
......@@ -290,8 +290,8 @@ extern int thread_suid_broken; /* NPTL is no longer broken */
#include "smblib.h"
#include "ars_defs.h"
#include "scfgdefs.h"
#include "scfglib.h"
#include "scfgsave.h"
#include "userdat.h"
#include "riodefs.h"
#include "cmdshell.h"
......@@ -302,6 +302,14 @@ extern int thread_suid_broken; /* NPTL is no longer broken */
#include "telnet.h"
#include "nopen.h"
#include "text.h"
#include "str_util.h"
#include "date_str.h"
#include "load_cfg.h"
#include "filedat.h"
#include "getstats.h"
#include "msgdate.h"
#include "getmail.h"
#include "msg_id.h"
/* Synchronet Node Instance class definition */
#if defined(__cplusplus) && defined(JAVASCRIPT)
......@@ -1167,20 +1175,6 @@ extern "C" {
DLLEXPORT int DLLCALL sbbs_random(int);
DLLEXPORT void DLLCALL sbbs_srand(void);
/* getstats.c */
DLLEXPORT BOOL DLLCALL getstats(scfg_t* cfg, char node, stats_t* stats);
DLLEXPORT ulong DLLCALL getposts(scfg_t* cfg, uint subnum);
DLLEXPORT long DLLCALL getfiles(scfg_t* cfg, uint dirnum);
DLLEXPORT BOOL DLLCALL inc_sys_upload_stats(scfg_t*, ulong files, ulong bytes);
DLLEXPORT BOOL DLLCALL inc_sys_download_stats(scfg_t*, ulong files, ulong bytes);
/* getmail.c */
DLLEXPORT int DLLCALL getmail(scfg_t* cfg, int usernumber, BOOL sent, uint16_t attr);
DLLEXPORT mail_t * DLLCALL loadmail(smb_t* smb, uint32_t* msgs, uint usernumber
,int which, long mode);
DLLEXPORT void DLLCALL freemail(mail_t* mail);
DLLEXPORT BOOL DLLCALL delfattach(scfg_t*, smbmsg_t*);
/* postmsg.cpp */
DLLEXPORT int DLLCALL savemsg(scfg_t*, smb_t*, smbmsg_t*, client_t*, const char* server, char* msgbuf, smbmsg_t* remsg);
DLLEXPORT int DLLCALL votemsg(scfg_t*, smb_t*, smbmsg_t*, const char* msgfmt, const char* votefmt);
......@@ -1190,101 +1184,6 @@ extern "C" {
DLLEXPORT int DLLCALL msg_client_hfields(smbmsg_t*, client_t*);
DLLEXPORT int DLLCALL notify(scfg_t*, uint usernumber, const char* subject, const char* msg);
/* filedat.c */
DLLEXPORT BOOL DLLCALL getfileixb(scfg_t* cfg, file_t* f);
DLLEXPORT BOOL DLLCALL putfileixb(scfg_t* cfg, file_t* f);
DLLEXPORT BOOL DLLCALL getfiledat(scfg_t* cfg, file_t* f);
DLLEXPORT BOOL DLLCALL putfiledat(scfg_t* cfg, file_t* f);
DLLEXPORT void DLLCALL putextdesc(scfg_t* cfg, uint dirnum, ulong datoffset, char *ext);
DLLEXPORT void DLLCALL getextdesc(scfg_t* cfg, uint dirnum, ulong datoffset, char *ext);
DLLEXPORT char* DLLCALL getfilepath(scfg_t* cfg, file_t* f, char* path);
DLLEXPORT BOOL DLLCALL removefiledat(scfg_t* cfg, file_t* f);
DLLEXPORT BOOL DLLCALL addfiledat(scfg_t* cfg, file_t* f);
DLLEXPORT BOOL DLLCALL findfile(scfg_t* cfg, uint dirnum, char *filename);
DLLEXPORT char * DLLCALL padfname(const char *filename, char *str);
DLLEXPORT char * DLLCALL unpadfname(const char *filename, char *str);
DLLEXPORT BOOL DLLCALL rmuserxfers(scfg_t* cfg, int fromuser, int destuser, char *fname);
DLLEXPORT int DLLCALL update_uldate(scfg_t* cfg, file_t* f);
/* str_util.c */
DLLEXPORT char * remove_ctrl_a(const char* instr, char* outstr);
DLLEXPORT char ctrl_a_to_ascii_char(char code);
DLLEXPORT char * truncstr(char* str, const char* set);
DLLEXPORT char * ascii_str(uchar* str);
DLLEXPORT char * condense_whitespace(char* str);
DLLEXPORT char exascii_to_ascii_char(uchar ch);
DLLEXPORT BOOL findstr(const char *insearch, const char *fname);
DLLEXPORT BOOL findstr_in_string(const char* insearchof, char* string);
DLLEXPORT BOOL findstr_in_list(const char* insearchof, str_list_t list);
DLLEXPORT str_list_t findstr_list(const char* fname);
DLLEXPORT BOOL trashcan(scfg_t* cfg, const char *insearch, const char *name);
DLLEXPORT char * trashcan_fname(scfg_t* cfg, const char *name, char* fname, size_t);
DLLEXPORT str_list_t trashcan_list(scfg_t* cfg, const char* name);
DLLEXPORT char * strip_ansi(char* str);
DLLEXPORT char * strip_exascii(const char *str, char* dest);
DLLEXPORT char * strip_space(const char *str, char* dest);
DLLEXPORT char * prep_file_desc(const char *str, char* dest);
DLLEXPORT char * strip_ctrl(const char *str, char* dest);
DLLEXPORT char * strip_char(const char* str, char* dest, char);
DLLEXPORT char * net_addr(net_t* net);
DLLEXPORT BOOL valid_ctrl_a_attr(char a);
DLLEXPORT BOOL valid_ctrl_a_code(char a);
DLLEXPORT size_t strip_invalid_attr(char *str);
DLLEXPORT char * ultoac(ulong l,char *str);
DLLEXPORT char * rot13(char* str);
DLLEXPORT uint32_t str_to_bits(uint32_t currval, const char *str);
DLLEXPORT BOOL str_has_ctrl(const char*);
DLLEXPORT BOOL str_is_ascii(const char*);
DLLEXPORT char * utf8_to_cp437_str(char* str);
DLLEXPORT char * subnewsgroupname(scfg_t*, sub_t*, char*, size_t);
DLLEXPORT char * get_ctrl_dir(BOOL warn);
/* msg_id.c */
DLLEXPORT char * DLLCALL ftn_msgid(sub_t*, smbmsg_t*, char* msgid, size_t);
DLLEXPORT char * DLLCALL get_msgid(scfg_t*, uint subnum, smbmsg_t*, char* msgid, size_t);
DLLEXPORT char * DLLCALL get_replyid(scfg_t*, smb_t*, smbmsg_t*, char* msgid, size_t maxlen);
DLLEXPORT uint32_t DLLCALL get_new_msg_number(smb_t*);
DLLEXPORT BOOL DLLCALL add_msg_ids(scfg_t*, smb_t*, smbmsg_t*, smbmsg_t* remsg);
DLLEXPORT BOOL DLLCALL add_reply_ids(scfg_t*, smb_t*, smbmsg_t*, smbmsg_t* remsg);
DLLEXPORT char* DLLCALL msg_program_id(char* pid, size_t);
DLLEXPORT uint nearest_sysfaddr(scfg_t*, faddr_t* dest_addr);
/* date_str.c */
DLLEXPORT char * DLLCALL zonestr(short zone);
DLLEXPORT time32_t DLLCALL dstrtounix(scfg_t*, const char *str);
DLLEXPORT char * DLLCALL unixtodstr(scfg_t*, time32_t, char *str);
DLLEXPORT char * DLLCALL sectostr(uint sec, char *str);
DLLEXPORT char * DLLCALL seconds_to_str(uint, char*);
DLLEXPORT char * DLLCALL hhmmtostr(scfg_t* cfg, struct tm* tm, char* str);
DLLEXPORT char * DLLCALL timestr(scfg_t* cfg, time32_t intime, char* str);
/* msgdate.c */
DLLEXPORT when_t DLLCALL rfc822date(char* p);
DLLEXPORT char * DLLCALL msgdate(when_t when, char* buf);
DLLEXPORT BOOL DLLCALL newmsgs(smb_t*, time_t);
/* load_cfg.c */
DLLEXPORT BOOL DLLCALL load_cfg(scfg_t* cfg, char* text[], BOOL prep, char* error);
DLLEXPORT void DLLCALL free_cfg(scfg_t* cfg);
DLLEXPORT void DLLCALL free_text(char* text[]);
DLLEXPORT ushort DLLCALL sys_timezone(scfg_t* cfg);
DLLEXPORT char * DLLCALL prep_dir(const char* base, char* dir, size_t buflen);
DLLEXPORT int DLLCALL md(const char *path);
/* scfgsave.c */
DLLEXPORT BOOL DLLCALL save_cfg(scfg_t* cfg, int backup_level);
DLLEXPORT BOOL DLLCALL write_node_cfg(scfg_t* cfg, int backup_level);
DLLEXPORT BOOL DLLCALL write_main_cfg(scfg_t* cfg, int backup_level);
DLLEXPORT BOOL DLLCALL write_msgs_cfg(scfg_t* cfg, int backup_level);
DLLEXPORT BOOL DLLCALL write_file_cfg(scfg_t* cfg, int backup_level);
DLLEXPORT BOOL DLLCALL write_chat_cfg(scfg_t* cfg, int backup_level);
DLLEXPORT BOOL DLLCALL write_xtrn_cfg(scfg_t* cfg, int backup_level);
DLLEXPORT void DLLCALL refresh_cfg(scfg_t* cfg);
DLLEXPORT int DLLCALL smb_storage_mode(scfg_t*, smb_t*);
DLLEXPORT int DLLCALL smb_open_sub(scfg_t*, smb_t*, unsigned int subnum);
/* logfile.cpp */
DLLEXPORT int DLLCALL errorlog(scfg_t* cfg, int level, const char* host, const char* text);
......@@ -1506,17 +1405,6 @@ extern "C" {
#endif
/* str_util.c */
char* backslashcolon(char *str);
ulong ahtoul(const char *str); /* Converts ASCII hex to ulong */
char * hexplus(uint num, char *str); /* Hex plus for 3 digits up to 9000 */
uint hptoi(const char *str);
int pstrcmp(const char **str1, const char **str2); /* Compares pointers to pointers */
int strsame(const char *str1, const char *str2); /* Compares number of same chars */
/* load_cfg.c */
char* prep_code(char *str, const char* prefix);
#ifdef SBBS /* These aren't exported */
/* main.c */
......@@ -1553,8 +1441,6 @@ char* prep_code(char *str, const char* prefix);
#endif /* SBBS */
extern const char* wday[]; /* abbreviated weekday names */
extern const char* mon[]; /* abbreviated month names */
extern char lastuseron[LEN_ALIAS+1]; /* Name of user last online */
#ifdef __cplusplus
......
/* Synchronet FidoNet EchoMail Scanning/Tossing and NetMail Tossing Utility */
/* $Id: sbbsecho.c,v 3.177 2020/08/17 00:48:28 rswindell Exp $ */
// vi: tabstop=4
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -16,21 +13,9 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
......@@ -50,14 +35,24 @@
#endif
#include "conwrap.h" /* getch() */
#include "sbbs.h" /* load_cfg() */
#include "sbbsdefs.h"
#include "load_cfg.h" /* load_cfg() */
#include "smblib.h"
#include "scfglib.h"
#include "sbbsecho.h"
#include "genwrap.h" /* PLATFORM_DESC */
#include "xpendian.h"
#include "utf8.h"
#include "date_str.h"
#include "link_list.h"
#include "str_list.h"
#include "str_util.h"
#include "datewrap.h"
#include "nopen.h"
#include "crc32.h"
#include "userdat.h"
#include "msg_id.h"
#include "scfgsave.h"
#include "getmail.h"
#define MAX_OPEN_SMBS 10
......
/* Synchronet FidoNet EchoMail tosser/scanner/areafix program */
/* $Id: sbbsecho.h,v 3.42 2020/06/12 13:00:35 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -15,21 +13,9 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
......@@ -40,6 +26,7 @@
#include <smbdefs.h>
#include "sbbsdefs.h"
#include "fidodefs.h"
#include "ini_file.h"
#define SBBSECHO_VERSION_MAJOR 3
#define SBBSECHO_VERSION_MINOR 11
......
/* Synchronet configuration utility */
/* $Id: scfg.c,v 1.118 2020/08/17 00:48:43 rswindell Exp $ */
// vi: tabstop=4
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -16,21 +13,9 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
......
/* $Id: scfg.h,v 1.35 2020/06/12 15:57:17 rswindell Exp $ */
// vi: tabstop=4
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -14,21 +11,9 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
......@@ -37,9 +22,16 @@
#include <stdbool.h>
#include <limits.h> /* USHRT_MAX */
#include "scfgsave.h"
#include "scfglib.h"
#include "date_str.h"
#include "str_util.h"
#include "gen_defs.h"
#include "smblib.h"
#include "load_cfg.h"
#include "ini_file.h"
#include "uifc.h"
#include "sbbs.h"
#include "nopen.h"
/**********/
/* Macros */
......
......@@ -13,21 +13,9 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
......
......@@ -15,26 +15,15 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "scfg.h"
#include "strwrap.h" /* itoa() */
#include "str_util.h"
#include <stdbool.h>
#define CUT_GROUPNUM USHRT_MAX
......
/* Synchronet configuration library routines */
/* $Id: scfglib1.c,v 1.86 2020/08/08 19:04:07 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -15,34 +13,16 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* You are encouraged to submit any modifications (preferably in Unix diff *
* format) via e-mail to mods@synchro.net *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "sbbs.h"
#include "scfglib.h"
/***********************************************************/
/* These functions are called from here and must be linked */
/***********************************************************/
/***
nopen()
truncsp()
***/
#include "load_cfg.h"
#include "nopen.h"
#include "ars_defs.h"
BOOL allocerr(FILE* fp, char* error, long offset, char *fname, uint size)
{
......
/* scfglib2.c */
/* Synchronet configuration library routines */
/* $Id: scfglib2.c,v 1.53 2020/08/08 20:17:03 rswindell Exp $ */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
......@@ -17,26 +13,15 @@
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* Anonymous FTP access to the most recent released source is available at *
* ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
* *
* Anonymous CVS access to the development source and modification history *
* is available at cvs.synchro.net:/cvsroot/sbbs, example: *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login *
* (just hit return, no password is necessary) *
* cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src *