|
Open SCAP Library
|
sql probe More...
#include <seap.h>#include <probe-api.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <common/assume.h>#include <common/debug_priv.h>#include <common/bfind.h>#include <time.h>#include <errno.h>#include <opendbx/api.h>Data Structures | |
| struct | dbEngineMap_t |
| struct | dbURIInfo_t |
Defines | |
| #define | SQLPROBE_DEFAULT_CONNTIMEOUT 30 |
| #define | ENGINE_MAP_COUNT (sizeof engine_map / sizeof (dbEngineMap_t)) |
| #define | skipspace(s) while (isspace(*s)) ++s; |
| #define | matchitem1(tok, first, rest, dst) |
| #define | matchitem2(tok, first, rest1, dst1, rest2, dst2) |
| #define | get_string(dst, obj, ent_name) |
Functions | |
| void * | probe_init (void) |
| void | probe_fini (void *arg) |
| int | probe_main (probe_ctx *ctx, void *arg) |
Variables | |
| dbEngineMap_t | engine_map [] |
sql probe
| #define get_string | ( | dst, | |
| obj, | |||
| ent_name | |||
| ) |
do { \ SEXP_t *__sval; \ \ __sval = probe_obj_getentval (obj, #ent_name, 1); \ \ if (__sval == NULL) { \ dE("Missing entity or value: obj=%p, ent=%s\n", obj, #ent_name); \ err = PROBE_ENOENT; \ goto __exit; \ } \ \ (dst) = SEXP_string_cstr (__sval); \ \ if ((dst) == NULL) { \ SEXP_free(__sval); \ err = PROBE_EINVAL; \ goto __exit; \ } \ \ SEXP_free(__sval); \ } while (0)
| #define matchitem1 | ( | tok, | |
| first, | |||
| rest, | |||
| dst | |||
| ) |
case first: \ if (strcasecmp((rest), ++(tok)) == 0) { \ tok += strlen(rest); \ skipspace(tok); \ if (*(tok) != '=') goto __fail; \ else (dst) = strdup((tok) + 1); \ } \ while(0)
| #define matchitem2 | ( | tok, | |
| first, | |||
| rest1, | |||
| dst1, | |||
| rest2, | |||
| dst2 | |||
| ) |
case first: \ if (strcasecmp((rest1), (tok)+1) == 0) { \ tok += 1+strlen(rest1); \ skipspace(tok); \ if (*(tok) != '=') goto __fail; \ else (dst1) = strdup((tok) + 1); \ } \ else if (strcasecmp((rest2), (tok)+1) == 0) { \ tok += 1+strlen(rest2); \ skipspace(tok); \ if (*(tok) != '=') goto __fail; \ else (dst2) = strdup((tok) + 1); \ } \ while(0)
| dbEngineMap_t engine_map[] |
{
{ "access", NULL },
{ "db2", NULL },
{ "cache", NULL },
{ "firebird", "firebird" },
{ "firstsql", NULL },
{ "foxpro", NULL },
{ "informix", NULL },
{ "ingres", NULL },
{ "interbase", NULL },
{ "lightbase", NULL },
{ "maxdb", NULL },
{ "monetdb", NULL },
{ "mimer", NULL },
{ "mssql", "mssql" },
{ "mysql", "mysql" },
{ "oracle", "oracle" },
{ "paradox", NULL },
{ "pervasive", NULL },
{ "postgre", "pgsql" },
{ "sqlbase", NULL },
{ "sqlite", "sqlite" },
{ "sqlite3", "sqlite3" },
{ "sqlserver", NULL },
{ "sybase", "sybase" }
}
1.7.4