Esempio n. 1
0
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);      
    }
}
Esempio n. 2
0
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);
    }
}
Esempio n. 3
0
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;
  }

}
Esempio n. 4
0
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;
    }
}
Esempio n. 5
0
SimConfig*
sim_xml_config_get_config (SimXmlConfig  *xmlconfig)
{
  g_return_val_if_fail (SIM_IS_XML_CONFIG (xmlconfig), NULL);

  return xmlconfig->_priv->config;
}
Esempio n. 6
0
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;
  }
}
Esempio n. 7
0
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;
  }

}
Esempio n. 8
0
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);      
    }
}
Esempio n. 9
0
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);      
    }
}
Esempio n. 10
0
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);
}
Esempio n. 11
0
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);      
    }
}
Esempio n. 12
0
/**
 * sim_xml_config_to_string
 * @xmlconfig: a #SimXmlConfig object.
 *
 * Get the given XML config contents as a XML string.
 *
 * Returns: the XML string representing the structure and contents of the
 * given #SimXmlConfig object. The returned value must be freed when no
 * longer needed.
 */
gchar *
sim_xml_config_to_string (SimXmlConfig *xmlconfig)
{
  xmlDocPtr doc;
  xmlNodePtr root;
  xmlChar *xml;
  gint size;
  gchar *retval;
  
  g_return_val_if_fail (SIM_IS_XML_CONFIG (xmlconfig), NULL);
  
  /* create the top node */
  doc = xmlNewDoc ((xmlChar *) "1.0");	//xmlChar is a typedef to unsigned char. Needed to avoid stupid warnings
  root = xmlNewDocNode (doc, NULL, (xmlChar *) OBJECT_CONFIG, NULL);
  xmlDocSetRootElement (doc, root);
  
  /* save to memory */
  xmlDocDumpMemory (doc, &xml, &size);
  xmlFreeDoc (doc);
  if (!xml) {
    g_message ("Could not dump XML file to memory");
    return NULL;
  }
  
  retval = g_strdup ((gchar *)xml);
  free (xml);
  
  return retval;
}
Esempio n. 13
0
/*
 *	This function takes all its parameters from config file.
 */
SimConfig*
sim_xml_config_new_config_from_node (SimXmlConfig  *xmlconfig,
																     xmlNodePtr     node)
{
  SimConfig     *config;
  xmlNodePtr     children;
	gboolean aux = FALSE;
  
  g_return_val_if_fail (SIM_IS_XML_CONFIG (xmlconfig), NULL);
  g_return_val_if_fail (node != NULL, NULL);
  
  if (strcmp ((gchar *) node->name, OBJECT_CONFIG))
  {
    g_message ("Invalid config node %s", node->name);
    return NULL;
  }
  
  config = sim_config_new ();

	children = node->xmlChildrenNode;
  while (children) 
	{
    if (!strcmp ((gchar *) children->name, OBJECT_LOG))
			sim_xml_config_set_config_log (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_DATASOURCES))
			sim_xml_config_set_config_datasources (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_DIRECTIVE))
			sim_xml_config_set_config_directive (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_REPUTATION))
			sim_xml_config_set_config_reputation (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_SERVER))
			sim_xml_config_set_config_server (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_SMTP))
			sim_xml_config_set_config_smtp (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_NOTIFIES))
			sim_xml_config_set_config_notifies (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_FRAMEWORK))
			sim_xml_config_set_config_framework (xmlconfig, config, children);
	  if (!strcmp ((gchar *) children->name, OBJECT_FORENSIC_STORAGE))
		{
      sim_xml_config_set_config_forensic_storage (xmlconfig, config, children);
			aux = TRUE;	
		}
    if (!strcmp ((gchar *) children->name, OBJECT_IDM))
    {
      sim_xml_config_set_config_idm (xmlconfig, config, children);
      config->idm.activated = TRUE;
    }

    children = children->next;
  }

	if (aux)
		config->forensic_storage.sem_activated = TRUE;
	else
		config->forensic_storage.sem_activated = FALSE;

  return config;
}
Esempio n. 14
0
static void
sim_xml_config_init (SimXmlConfig *xmlconfig, SimXmlConfigClass *klass)
{
  g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig));
  
  /* allocate private structure */
  xmlconfig->_priv = g_new0 (SimXmlConfigPrivate, 1);
}
Esempio n. 15
0
/**
 * sim_xml_config_changed
 * @xmlconfig: XML config
 *
 * Emit the "changed" signal for the given XML config
 */
void
sim_xml_config_changed (SimXmlConfig * xmlconfig)
{
  g_return_if_fail (SIM_IS_XML_CONFIG (xmlconfig));
  g_signal_emit (G_OBJECT (xmlconfig),
		 xmlconfig_signals[SIM_XML_CONFIG_CHANGED],
		 0);
}
Esempio n. 16
0
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);
}
Esempio n. 17
0
/*
 *	This function takes all its parameters from config file.
 */
SimConfig*
sim_xml_config_new_config_from_node (SimXmlConfig  *xmlconfig,
																     xmlNodePtr     node)
{
  SimConfig     *config;
  SimAction     *action;
  GNode         *rule_root;
  xmlNodePtr     children;
  
  g_return_val_if_fail (xmlconfig, NULL);
  g_return_val_if_fail (SIM_IS_XML_CONFIG (xmlconfig), NULL);
  g_return_val_if_fail (node != NULL, NULL);
  
  if (strcmp ((gchar *) node->name, OBJECT_CONFIG))
  {
    g_message ("Invalid config node %s", node->name);
    return NULL;
  }
  
  config = sim_config_new ();

	children = node->xmlChildrenNode;
  while (children) 
	{
    if (!strcmp ((gchar *) children->name, OBJECT_LOG))
			sim_xml_config_set_config_log (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_DATASOURCES))
			sim_xml_config_set_config_datasources (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_DIRECTIVE))
			sim_xml_config_set_config_directive (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_SCHEDULER))
			sim_xml_config_set_config_scheduler (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_SERVER))
			sim_xml_config_set_config_server (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_SMTP))
			sim_xml_config_set_config_smtp (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_NOTIFIES))
			sim_xml_config_set_config_notifies (xmlconfig, config, children);		
		//FIXME: This multilevel code is unstable and unmaintained, uncomment this at your own risk.
    //if (!strcmp ((gchar *) children->name, OBJECT_RSERVERS))
		//	sim_xml_config_set_config_rservers (xmlconfig, config, children);
    if (!strcmp ((gchar *) children->name, OBJECT_FRAMEWORK))
			sim_xml_config_set_config_framework (xmlconfig, config, children);
		
    children = children->next;
  }

  return config;
}
Esempio n. 18
0
/**
 * sim_xml_config_save
 * @xmlconfig: XML config.
 * @file: FILE to save the XML config to.
 *
 * Save the given XML config to disk.
 */
gboolean
sim_xml_config_save (SimXmlConfig *xmlconfig, const gchar *file)
{
  gchar*xml;
  gboolean result;
  
  g_return_val_if_fail (SIM_IS_XML_CONFIG (xmlconfig), FALSE);
  
  xml = sim_xml_config_to_string (xmlconfig);
  if (xml) {
    result = sim_file_save (file, xml, strlen (xml));
    g_free (xml);
  } else
    result = FALSE;

  return result;
}
Esempio n. 19
0
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);
  }
}
Esempio n. 20
0
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);
  }
}
Esempio n. 21
0
/*
 *	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);
}
Esempio n. 22
0
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);
    }
	*/
}
Esempio n. 23
0
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);
}