Browse code

clcb_sigload: - don't skip sdb - skip cbc - retrieve proper db name for md5 sigs

aCaB authored on 2010/08/11 19:07:52
Showing 1 changed files
... ...
@@ -903,7 +903,7 @@ static int cli_loadndb(FILE *fs, struct cl_engine *engine, unsigned int *signo,
903 903
 	if(engine->ignored && cli_chkign(engine->ignored, virname, buffer_cpy))
904 904
 	    continue;
905 905
 
906
-	if(engine->cb_sigload && engine->cb_sigload("ndb", virname, engine->cb_sigload_ctx)) {
906
+	if(!sdb && engine->cb_sigload && engine->cb_sigload("ndb", virname, engine->cb_sigload_ctx)) {
907 907
 	    cli_dbgmsg("cli_loadndb: skipping %s due to callback\n", virname);
908 908
 	    continue;
909 909
 	}
... ...
@@ -1213,6 +1213,7 @@ static int load_oneldb(char *buffer, int chkpua, int chkign, struct cl_engine *e
1213 1213
 
1214 1214
     if(engine->cb_sigload && engine->cb_sigload("ldb", virname, engine->cb_sigload_ctx)) {
1215 1215
 	cli_dbgmsg("cli_loadldb: skipping %s due to callback\n", virname);
1216
+	(*sigs)--;
1216 1217
 	return CL_SUCCESS;
1217 1218
     }
1218 1219
 
... ...
@@ -1417,6 +1418,12 @@ static int cli_loadcbc(FILE *fs, struct cl_engine *engine, unsigned int *signo,
1417 1417
     if(!(engine->dconf->bytecode & BYTECODE_ENGINE_MASK)) {
1418 1418
 	return CL_SUCCESS;
1419 1419
     }
1420
+
1421
+    if(engine->cb_sigload && engine->cb_sigload("cbc", dbname, engine->cb_sigload_ctx)) {
1422
+	cli_dbgmsg("cli_loadcbc: skipping %s due to callback\n", dbname);
1423
+	return CL_SUCCESS;
1424
+    }
1425
+
1420 1426
 #ifndef CL_BCUNSIGNED
1421 1427
     if (!(options & CL_DB_SIGNED)) {
1422 1428
 	cli_warnmsg("Only loading signed bytecode, skipping load of unsigned bytecode!\n");
... ...
@@ -1931,9 +1938,16 @@ static int cli_loadmd5(FILE *fs, struct cl_engine *engine, unsigned int *signo,
1931 1931
 	if(engine->ignored && cli_chkign(engine->ignored, pt, buffer_cpy))
1932 1932
 	    continue;
1933 1933
 
1934
-	if(engine->cb_sigload && engine->cb_sigload("md5", pt, engine->cb_sigload_ctx)) {
1935
-	    cli_dbgmsg("cli_loadmd5: skipping %s due to callback\n", pt);
1936
-	    continue;
1934
+	if(engine->cb_sigload) {
1935
+	    const char *dot = strchr(dbname, '.');
1936
+	    if(!dot)
1937
+		dot = dbname;
1938
+	    else
1939
+		dot++;
1940
+	    if(engine->cb_sigload(dot, pt, engine->cb_sigload_ctx)) {
1941
+		cli_dbgmsg("cli_loadmd5: skipping %s due to callback\n", pt);
1942
+	        continue;
1943
+	    }
1937 1944
 	}
1938 1945
 
1939 1946
 	new = (struct cli_md5m_patt *) mpool_calloc(engine->mempool, 1, sizeof(struct cli_md5m_patt));