55 const char *table = (
char *) 0;
56 unsigned long *lengths;
60 unsigned long no = 0L;
63 const char *ret = (
char *) 0;
65 if (!flagsql || (ret =
opensql(dbname,&table))) {
66 if (flagsql && *ret)
logmsg(
WHO,111,FATAL,ret);
68 if (!stralloc_catb(&
fn,
"/subscribers/?",15))
76 fn.s[hashpos] = 64 + i;
79 if (errno != error_noent)
84 if (getln(&
bi,&line,&
match,
'\0') == -1)
96 if (!stralloc_copys(&line,
"SELECT address FROM "))
die_nomem();
97 if (!stralloc_cats(&line,table))
die_nomem();
98 if (!stralloc_cats(&line,
" WHERE hash BETWEEN "))
die_nomem();
100 if (!stralloc_cats(&line,
" AND "))
die_nomem();
103 if (mysql_real_query(
mysql,line.s,line.len))
106 if (!(result = mysql_use_result(
mysql)))
112 while ((row = mysql_fetch_row(result))) {
113 if (!(lengths = mysql_fetch_lengths(result)))
118 if (!mysql_eof(result))
121 mysql_free_result(result);
unsigned long putsubs(const char *dbname, unsigned long hash_lo, unsigned long hash_hi, int subwrite(), int flagsql)
const char * logmsg(const char *dir, unsigned long num, unsigned long listno, unsigned long subs, int done)