summaryrefslogtreecommitdiffstats
path: root/eurephiadm
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2008-12-22 12:37:48 +0100
committerDavid Sommerseth <dazo@users.sourceforge.net>2008-12-22 12:37:48 +0100
commited084c0dedcc0a8a24b9f2e37fdf79f73a27b6fb (patch)
tree6f1d1aee3bae8516351e45ece57e23880f8c8455 /eurephiadm
parent27c831c4997f045449c65851ca7a09878b02a7ee (diff)
downloadeurephia-ed084c0dedcc0a8a24b9f2e37fdf79f73a27b6fb.tar.gz
eurephia-ed084c0dedcc0a8a24b9f2e37fdf79f73a27b6fb.tar.xz
eurephia-ed084c0dedcc0a8a24b9f2e37fdf79f73a27b6fb.zip
sqlite3 - Return uid or certid of newly registered users or certificates
Diffstat (limited to 'eurephiadm')
-rw-r--r--eurephiadm/commands/certificates.c16
-rw-r--r--eurephiadm/commands/users.c13
2 files changed, 18 insertions, 11 deletions
diff --git a/eurephiadm/commands/certificates.c b/eurephiadm/commands/certificates.c
index 40e24d1..a4b07cd 100644
--- a/eurephiadm/commands/certificates.c
+++ b/eurephiadm/commands/certificates.c
@@ -166,7 +166,7 @@ int register_certificate(eurephiaCTX *ctx, int depth, const char *digest,
xmlDoc *cert_xml = NULL;
xmlNode *cert_n = NULL;
char tmp[66], *cname_cp = NULL, *org_cp = NULL;
- int rc = 0;
+ int certid = 0;
assert( ctx != NULL );
@@ -189,14 +189,17 @@ int register_certificate(eurephiaCTX *ctx, int depth, const char *digest,
xmlNewChild(cert_n, NULL, (xmlChar *) "email", (xmlChar *) email);
// Register the certificate
- rc = eDBadminAddCertificate(ctx, cert_xml);
- fprintf(stdout, "%s: %s\n", MODULE,
- (rc == 1 ? "Certificate registered successfully" : "Failed to register certificate"));
+ certid = eDBadminAddCertificate(ctx, cert_xml);
+ if( certid > 0 ) {
+ fprintf(stdout, "%s: Certificate registered successfully (certid %i)\n", MODULE, certid);
+ } else {
+ fprintf(stderr, "%s: Failed to register certificate\n", MODULE);
+ }
xmlFreeDoc(cert_xml);
free_nullsafe(cname_cp);
free_nullsafe(org_cp);
- return (rc != 1);
+ return certid;
}
int add_cert(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int argc, char **argv) {
@@ -332,7 +335,8 @@ int add_cert(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int a
}
#endif
- rc = register_certificate(ctx, depth, digest, cname, org, email);
+ // register_certificate returns value < 1, it means registration failed => rc = 1
+ rc = (register_certificate(ctx, depth, digest, cname, org, email) < 1);
exit:
free_nullsafe(digest);
free_nullsafe(cname);
diff --git a/eurephiadm/commands/users.c b/eurephiadm/commands/users.c
index 26d5eb7..d9d856d 100644
--- a/eurephiadm/commands/users.c
+++ b/eurephiadm/commands/users.c
@@ -720,7 +720,7 @@ int add_user(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int a
xmlDoc *user_xml = NULL;
xmlNode *node = NULL, *node2 = NULL;
struct stat cert_stat;
- int i = 0, certid = 0, rc = 0;
+ int i = 0, certid = 0, uid = 0;
char *uname = NULL, *passwd = NULL, *certfile = NULL, *digest = NULL;
e_options addu_args[] = {
@@ -851,16 +851,19 @@ int add_user(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int a
xmlNewProp(node2, (xmlChar *) "pwhash", (xmlChar *) "none");
// Add the user
- rc = eDBadminAddUser(ctx, user_xml);
- fprintf(stdout, "%s: %s\n", MODULE,
- (rc == 1 ? "User registered successfully" : "Failed to register user"));
+ uid = eDBadminAddUser(ctx, user_xml);
+ if( uid > 0 ) {
+ fprintf(stdout, "%s: User registered successfully (user id %i)\n", MODULE, uid);
+ } else {
+ fprintf(stderr, "%s: Failed to register user\n", MODULE);
+ }
memset(passwd, 0, strlen_nullsafe(passwd));
free_nullsafe(passwd);
xmlFreeDoc(user_xml);
// FIXME: Register certificate info
- return (rc != 1);
+ return (uid > 0);
}