From 78d67438d8eb34ece9946f1bc9c2a8410cbf166c Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Sun, 27 Apr 2014 15:09:12 -0400 Subject: [PATCH] Convert a room name to ctdl.xx.xx style newsgroup name if no dots appear at all --- citadel/modules/nntp/serv_nntp.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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 { -- 2.30.2