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);
has_a_letter = 1;
}
+ if (ptr[0] == '.') {
+ ++num_dots;
+ }
+
if ( (isalnum(ptr[0]))
|| (ptr[0] == '.')
|| (ptr[0] == '+')
return(0);
}
}
- return(has_a_letter);
+ return( (has_a_letter) && (num_dots >= 1) ) ;
}
|| (ch == '.')
|| (ch == '-')
) {
- target[len++] = ch;
+ target[len++] = tolower(ch);
target[len] = 0;
}
else {
cprintf("Date:\r\n");
cprintf("Message-ID:\r\n");
cprintf("References:\r\n");
- cprintf(":bytes\r\n");
- cprintf(":lines\r\n");
+ cprintf("Bytes:\r\n");
+ cprintf("Lines:\r\n");
cprintf(".\r\n");
return;
}
extract_token(which_mode, cmd, 1, ' ', sizeof which_mode);
if (!strcasecmp(which_mode, "reader")) {
- cprintf("201 Reader mode FIXME implement posting and change to 200\r\n");
+ // FIXME implement posting and change to 200
+ cprintf("201 Reader mode activated\r\n");
}
else {
cprintf("501 unknown mode\r\n");
// We don't know how to do that yet.
else if ( (lb != NULL) && (rb != NULL) && (lb < rb) ) {
must_change_currently_selected_article = 0;
- cprintf("500 FIXME I don't know how to fetch by message-id yet.\r\n");
+ cprintf("500 I don't know how to fetch by message-id yet.\r\n"); // FIXME
return;
}