From: Art Cancro Date: Sun, 27 Apr 2014 19:09:12 +0000 (-0400) Subject: Convert a room name to ctdl.xx.xx style newsgroup name if no dots appear at all X-Git-Tag: v9.01~122^2~5 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=78d67438d8eb34ece9946f1bc9c2a8410cbf166c Convert a room name to ctdl.xx.xx style newsgroup name if no dots appear at all --- diff --git a/citadel/modules/nntp/serv_nntp.c b/citadel/modules/nntp/serv_nntp.c index db3e1dc22..1e686d3bc 100644 --- a/citadel/modules/nntp/serv_nntp.c +++ b/citadel/modules/nntp/serv_nntp.c @@ -74,6 +74,7 @@ extern long timezone; int is_valid_newsgroup_name(char *name) { char *ptr = name; int has_a_letter = 0; + int num_dots = 0; if (!ptr) return(0); if (!strncasecmp(name, "ctdl.", 5)) return(0); @@ -84,6 +85,10 @@ int is_valid_newsgroup_name(char *name) { has_a_letter = 1; } + if (ptr[0] == '.') { + ++num_dots; + } + if ( (isalnum(ptr[0])) || (ptr[0] == '.') || (ptr[0] == '+') @@ -95,7 +100,7 @@ int is_valid_newsgroup_name(char *name) { return(0); } } - return(has_a_letter); + return( (has_a_letter) && (num_dots >= 1) ) ; } @@ -123,7 +128,7 @@ void room_to_newsgroup(char *target, char *source, size_t target_size) { || (ch == '.') || (ch == '-') ) { - target[len++] = ch; + target[len++] = tolower(ch); target[len] = 0; } else {