summaryrefslogtreecommitdiffstats
path: root/eurephiadm
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2009-09-21 21:39:18 +0200
committerDavid Sommerseth <dazo@users.sourceforge.net>2009-09-21 21:39:18 +0200
commit5b0b63ab816ce0cfd01b851efee3ffdadd644eae (patch)
tree4f2e7c39b8f2e0247c36a5c2d5754e604c82df04 /eurephiadm
parent69c7a7552a3019ce4f412f2e00f5293e83edb2e5 (diff)
downloadeurephia-5b0b63ab816ce0cfd01b851efee3ffdadd644eae.tar.gz
eurephia-5b0b63ab816ce0cfd01b851efee3ffdadd644eae.tar.xz
eurephia-5b0b63ab816ce0cfd01b851efee3ffdadd644eae.zip
Rewritten eurephiadm users command to use eurephiaXML_ParseResultMsg()
Diffstat (limited to 'eurephiadm')
-rw-r--r--eurephiadm/commands/users.c30
1 files changed, 21 insertions, 9 deletions
diff --git a/eurephiadm/commands/users.c b/eurephiadm/commands/users.c
index d024c00..18d8101 100644
--- a/eurephiadm/commands/users.c
+++ b/eurephiadm/commands/users.c
@@ -403,6 +403,7 @@ int show_user(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int
int account_activation(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int argc, char **argv) {
xmlDoc *user_xml = NULL, *update_xml = NULL, *srch_xml = NULL, *tmp_xml = NULL;
xmlNode *user_n = NULL, *update_n = NULL, *srch_root = NULL, *tmp_n = NULL;
+ eurephiaRESULT *res = NULL;
char *uid_str = NULL, *activated = NULL, *deactivated = NULL, *actmode_str = NULL, *newpwd = NULL;
int i, actmode = 0, rc = 0, crit_set = 0;
@@ -615,17 +616,24 @@ int account_activation(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *
fprintf(stderr, "%s: Failed to remove the user-certs link\n", MODULE);
}
- tmp_n = eurephiaXML_getRoot(ctx, tmp_xml, NULL, 1);
- if( xmlStrcmp(tmp_n->name, (xmlChar *) "Error") == 0 ) {
- fprintf(stderr, "%s: %s\n", MODULE, xmlExtractContent(tmp_n));
- rc = 0;
+ res = eurephiaXML_ParseResultMsg(ctx, tmp_xml);
+ if( res == NULL ) {
+ fprintf(stderr, "%s: Failed to remove user <-> certificate link. "
+ "No results received\n", MODULE);
+ rc = 0;
+ } else {
+ if( res->resultType == exmlERROR ) {
+ fprintf(stderr, "%s: %s\n", MODULE, res->message);
+ };
+ rc = 1;
+ free_nullsafe(ctx, res);
}
xmlFreeDoc(tmp_xml);
break;
}
if( rc == 1 ) {
- printf("User account is %s\n", actmode_str);
+ printf("%s: User account is %s\n", MODULE, actmode_str);
} else {
fprintf(stderr, "%s: Operation failed\n", MODULE);
}
@@ -871,7 +879,8 @@ int add_user(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int a
// If we have a certificate id, register a certificate link to the user account
if( (certid > 0) && (uid > 0) ) {
xmlDoc *usercert_xml = NULL, *res_xml = NULL;
- xmlNode *usercert_n = NULL, *res_n = NULL;
+ xmlNode *usercert_n = NULL;
+ eurephiaRESULT *res = NULL;
xmlChar tmp[66];
memset(&tmp, 0, 66);
@@ -893,9 +902,12 @@ int add_user(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int a
goto exit;
}
- res_n = eurephiaXML_getRoot(ctx, res_xml, NULL, 1);
- if( xmlStrcmp(res_n->name, (xmlChar *) "Error") == 0 ) {
- fprintf(stderr, "%s: %s\n", MODULE, xmlExtractContent(res_n));
+ res = eurephiaXML_ParseResultMsg(ctx, res_xml);
+ if( res == NULL ) {
+ fprintf(stderr, "%s: Failed to register user <-> certificate link. "
+ "No results received\n", MODULE);
+ } else if( res->resultType == exmlERROR ) {
+ fprintf(stderr, "%s: %s\n", MODULE, res->message);
}
xmlFreeDoc(res_xml);
}