45const char *
issub(
const char *dbname,
const char *
userhost,
const char *tab)
58 if (j ==
addr.len)
return (
char *) 0;
59 case_lowerb(
addr.s + j + 1,
addr.len - j - 1);
61 case_lowerb(lcaddr.s + 1,j - 1);
65 for (j = 0; j <
addr.len; ++j) {
66 h = (h + (h << 5)) ^ (uint32) (
unsigned char)
addr.s[j];
67 lch = (lch + (lch << 5)) ^ (uint32) (
unsigned char) lcaddr.s[j];
70 lcch = 64 + (lch % 53);
75 if (!stralloc_cats(&
fn,
"/subscribers/"))
die_nomem();
87 if (getln(&
bi,&line,&
match,
'\0') == -1)
90 if (line.len == lcaddr.len)
91 if (!case_diffb(line.s,line.len,lcaddr.s))
92 { close(
fd);
return line.s + 1; }
99 if (ch == lcch)
return (
char *) 0;
102 fn.s[
fn.len - 2] = ch;
103 fd = open_read(
fn.s);
112 if (getln(&
bi,&line,&
match,
'\0') == -1)
115 if (line.len ==
addr.len)
116 if (!case_diffb(line.s,line.len,
addr.s))
117 { close(
fd);
return line.s + 1; }
const char * logmsg(const char *dir, unsigned long num, unsigned long listno, unsigned long subs, int done)