summaryrefslogtreecommitdiffstats
path: root/eurephiadm/commands/fwprofiles.c
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2009-09-21 19:28:43 +0200
committerDavid Sommerseth <dazo@users.sourceforge.net>2009-09-21 19:28:43 +0200
commit69c7a7552a3019ce4f412f2e00f5293e83edb2e5 (patch)
treeea612d80cf09cfc8e40e52c42413168f4dd57232 /eurephiadm/commands/fwprofiles.c
parent8fc41296cd27af9757f571627f7fd16befc9b8aa (diff)
downloadeurephia-69c7a7552a3019ce4f412f2e00f5293e83edb2e5.tar.gz
eurephia-69c7a7552a3019ce4f412f2e00f5293e83edb2e5.tar.xz
eurephia-69c7a7552a3019ce4f412f2e00f5293e83edb2e5.zip
Rewritten most of the eurephiadm commands to use eurephiaXML_ParseResultMsg()
Commands not covered yet are users and certs commands
Diffstat (limited to 'eurephiadm/commands/fwprofiles.c')
-rw-r--r--eurephiadm/commands/fwprofiles.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/eurephiadm/commands/fwprofiles.c b/eurephiadm/commands/fwprofiles.c
index 3f79017..e864dfc 100644
--- a/eurephiadm/commands/fwprofiles.c
+++ b/eurephiadm/commands/fwprofiles.c
@@ -246,7 +246,8 @@ int list_profiles(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg,
int addelete_profile(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int argc, char **argv)
{
xmlDoc *result_xml = NULL, *srch_xml = NULL;
- xmlNode *fmap_n = NULL, *res_n = NULL, *srch_n = NULL;
+ xmlNode *fmap_n = NULL, *srch_n = NULL;
+ eurephiaRESULT *res = NULL;
int i = 0, rc = 1, mode = 0;
e_options addargs[] = {
@@ -314,20 +315,21 @@ int addelete_profile(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cf
return 1;
}
- res_n = eurephiaXML_getRoot(ctx, result_xml, NULL, 1);
- if( res_n == NULL ) {
+ res = eurephiaXML_ParseResultMsg(ctx, result_xml);
+ if( res == NULL ) {
fprintf(stderr, "%s: Error registering firewall profiles. No results returned\n", MODULE);
return 1;
- }
-
- if( xmlStrcmp(res_n->name, (xmlChar *) "Error") == 0 ) {
- fprintf(stderr, "%s: %s\n", MODULE, xmlExtractContent(res_n));
- rc = 1;
} else {
- fprintf(stdout, "%s: %s\n", MODULE, xmlExtractContent(res_n));
- rc = 0;
+ if( res->resultType == exmlERROR ) {
+ fprintf(stderr, "%s: %s\n", MODULE, res->message);
+ rc = 1;
+ } else {
+ fprintf(stdout, "%s: %s\n", MODULE, res->message);
+ rc = 0;
+ }
}
+ free_nullsafe(ctx, res);
xmlFreeDoc(result_xml);
return rc;