projects
/
citadel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6ea59f0
)
Convert a room name to ctdl.xx.xx style newsgroup name if no dots appear at all
author
Art Cancro
<ajc@uncensored.citadel.org>
Sun, 27 Apr 2014 19:09:12 +0000
(15:09 -0400)
committer
Art Cancro
<ajc@uncensored.citadel.org>
Sun, 27 Apr 2014 19:09:12 +0000
(15:09 -0400)
citadel/modules/nntp/serv_nntp.c
patch
|
blob
|
history
diff --git
a/citadel/modules/nntp/serv_nntp.c
b/citadel/modules/nntp/serv_nntp.c
index db3e1dc22d6afe9f7db612f30e4af373ab4ccbbf..1e686d3bc1cc92b53299c66af109333f2507a74d 100644
(file)
--- 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 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);
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;
}
has_a_letter = 1;
}
+ if (ptr[0] == '.') {
+ ++num_dots;
+ }
+
if ( (isalnum(ptr[0]))
|| (ptr[0] == '.')
|| (ptr[0] == '+')
if ( (isalnum(ptr[0]))
|| (ptr[0] == '.')
|| (ptr[0] == '+')
@@
-95,7
+100,7
@@
int is_valid_newsgroup_name(char *name) {
return(0);
}
}
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 == '-')
) {
|| (ch == '.')
|| (ch == '-')
) {
- target[len++] =
ch
;
+ target[len++] =
tolower(ch)
;
target[len] = 0;
}
else {
target[len] = 0;
}
else {