diff options
| author | David Sommerseth <davids@redhat.com> | 2009-05-06 20:30:48 +0200 |
|---|---|---|
| committer | David Sommerseth <davids@redhat.com> | 2009-05-06 20:30:48 +0200 |
| commit | 5611c22c92cefb2e9c86d20a98ed4680e5b813ed (patch) | |
| tree | 9bf9f81898b288e5396953bb9c2e5ea72409853c /database | |
| parent | 75f1e6f6b12f9fe461e4afa5bf3c998d21d48394 (diff) | |
| download | eurephia-5611c22c92cefb2e9c86d20a98ed4680e5b813ed.tar.gz eurephia-5611c22c92cefb2e9c86d20a98ed4680e5b813ed.tar.xz eurephia-5611c22c92cefb2e9c86d20a98ed4680e5b813ed.zip | |
Renamed fieldmapping for 'attempts' to 'attemptslog'
Also made the result XML from eDBadminAttemptsLog(...) more efficient
by not adding the username/certificate/ipaddress group tags if the
information is not present.
Diffstat (limited to 'database')
| -rw-r--r-- | database/eurephiadb_mapping.c | 2 | ||||
| -rw-r--r-- | database/eurephiadb_mapping.h | 1 | ||||
| -rw-r--r-- | database/sqlite/administration.c | 6 | ||||
| -rw-r--r-- | database/sqlite/attempts.c | 19 |
4 files changed, 18 insertions, 10 deletions
diff --git a/database/eurephiadb_mapping.c b/database/eurephiadb_mapping.c index a4cb095..a62bd2b 100644 --- a/database/eurephiadb_mapping.c +++ b/database/eurephiadb_mapping.c @@ -40,7 +40,7 @@ const char *TABLE_NAME[] = { "certificates", "usercerts", "lastlog", - "attempts", + "attemptslog", "blacklist", "eurephia_adminaccess", "firewall_profiles", diff --git a/database/eurephiadb_mapping.h b/database/eurephiadb_mapping.h index 4421c68..da09f64 100644 --- a/database/eurephiadb_mapping.h +++ b/database/eurephiadb_mapping.h @@ -129,6 +129,7 @@ static eDBfieldMap eTblMap_lastlog[] = { static eDBfieldMap eTblMap_attempts[] = { {TABLE_ATTEMPTS, NULL, FIELD_UNAME, ft_STRING, flt_EQ, "username", NULL, NULL}, {TABLE_ATTEMPTS, NULL, FIELD_REMOTEIP, ft_STRING, flt_EQ, "ip", NULL, NULL}, + {TABLE_ATTEMPTS, NULL, FIELD_CERTDIGEST, ft_STRING, flt_EQ, "digest", NULL, NULL}, {TABLE_ATTEMPTS, NULL, FIELD_ATTEMPTS, ft_INT, flt_EQ, "attempts", NULL, NULL}, {TABLE_ATTEMPTS, NULL, FIELD_REGISTERED, ft_DATETIME, flt_EQ, "registered", NULL, NULL}, {TABLE_ATTEMPTS, NULL, FIELD_LASTATTEMPT, ft_DATETIME, flt_EQ, "lastattempt", NULL, NULL}, diff --git a/database/sqlite/administration.c b/database/sqlite/administration.c index 6def2e8..e75dccd 100644 --- a/database/sqlite/administration.c +++ b/database/sqlite/administration.c @@ -1565,11 +1565,11 @@ xmlDoc *eDBadminGetLastlog(eurephiaCTX *ctx, xmlDoc *srch, const char *sortkeys) // The search XML document format is: // <eurephia format="1"> -// <attempts mode="{search|add|delete}"> +// <attemptslog mode="{search|add|delete}"> // <fieldMapping table="attempts"> // <{field name}>{field value}</{field field}> // </fieldMapping> -// </attempts> +// </attemptslog> // </eurehpia> // // It can be several search field tags to limit the search even more. @@ -1593,7 +1593,7 @@ xmlDoc *eDBadminAttemptsLog(eurephiaCTX *ctx, xmlDoc *qryxml) { return NULL; } - root_n = eurephiaXML_getRoot(ctx, qryxml, "attempts", 1); + root_n = eurephiaXML_getRoot(ctx, qryxml, "attemptslog", 1); if( root_n == NULL ) { eurephia_log(ctx, LOG_CRITICAL, 0, "Invalid XML input."); return NULL; diff --git a/database/sqlite/attempts.c b/database/sqlite/attempts.c index 7e8e95b..4afd981 100644 --- a/database/sqlite/attempts.c +++ b/database/sqlite/attempts.c @@ -65,24 +65,31 @@ xmlDoc *attempts_list(eurephiaCTX *ctx, eDBfieldMap *fmap) { return 0; } - eurephiaXML_CreateDoc(ctx, 1, "attempts", &doc, &root_n); + eurephiaXML_CreateDoc(ctx, 1, "attemptslog", &doc, &root_n); xmlNewProp(root_n, (xmlChar *) "mode", (xmlChar *) "list"); - uname_n = xmlNewChild(root_n, NULL, (xmlChar *) "username", NULL); - cert_n = xmlNewChild(root_n, NULL, (xmlChar *) "certificate", NULL); - remip_n = xmlNewChild(root_n, NULL, (xmlChar *) "ipaddress", NULL); - assert( (uname_n != NULL) && (cert_n != NULL) && (remip_n != NULL) ); - for( i = 0; i < sqlite_get_numtuples(res); i++ ) { xmlNode *atmpt_n = NULL; if( sqlite_get_value(res, i, 0) != NULL ) { // Username + if( uname_n == NULL ) { + uname_n = xmlNewChild(root_n, NULL, (xmlChar *) "username", NULL); + assert( uname_n != NULL ); + } atmpt_n = xmlNewChild(uname_n, NULL, (xmlChar *) "attempt", NULL); sqlite_xml_value(atmpt_n, XML_NODE, "username", res, i, 0); } else if( sqlite_get_value(res, i, 1) != NULL ) { // Digest + if( cert_n == NULL ) { + cert_n = xmlNewChild(root_n, NULL, (xmlChar *) "certificate", NULL); + assert( cert_n != NULL ); + } atmpt_n = xmlNewChild(cert_n, NULL, (xmlChar *) "attempt", NULL); sqlite_xml_value(atmpt_n, XML_NODE, "certificate", res, i, 1); } else if( sqlite_get_value(res, i, 2) != NULL ) { // IP address + if( remip_n == NULL ) { + remip_n = xmlNewChild(root_n, NULL, (xmlChar *) "ipaddress", NULL); + assert( remip_n != NULL ); + } atmpt_n = xmlNewChild(remip_n, NULL, (xmlChar *) "attempt", NULL); sqlite_xml_value(atmpt_n, XML_NODE, "ipaddress", res, i, 2); } else { |
