[libgda] Modify tools' main()'s arguments to hide usernames and passwords
- From: Vivien Malerba <vivien src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] Modify tools' main()'s arguments to hide usernames and passwords
- Date: Mon, 16 May 2011 19:17:50 +0000 (UTC)
commit 977f2be6f0197c0be7aa3c28115b3f9e12a6a308
Author: Vivien Malerba <malerba gnome-db org>
Date: Sun May 15 14:46:08 2011 +0200
Modify tools' main()'s arguments to hide usernames and passwords
tools/browser/main.c | 1 +
tools/config-info.c | 28 ++++++++++++++++++++++++++++
tools/config-info.h | 2 ++
tools/gda-sql.c | 2 ++
4 files changed, 33 insertions(+), 0 deletions(-)
---
diff --git a/tools/browser/main.c b/tools/browser/main.c
index 31eae10..7a4bdf0 100644
--- a/tools/browser/main.c
+++ b/tools/browser/main.c
@@ -215,6 +215,7 @@ main (int argc, char *argv[])
error && error->message ? error->message : _("No detail"));
break;
}
+ config_info_modify_argv (argv[i]);
}
if (dialog) {
diff --git a/tools/config-info.c b/tools/config-info.c
index ebc9e0f..32a95ff 100644
--- a/tools/config-info.c
+++ b/tools/config-info.c
@@ -23,6 +23,34 @@
#include <glib/gi18n-lib.h>
#include <glib/gstdio.h>
+/*
+ * Replace @argvi's contents with the connection name
+ */
+void
+config_info_modify_argv (char *argvi)
+{
+ GString *string;
+ gchar *prov, *cncparams, *user, *pass;
+ size_t size;
+ string = g_string_new ("");
+ gda_connection_string_split (argvi, &cncparams, &prov, &user, &pass);
+ g_free (user);
+ g_free (pass);
+ if (prov) {
+ g_string_append (string, prov);
+ g_free (prov);
+ }
+ if (cncparams) {
+ g_string_append (string, cncparams);
+ g_free (cncparams);
+ }
+ size = MIN (strlen (string->str), strlen (argvi));
+ strncpy (argvi, string->str, size);
+ g_string_free (string, TRUE);
+ if (size < strlen (argvi))
+ memset (argvi + size, 0, strlen (argvi) - size);
+}
+
GdaDataModel *
config_info_list_all_dsn (void)
{
diff --git a/tools/config-info.h b/tools/config-info.h
index 6f83003..fd704d2 100644
--- a/tools/config-info.h
+++ b/tools/config-info.h
@@ -24,6 +24,8 @@
#include <libgda/libgda.h>
+void config_info_modify_argv (char *argvi);
+
gchar *config_info_compute_dict_directory (void);
gchar *config_info_compute_dict_file_name (GdaDsnInfo *info, const gchar *cnc_string);
void config_info_update_meta_store_properties (GdaMetaStore *mstore, GdaConnection *rel_cnc);
diff --git a/tools/gda-sql.c b/tools/gda-sql.c
index 2bce6c1..2f83424 100644
--- a/tools/gda-sql.c
+++ b/tools/gda-sql.c
@@ -338,6 +338,7 @@ main (int argc, char *argv[])
if (!data->output_stream)
g_print (_("Opening connection '%s' for: %s\n"), str, argv[i]);
cs = open_connection (NULL, str, argv[i], &error);
+ config_info_modify_argv (argv[i]);
g_free (str);
if (!cs) {
g_print (_("Can't open connection %d: %s\n"), i,
@@ -346,6 +347,7 @@ main (int argc, char *argv[])
goto cleanup;
}
}
+
if (getenv ("GDA_SQL_CNC")) {
ConnectionSetting *cs;
gchar *str;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]