extern void add_aws_nodes ( KConfig *self ) { char home [ 4096 ] = ""; size_t num_writ; char path [ 4096 ]; rc_t rc; check_env ( self, home, sizeof home ); /* if home environtment is found, create AWS root node */ if ( home [ 0 ] != 0 ) { rc = string_printf ( path, sizeof path, &num_writ, "%s/.aws", home ); if ( rc == 0 && num_writ != 0 ) { KConfigNode *aws_node; /* create aws node */ rc = KConfigOpenNodeUpdate ( self, &aws_node, "AWS", NULL ); if ( rc == 0 ) rc = aws_find_nodes ( aws_node, path ); rc = KConfigNodeRelease ( aws_node ); } } }
static rc_t SetNode(KConfig* cfg, const Params* prm) { rc_t rc = 0; KConfigNode* node = NULL; char* name = NULL; char* val = NULL; assert(cfg && prm && prm->setValue); name = strdup(prm->setValue); if (name == NULL) { return RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted); } val = strchr(name, '='); if (val == NULL || *(val + 1) == '\0') { rc_t rc = RC(rcExe, rcArgv, rcParsing, rcParam, rcInvalid); LOGERR(klogErr, rc, "Bad " OPTION_SET " value"); } if (rc == 0) { *(val++) = '\0'; rc = KConfigOpenNodeUpdate(cfg, &node, name); if (rc != 0) { PLOGERR(klogErr, (klogErr, rc, "Cannot open node '$(name)' for update", "name=%s", name)); } } if (rc == 0) { assert(val); rc = KConfigNodeWrite(node, val, strlen(val)); if (rc != 0) { PLOGERR(klogErr, (klogErr, rc, "Cannot write value '$(val) to node '$(name)'", "val=%s,name=%s", val, name)); } } if (rc == 0) { rc = KConfigCommit(cfg); DISP_RC(rc, "while calling KConfigCommit"); } free(name); name = NULL; RELEASE(KConfigNode, node); return rc; }