Synchronet now requires the libarchive development package (e.g. libarchive-dev on Debian-based Linux distros, libarchive.org for more info) to build successfully.

Commits (1)
  • Rob Swindell's avatar
    Increase FidoNet echo/area tag max length from 35 to 40/50 chars · 8940bde7
    Rob Swindell authored
    Per FMail.txt:
    Area name
              This is the name of the conference. It can be up to 50
              characters long. This name is often referred to as the
              area tag.
    
    I did not locate a FidoNet spec to contradict that and support a 35 character maximum area tag length. I think Mystic also has a 50 character area tag limit. So 50 character area tags are fine I guess.
    
    So up to 50 characters are now supported in SBBSecho and SCFG for area tags (for message and file echoes). The exception is the (new to 3.19) optional area tag stored in msgs.cnf/file.cnf is limited to 40 characters due to reserved space limitations. If you need a tag stored per sub (most sysops do not) and it needs to be longer than 40 chars, use the newsgroup name instead (limited to 63 chars).
    
    Changed at the request of Keyop via IRC.
    8940bde7
......@@ -54,7 +54,7 @@
#define FIDO_PASS_LEN 8 /* May NOT include '\0' terminator */
#define FIDO_DOMAIN_LEN 8 /* May NOT include '\0' terminator */
#define FIDO_PRODDATA_LEN 4 /* Product-specific Data */
#define FIDO_AREATAG_LEN 35 /* Echo "areatag" (NOT including '\0') */
#define FIDO_AREATAG_LEN 50 // Echo "area tag" (NOT including '\0') (see FMail.txt)
#define FIDO_ECHO_TITLE_LEN 55 // Brief echo description, per echobase.hlp
#define FIDO_ORIGIN_PREFIX_LEN 12 /* Includes new-line character */
......
......@@ -1241,7 +1241,7 @@ void dir_cfg(uint libnum)
;
SAFECOPY(str, cfg.dir[i]->area_tag);
if(uifc.input(WIN_L2R|WIN_SAV,0,17,"FidoNet File Echo Area Tag"
,str, FIDO_AREATAG_LEN, K_EDIT | K_UPPER) > 0)
,str, sizeof(cfg.dir[i]->area_tag) - 1, K_EDIT | K_UPPER) > 0)
SAFECOPY(cfg.dir[i]->area_tag, str);
break;
case 4:
......
......@@ -40,7 +40,7 @@ typedef struct { /* Message sub board info */
post_sem[LEN_DIR+1], /* Semaphore file for this sub */
tagline[81], /* Optional QWK net tag line */
newsgroup[LEN_DIR+1]; /* Newsgroup name */
char area_tag[FIDO_AREATAG_LEN+1];
char area_tag[41];
uchar ar[LEN_ARSTR+1],
read_ar[LEN_ARSTR+1],
post_ar[LEN_ARSTR+1],
......@@ -73,7 +73,7 @@ typedef struct { /* Message group info */
typedef struct { /* Transfer Directory Info */
char code[LEN_EXTCODE+1]; /* Internal code (with optional lib prefix) */
char code_suffix[LEN_CODE+1]; /* Eight character code suffix */
char area_tag[FIDO_AREATAG_LEN+1];
char area_tag[41];
char lname[LEN_SLNAME+1], /* Long name - used for listing */
sname[LEN_SSNAME+1], /* Short name - used for prompts */
arstr[LEN_ARSTR+1], /* Access Requirements */
......
......@@ -509,9 +509,9 @@ BOOL read_msgs_cfg(scfg_t* cfg, char* error, size_t maxerrlen)
get_int(cfg->sub[i]->pmode,instream);
get_int(cfg->sub[i]->n_pmode,instream);
get_str(cfg->sub[i]->area_tag, instream);
for(j=0;j<4;j++)
get_int(n,instream);
}
get_int(c,instream);
get_int(n,instream);
}
cfg->total_subs=i;
/***********/
......
......@@ -372,8 +372,7 @@ BOOL read_file_cfg(scfg_t* cfg, char* error, size_t maxerrlen)
get_int(cfg->dir[i]->up_pct,instream);
get_int(cfg->dir[i]->dn_pct,instream);
get_str(cfg->dir[i]->area_tag,instream);
get_int(c,instream);
for(j=0;j<6;j++)
for(j=0;j<4;j++)
get_int(n,instream);
}
......
......@@ -318,7 +318,7 @@ BOOL write_msgs_cfg(scfg_t* cfg, int backup_level)
{
char str[MAX_PATH+1],c;
char dir[LEN_DIR+1]="";
int i,j,k,file;
int i,j,file;
uint16_t n;
int32_t l;
FILE *stream;
......@@ -431,8 +431,8 @@ BOOL write_msgs_cfg(scfg_t* cfg, int backup_level)
put_int(cfg->sub[i]->n_pmode,stream);
put_str(cfg->sub[i]->area_tag, stream);
n=0;
for(k=0;k<4;k++)
put_int(n,stream);
put_int(c,stream);
put_int(n,stream);
if(all_msghdr || (cfg->sub[i]->misc&SUB_HDRMOD && !no_msghdr)) {
if(!cfg->sub[i]->data_dir[0])
......@@ -841,10 +841,8 @@ BOOL write_file_cfg(scfg_t* cfg, int backup_level)
put_int(cfg->dir[i]->up_pct, stream);
put_int(cfg->dir[i]->dn_pct, stream);
put_str(cfg->dir[i]->area_tag, stream);
c = 0;
put_int(c, stream);
n = 0xffff;
for (k = 0; k < 6; k++)
for (k = 0; k < 4; k++)
put_int(n, stream);
}
}
......