/*
* Soft Fail, more info see README, COPYRIGHT and CHANGELOG files
*/
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <mysql/mysql.h>
#include "softfail.h"
void usage() {
fprintf(stderr, "Valid usage options are:\n");
fprintf(stderr, "-b\tDelete all entries auto-blacklisted.\n");
fprintf(stderr, "-f\tDelete all entries auto inserted.\n");
fprintf(stderr, "-h\tThis help.\n\n");
fprintf(stderr, "or run the command without options at all to delete\n");
fprintf(stderr, "all automatically added entries older than %d days.\n",
MAXDAYSAUTOBLACKINDB);
}
int main(int argc, char **argv) {
MYSQL *mysql;
MYSQL_RES *res;
char sqlquery[SQLCMDSIZE];
int c;
mysql = mysql_init(NULL);
// open mysql connection
if (!mysql_real_connect(mysql,MYSQLSERVER,MYSQLUSER,MYSQLPASSWORD,MYSQLDB,0,NULL,0)) {
fprintf(stderr, "rotate-softfail-db err: %s\n", mysql_error(mysql));
exit(-1);
}
sprintf(sqlquery, "repair table softfail"); // prepare the query
if (mysql_query(mysql, sqlquery)) {
fprintf(stderr, "rotate-softfail-db err: %s\n", mysql_error(mysql));
exit(-1);
} else {
res = mysql_store_result(mysql);
mysql_free_result(res);
}
// Now we prepare for default.
sprintf(sqlquery, "delete from softfail where ( (create_time < (NOW() - INTERVAL %d DAY)) AND (block_expires='9999-12-31 23:59:59') AND (record_expires='9999-12-31 23:59:59') AND (origin_type='AUTO') )",MAXDAYSAUTOBLACKINDB);
while ((c = getopt (argc, argv, "bfh")) != -1)
switch (c) {
case 'b':
sprintf(sqlquery, "delete from softfail where ((block_expires='9999-12-31 23:59:59') AND (record_expires='9999-12-31 23:59:59') AND (origin_type='AUTO'))");
break;
case 'f':
sprintf(sqlquery, "delete from softfail where origin_type='AUTO'");
break;
case 'h':
usage();
exit(0);
case '?':
if (isprint (optopt)) {
fprintf(stderr, "Unknown option `-%c'.\n", optopt);
usage();
} else {
fprintf(stderr,"Unknown option character `\\x%x'.\n",optopt);
usage();
}
return 1;
default:
break;
}
if (mysql_query(mysql, sqlquery)) {
fprintf(stderr, "rotate-softfail-db err: %s\n", mysql_error(mysql));
exit(-1);
} else {
res = mysql_store_result(mysql);
mysql_free_result(res);
}
mysql_close(mysql); // close mysql connection
//fprintf(stderr,"sqlquery: %s\n",sqlquery);
exit(0);
}
syntax highlighted by Code2HTML, v. 0.9.1