瀏覽代碼

libdbmi: db_get_login_dump() added

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@60471 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 11 年之前
父節點
當前提交
fe53f0ba62
共有 2 個文件被更改,包括 35 次插入4 次删除
  1. 1 0
      include/defs/dbmi.h
  2. 34 4
      lib/db/dbmi_base/login.c

+ 1 - 0
include/defs/dbmi.h

@@ -411,5 +411,6 @@ void db_zero_string(dbString *);
 unsigned int db_sizeof_string(const dbString *);
 int db_set_login(const char *, const char *, const char *, const char *);
 int db_get_login(const char *, const char *, const char **, const char **);
+int db_get_login_dump(FILE *);
 
 #endif

+ 34 - 4
lib/db/dbmi_base/login.c

@@ -171,8 +171,8 @@ static int write_file(LOGIN * login)
   \param user user name
   \param password password string
   
-  \return DB_OK
-  \return DB_FAILED
+  \return DB_OK on success
+  \return DB_FAILED on failure
  */
 int db_set_login(const char *driver, const char *database, const char *user,
 		 const char *password)
@@ -225,8 +225,8 @@ int db_set_login(const char *driver, const char *database, const char *user,
   \param[out] user name
   \param[out] password string
   
-  \return DB_OK
-  \return DB_FAILED
+  \return DB_OK on success
+  \return DB_FAILED on failure
 */
 int db_get_login(const char *driver, const char *database, const char **user,
 		 const char **password)
@@ -263,3 +263,33 @@ int db_get_login(const char *driver, const char *database, const char **user,
 
     return DB_OK;
 }
+
+/*!  
+  \brief Print all connection settings to file
+  
+  \param fd file where to print settings
+  
+  \return DB_OK on success
+  \return DB_FAILED on failure
+*/
+int db_get_login_dump(FILE *fd)
+{
+    int i;
+    LOGIN login;
+    
+    G_debug(3, "db_get_login_dump()");
+    
+    init_login(&login);
+    if (read_file(&login) == -1)
+	return DB_FAILED;
+    
+    for (i = 0; i < login.n; i++) {
+        fprintf(fd, "%s|%s|%s|%s\n",
+                login.data[i].driver,
+                login.data[i].database,
+                login.data[i].user,
+                login.data[i].password);
+    }
+    
+    return DB_OK;
+}