static int xml_new_gid(ACL_VSTREAM *client, int keep_alive, ACL_XML_NODE *node) { acl_int64 gid; char buf[256], tag[64]; const char *ptr; int errnum = 0; #define STR acl_vstring_str ACL_SAFE_STRNCPY(tag, "default:", sizeof(tag)); ptr = acl_xml_getElementAttrVal(node, "tag"); if (ptr && *ptr) { ACL_SAFE_STRNCPY(tag, ptr, sizeof(tag)); } gid = gid_next(var_cfg_gid_path, tag, var_cfg_gid_step, &errnum); if (gid >= 0) snprintf(buf, sizeof(buf), "<respond status='ok' gid='%lld' tag='%s' />\r\n", gid, tag); else snprintf(buf, sizeof(buf), "<respond status='error' gid='%lld' tag='%s'" " err='%d' msg='%s' />\r\n", gid, tag, errnum, gid_serror(errnum)); return (http_server_send_respond(client, 200, keep_alive, buf, (int) strlen(buf))); }
const char* xml_node::attr_value(const char* name) const { return acl_xml_getElementAttrVal(node_, name); }