Skip to content
Snippets Groups Projects
Commit 8940bde7 authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Increase FidoNet echo/area tag max length from 35 to 40/50 chars

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.
parent 55041d65
No related branches found
No related tags found
1 merge request!463MRC mods by Codefenix (2024-10-20)
Pipeline #2422 passed
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
#define FIDO_PASS_LEN 8 /* May NOT include '\0' terminator */ #define FIDO_PASS_LEN 8 /* May NOT include '\0' terminator */
#define FIDO_DOMAIN_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_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_ECHO_TITLE_LEN 55 // Brief echo description, per echobase.hlp
#define FIDO_ORIGIN_PREFIX_LEN 12 /* Includes new-line character */ #define FIDO_ORIGIN_PREFIX_LEN 12 /* Includes new-line character */
......
...@@ -1241,7 +1241,7 @@ void dir_cfg(uint libnum) ...@@ -1241,7 +1241,7 @@ void dir_cfg(uint libnum)
; ;
SAFECOPY(str, cfg.dir[i]->area_tag); SAFECOPY(str, cfg.dir[i]->area_tag);
if(uifc.input(WIN_L2R|WIN_SAV,0,17,"FidoNet File Echo 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); SAFECOPY(cfg.dir[i]->area_tag, str);
break; break;
case 4: case 4:
......
...@@ -40,7 +40,7 @@ typedef struct { /* Message sub board info */ ...@@ -40,7 +40,7 @@ typedef struct { /* Message sub board info */
post_sem[LEN_DIR+1], /* Semaphore file for this sub */ post_sem[LEN_DIR+1], /* Semaphore file for this sub */
tagline[81], /* Optional QWK net tag line */ tagline[81], /* Optional QWK net tag line */
newsgroup[LEN_DIR+1]; /* Newsgroup name */ newsgroup[LEN_DIR+1]; /* Newsgroup name */
char area_tag[FIDO_AREATAG_LEN+1]; char area_tag[41];
uchar ar[LEN_ARSTR+1], uchar ar[LEN_ARSTR+1],
read_ar[LEN_ARSTR+1], read_ar[LEN_ARSTR+1],
post_ar[LEN_ARSTR+1], post_ar[LEN_ARSTR+1],
...@@ -73,7 +73,7 @@ typedef struct { /* Message group info */ ...@@ -73,7 +73,7 @@ typedef struct { /* Message group info */
typedef struct { /* Transfer Directory Info */ typedef struct { /* Transfer Directory Info */
char code[LEN_EXTCODE+1]; /* Internal code (with optional lib prefix) */ char code[LEN_EXTCODE+1]; /* Internal code (with optional lib prefix) */
char code_suffix[LEN_CODE+1]; /* Eight character code suffix */ 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 */ char lname[LEN_SLNAME+1], /* Long name - used for listing */
sname[LEN_SSNAME+1], /* Short name - used for prompts */ sname[LEN_SSNAME+1], /* Short name - used for prompts */
arstr[LEN_ARSTR+1], /* Access Requirements */ arstr[LEN_ARSTR+1], /* Access Requirements */
......
...@@ -509,9 +509,9 @@ BOOL read_msgs_cfg(scfg_t* cfg, char* error, size_t maxerrlen) ...@@ -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]->pmode,instream);
get_int(cfg->sub[i]->n_pmode,instream); get_int(cfg->sub[i]->n_pmode,instream);
get_str(cfg->sub[i]->area_tag, instream); get_str(cfg->sub[i]->area_tag, instream);
for(j=0;j<4;j++) get_int(c,instream);
get_int(n,instream); get_int(n,instream);
} }
cfg->total_subs=i; cfg->total_subs=i;
/***********/ /***********/
......
...@@ -372,8 +372,7 @@ BOOL read_file_cfg(scfg_t* cfg, char* error, size_t maxerrlen) ...@@ -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]->up_pct,instream);
get_int(cfg->dir[i]->dn_pct,instream); get_int(cfg->dir[i]->dn_pct,instream);
get_str(cfg->dir[i]->area_tag,instream); get_str(cfg->dir[i]->area_tag,instream);
get_int(c,instream); for(j=0;j<4;j++)
for(j=0;j<6;j++)
get_int(n,instream); get_int(n,instream);
} }
......
...@@ -318,7 +318,7 @@ BOOL write_msgs_cfg(scfg_t* cfg, int backup_level) ...@@ -318,7 +318,7 @@ BOOL write_msgs_cfg(scfg_t* cfg, int backup_level)
{ {
char str[MAX_PATH+1],c; char str[MAX_PATH+1],c;
char dir[LEN_DIR+1]=""; char dir[LEN_DIR+1]="";
int i,j,k,file; int i,j,file;
uint16_t n; uint16_t n;
int32_t l; int32_t l;
FILE *stream; FILE *stream;
...@@ -431,8 +431,8 @@ BOOL write_msgs_cfg(scfg_t* cfg, int backup_level) ...@@ -431,8 +431,8 @@ BOOL write_msgs_cfg(scfg_t* cfg, int backup_level)
put_int(cfg->sub[i]->n_pmode,stream); put_int(cfg->sub[i]->n_pmode,stream);
put_str(cfg->sub[i]->area_tag, stream); put_str(cfg->sub[i]->area_tag, stream);
n=0; n=0;
for(k=0;k<4;k++) put_int(c,stream);
put_int(n,stream); put_int(n,stream);
if(all_msghdr || (cfg->sub[i]->misc&SUB_HDRMOD && !no_msghdr)) { if(all_msghdr || (cfg->sub[i]->misc&SUB_HDRMOD && !no_msghdr)) {
if(!cfg->sub[i]->data_dir[0]) if(!cfg->sub[i]->data_dir[0])
...@@ -841,10 +841,8 @@ BOOL write_file_cfg(scfg_t* cfg, int backup_level) ...@@ -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]->up_pct, stream);
put_int(cfg->dir[i]->dn_pct, stream); put_int(cfg->dir[i]->dn_pct, stream);
put_str(cfg->dir[i]->area_tag, stream); put_str(cfg->dir[i]->area_tag, stream);
c = 0;
put_int(c, stream);
n = 0xffff; n = 0xffff;
for (k = 0; k < 6; k++) for (k = 0; k < 4; k++)
put_int(n, stream); put_int(n, stream);
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment