void sim_xml_config_set_config_reputation (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { gchar *value; g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_REPUTATION)) { g_message ("Invalid config reputation node %s", node->name); return; } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FILENAME))) { config->reputation.filename = g_strdup (value); xmlFree(value); } else { config->reputation.filename = NULL; } }
void sim_xml_config_set_config_datasources (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { xmlNodePtr children; g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_DATASOURCES)) { g_message ("Invalid config datasources node %s", node->name); return; } children = node->xmlChildrenNode; while (children) { if (!strcmp ((gchar *) children->name, OBJECT_DATASOURCE)) { sim_xml_config_set_config_datasource (xmlconfig, config, children); } children = children->next; } }
void sim_xml_config_set_config_directive (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { gchar *value; g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_DIRECTIVE)) { g_message ("Invalid config directive node %s", node->name); return; } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FILENAME))) { config->directive.filename = g_strdup (value); xmlFree(value); } else { config->directive.filename = g_strdup (OS_SIM_GLOBAL_DIRECTIVE_FILE); } }
void sim_xml_config_set_config_framework (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { gchar *value; g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_FRAMEWORK)) { g_message ("Invalid sensor log node %s", node->name); return; } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_NAME))) { config->framework.name = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_IP))) { config->framework.host = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_PORT))) { config->framework.port = strtol (value, (char **) NULL, 10); xmlFree(value); } }
void sim_xml_config_set_config_log (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { gchar *value; g_return_if_fail (xmlconfig); g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (config); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_LOG)) { g_message ("Invalid config log node %s", node->name); return; } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FILENAME))) { config->log.filename = g_strdup (value); xmlFree(value); } }
void sim_xml_config_set_config_smtp (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { gchar *value; g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_SMTP)) { g_message ("Invalid config smtp node %s", node->name); return; } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_HOST))) { config->smtp.host = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_PORT))) { config->smtp.port = strtol (value, (char **) NULL, 10); xmlFree(value); } }
void sim_xml_config_set_config_rservers (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { xmlNodePtr children; g_return_if_fail (xmlconfig); g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (config); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_RSERVERS)) { g_message ("Invalid config rservers node %s", node->name); return; } children = node->xmlChildrenNode; while (children) { if (!strcmp ((gchar *) children->name, OBJECT_RSERVER)) { sim_xml_config_set_config_rserver (xmlconfig, config, children); } children = children->next; } }
void sim_xml_config_set_config_scheduler (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { gchar *value; g_return_if_fail (xmlconfig); g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (config); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_SCHEDULER)) { g_message ("Invalid config scheduler node %s", node->name); return; } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_INTERVAL))) { config->scheduler.interval = strtol (value, (char **) NULL, 10); xmlFree(value); } }
void sim_xml_config_set_config_datasource (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { SimConfigDS *ds; gchar *value; g_return_if_fail (xmlconfig); g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (config); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_DATASOURCE)) { g_message ("Invalid config datasource node %s", node->name); return; } ds = sim_config_ds_new (); if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_NAME))) { ds->name = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_PROVIDER))) { ds->provider = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_DSN))) { ds->dsn = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_LOCAL_DB))) { if (!g_ascii_strncasecmp (value, "true", 4)) ds->local_DB = TRUE; else if (!g_ascii_strncasecmp (value, "false", 4)) ds->local_DB = FALSE; else { g_message ("Error: Please put a valid value (true/false) in the Local_DB Parameter"); xmlFree(value); return; } } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_RSERVER_NAME))) { ds->rserver_name = g_strdup (value); xmlFree(value); } config->datasources = g_list_append (config->datasources, ds); }
void sim_xml_config_set_config_notifies (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { gchar *value; xmlNodePtr children; g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_NOTIFIES)) { g_message ("Invalid config notifies node %s", node->name); return; } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_PROGRAM))) { config->notify_prog = g_strdup (value); xmlFree(value); } children = node->xmlChildrenNode; while (children) { if (!strcmp ((gchar *) children->name, OBJECT_NOTIFY)) { sim_xml_config_set_config_notify (xmlconfig, config, children); } children = children->next; } }
void sim_xml_config_set_config_notify (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { SimConfigNotify *notify; gchar *emails; gchar *levels; gchar **values; gint i; g_return_if_fail (xmlconfig); g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (config); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_NOTIFY)) { g_message ("Invalid config notify node %s", node->name); return; } emails = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_EMAILS); levels = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_ALARM_RISKS); if (!emails || !levels) { if (emails) xmlFree(emails); if (levels) xmlFree(levels); return; } notify = sim_config_notify_new (); notify->emails = g_strdup (emails); values = g_strsplit (levels, SIM_DELIMITER_LIST, 0); for (i = 0; values[i] != NULL; i++) { SimAlarmRiskType risk = sim_get_alarm_risk_from_char (values[i]); if (risk != SIM_ALARM_RISK_TYPE_NONE) notify->alarm_risks = g_list_append (notify->alarm_risks, GINT_TO_POINTER (risk)); } g_strfreev (values); xmlFree (emails); xmlFree (levels); config->notifies = g_list_append (config->notifies, notify); }
void sim_xml_config_set_config_idm (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { gchar *value; g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_IDM)) { g_message ("Invalid config idm node %s", node->name); return; } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_MSSP))) { if (!g_ascii_strncasecmp (value, "true", 4)) config->idm.mssp = TRUE; else if (!g_ascii_strncasecmp (value, "false", 4)) config->idm.mssp = FALSE; else g_message ("Error: Please put a valid value (true/false) in the IDM MSSP parameter"); xmlFree (value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_IP))) { config->idm.ip = g_strdup (value); xmlFree (value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_PORT))) { config->idm.port = strtol (value, (char **) NULL, 10); xmlFree (value); } }
void sim_xml_config_set_config_max_event_tmp (SimConfig *config) { GdaDataModel *dm; GdaValue *value; gchar *query; g_return_if_fail (config); g_return_if_fail (SIM_IS_CONFIG (config)); query = g_strdup_printf ("SELECT value FROM config WHERE conf='max_event_tmp'"); dm = sim_database_execute_single_command (ossim.ossimdb, query); if (dm) { value = (GdaValue *) gda_data_model_get_value_at (dm, 0, 0); if (gda_data_model_get_n_rows(dm) !=0) //to avoid (null)-Critical: gda_value_is_null: assertion `value != NULL' failed { if (!gda_value_is_null (value)) { config->max_event_tmp = gda_value_stringify (value); } else g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "sim_xml_config_set_config_max_event_tmp value null"); } else config->max_event_tmp = 0; } else { g_message ("Error: Config DATA MODEL ERROR"); config->max_event_tmp = 0; } g_free (query); }
void sim_xml_config_set_config_datasource (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { SimConfigDS *ds; gchar *value; g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_DATASOURCE)) { g_message ("Invalid config datasource node %s", node->name); return; } ds = sim_config_ds_new (); if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_NAME))) { ds->name = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_PROVIDER))) { ds->provider = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_DSN))) { GString *dsn_new = g_string_new (""); gchar **key_value, **split; gchar **i; /* Adapt the data source name from GDA 2 to GDA 4 */ key_value = g_strsplit (value, ";", 0); for (i = key_value; *i; i++) { split = g_strsplit (*i, "=", 2); if (!strcmp(*split, "USER")) g_string_append_printf (dsn_new, "USERNAME=%s;", *(split+1)); else if (!strcmp(*split, "DATABASE")) g_string_append_printf (dsn_new, "DB_NAME=%s;", *(split+1)); else g_string_append_printf (dsn_new, "%s=%s;", *split, *(split+1)); g_strfreev(split); } g_strfreev(key_value); sim_config_ds_set_dsn_string (ds, g_string_free (dsn_new, FALSE)); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_LOCAL_DB))) { if (!g_ascii_strncasecmp (value, "true", 4)) ds->local_DB = TRUE; else if (!g_ascii_strncasecmp (value, "false", 4)) ds->local_DB = FALSE; else { g_message ("Error: Please put a valid value (true/false) in the Local_DB Parameter"); xmlFree(value); return; } } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_RSERVER_NAME))) { ds->rserver_name = g_strdup (value); xmlFree(value); } config->datasources = g_list_append (config->datasources, ds); }
/* * Load the server's placed "UP" in the architecture, the master/s server/s * */ void sim_xml_config_set_config_rserver (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { SimConfigRServer *rserver; gchar *value; g_return_if_fail (xmlconfig); g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (config); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_RSERVER)) { g_message ("Invalid config rserver node %s", node->name); return; } rserver = sim_config_rserver_new (); if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_NAME))) { rserver->name = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_IP))) { if (value) { rserver->ia = gnet_inetaddr_new_nonblock (value, 0); if (rserver->ia) { rserver->ip = g_strdup (value); xmlFree(value); } else { g_message ("Error: May be that you introduced a bad remote server IP in the server's config.xml?"); sim_config_rserver_free(rserver); xmlFree(value); return; } } else { g_message ("Error: May be that you didn't introduced a remote server IP in the server's config.xml?"); sim_config_rserver_free(rserver); return; } } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_PORT))) { if (sim_string_is_number (value, 0)) { rserver->port = strtol (value, (char **) NULL, 10); xmlFree(value); } else { g_message ("Error: May be that you introduced a bad remote IP port in the server's config.xml?"); sim_config_rserver_free(rserver); xmlFree(value); return; } } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_HA_ROLE))) { if (!g_ascii_strcasecmp (value, "active")) { rserver->is_HA_server = TRUE; rserver->HA_role = HA_ROLE_ACTIVE; } else if (!g_ascii_strcasecmp (value, "passive")) { rserver->is_HA_server = TRUE; rserver->HA_role = HA_ROLE_PASSIVE; } else { rserver->is_HA_server = FALSE; rserver->HA_role = HA_ROLE_NONE; } xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_PRIMARY))) { if (!g_ascii_strcasecmp (value, "true")) { rserver->primary = TRUE; } else if (!g_ascii_strcasecmp (value, "false")) { rserver->primary = FALSE; } else { g_message ("Error: May be that you introduced a bad primary in the server's config.xml?: please write TRUE or FALSE"); xmlFree(value); sim_config_rserver_free(rserver); return; } xmlFree(value); } if (!rserver->port) { rserver->port = 40001; } gnet_inetaddr_set_port (rserver->ia, rserver->port); config->rservers = g_list_append (config->rservers, rserver); }
void sim_xml_config_set_config_forensic_storage (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { //g_message("LOADING FORENSIC STORAGE CONFIGS"); gchar *value; // Check validity of all needed objects. g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); //Ensure that the current XML object is the correct for this function if (strcmp ((gchar *) node->name, OBJECT_FORENSIC_STORAGE)) { g_message ("Invalid sensor log node %s", node->name); return; } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_PATH))) { config->forensic_storage.path = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_SIG_TYPE))) { config->forensic_storage.sig_type = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_SIG_CIPHER))) { config->forensic_storage.sig_cipher = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_SIG_BIT))) { config->forensic_storage.sig_bit = strtol (value, (char **) NULL, 10); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_ENC_TYPE))) { config->forensic_storage.enc_type = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_ENC_CIPHER))) { config->forensic_storage.enc_cipher = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_ENC_BIT))) { config->forensic_storage.enc_bit = strtol (value, (char **) NULL, 10); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_KEY_SOURCE))) { config->forensic_storage.key_source = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_SIG_PRV_KEY_PATH))) { config->forensic_storage.sig_prv_key_path = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_SIG_PASS))) { config->forensic_storage.sig_pass = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_SIG_PUB_KEY_PATH))) { config->forensic_storage.sig_pub_key_path = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_ENC_PUB_KEY_PATH))) { config->forensic_storage.enc_pub_key_path = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_ENC_PASS))) { config->forensic_storage.enc_pass = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_ENC_PRV_KEY_PATH))) { config->forensic_storage.enc_prv_key_path = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_FORENSIC_STORAGE_CERT_PATH))) { config->forensic_storage.enc_cert_path = g_strdup (value); xmlFree(value); } }
void sim_xml_config_set_config_server (SimXmlConfig *xmlconfig, SimConfig *config, xmlNodePtr node) { gchar *value; g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig)); g_return_if_fail (SIM_IS_CONFIG (config)); g_return_if_fail (node); if (strcmp ((gchar *) node->name, OBJECT_SERVER)) { g_message ("Invalid config server node %s", node->name); return; } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_PORT))) { config->server.port = strtol (value, (char **) NULL, 10); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_NAME))) { config->server.name = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_IP))) { config->server.ip = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_HA_IP))) { config->server.HA_ip = g_strdup (value); xmlFree(value); } if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_HA_PORT))) { if (sim_string_is_number (value, 0)) { config->server.HA_port = atoi (value); xmlFree(value); } else { g_message ("Error: May be that you introduced a bad remote HA port in the server's config.xml?"); xmlFree(value); return; } } /* if ((value = (gchar *) xmlGetProp (node, (xmlChar *) PROPERTY_INTERFACE))) { config->server.interface = g_strdup (value); xmlFree(value); } */ }