/* * Soft Fail, more info see README, COPYRIGHT and CHANGELOG files */ #include #include #include #include #include #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); }