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