Le 12/03/2011 10:37, Guillaume Lelarge a écrit :
> Le 06/03/2011 12:15, Christopher Head a écrit :
>> On Sat, 05 Mar 2011 20:30:42 +0100
>> Guillaume Lelarge <guilla...@lelarge.info> wrote:
>>
>>> Hi,
>>>
>>> Le 02/03/2011 07:45, Christopher Head a écrit :
>>>> [...]
>>>> I'd like to request the ability to set hostaddr separately from host
>>>> when creating a server connection. This is currently impossible.
>>>
>>> Could you remind me why this would be interesting? AFAIR, they are
>>> pretty much the same thing, aren't they?
>>>
>>
>> Use case: "host" is set to the actual name of the database server so it
>> can fully verify an SSL certificate, "hostaddr" is set to the IP
>> address of some box acting as a tunnel without which a connection to
>> the database server is impossible. I'm sure there are others, but
>> that's mine.
>>
> 
> OK, I created a ticket to work on it later.
> 

See patch attached. If you can test it, it would be great.


-- 
Guillaume
 http://www.postgresql.fr
 http://dalibo.com
>From e870e09eba8ad3746dc8d701e7e2bdd6fb9fd760 Mon Sep 17 00:00:00 2001
From: Guillaume Lelarge <guilla...@lelarge.info>
Date: Sat, 2 Apr 2011 16:59:11 +0200
Subject: [PATCH] Handle hostaddr connection parameter

---
 pgadmin/db/pgConn.cpp               |   10 ++++++++--
 pgadmin/dlg/dlgSelectConnection.cpp |    4 ++--
 pgadmin/dlg/dlgServer.cpp           |    9 ++++++++-
 pgadmin/frm/frmMain.cpp             |    1 +
 pgadmin/frm/frmStatus.cpp           |    6 ++++--
 pgadmin/include/db/pgConn.h         |    8 ++++++--
 pgadmin/include/schema/pgServer.h   |   12 ++++++++++--
 pgadmin/pgscript/pgsApplication.cpp |    2 +-
 pgadmin/schema/pgRole.cpp           |    1 +
 pgadmin/schema/pgServer.cpp         |   21 ++++++++++++---------
 pgadmin/ui/dlgServer.xrc            |   14 +++++++++++++-
 11 files changed, 66 insertions(+), 22 deletions(-)

diff --git a/pgadmin/db/pgConn.cpp b/pgadmin/db/pgConn.cpp
index 4bce7ad..60164ae 100644
--- a/pgadmin/db/pgConn.cpp
+++ b/pgadmin/db/pgConn.cpp
@@ -49,13 +49,14 @@ static void pgNoticeProcessor(void *arg, const char *message)
 	((pgConn *)arg)->Notice(message);
 }
 
-pgConn::pgConn(const wxString &server, const wxString &database, const wxString &username, const wxString &password,
+pgConn::pgConn(const wxString &server, const wxString &hostaddr, const wxString &database, const wxString &username, const wxString &password,
                int port, const wxString &rolename, int sslmode, OID oid, const wxString &applicationname,
                const wxString &sslcert, const wxString &sslkey, const wxString &sslrootcert, const wxString &sslcrl)
 {
 	wxString msg;
 
 	save_server = server;
+	save_hostaddr = hostaddr;
 	save_database = database;
 	save_username = username;
 	save_password = password;
@@ -87,6 +88,11 @@ pgConn::pgConn(const wxString &server, const wxString &database, const wxString
 		connstr.Append(wxT(" host="));
 		connstr.Append(qtConnString(server));
 	}
+	if (!hostaddr.IsEmpty())
+	{
+		connstr.Append(wxT(" hostaddr="));
+		connstr.Append(qtConnString(hostaddr));
+	}
 	if (!database.IsEmpty())
 	{
 		connstr.Append(wxT(" dbname="));
@@ -330,7 +336,7 @@ bool pgConn::Reconnect()
 
 pgConn *pgConn::Duplicate()
 {
-	return new pgConn(wxString(save_server), wxString(save_database), wxString(save_username), wxString(save_password),
+	return new pgConn(wxString(save_server), wxString(save_hostaddr), wxString(save_database), wxString(save_username), wxString(save_password),
 	                  save_port, save_rolename, save_sslmode, save_oid,
 	                  save_applicationname, save_sslcert, save_sslkey, save_sslrootcert, save_sslcrl);
 }
diff --git a/pgadmin/dlg/dlgSelectConnection.cpp b/pgadmin/dlg/dlgSelectConnection.cpp
index 0427f68..c4cdc0f 100644
--- a/pgadmin/dlg/dlgSelectConnection.cpp
+++ b/pgadmin/dlg/dlgSelectConnection.cpp
@@ -265,7 +265,7 @@ pgConn *dlgSelectConnection::CreateConn(wxString &applicationname, bool &created
 pgConn *dlgSelectConnection::CreateConn(wxString &server, wxString &dbname, wxString &username, int port, wxString &rolename, int sslmode, wxString &applicationname, bool writeMRU)
 {
 	pgConn *newconn;
-	newconn = new pgConn(server, dbname, username, wxT(""), port, rolename, sslmode, 0, applicationname);
+	newconn = new pgConn(server, wxEmptyString, dbname, username, wxT(""), port, rolename, sslmode, 0, applicationname);
 	if (newconn->GetStatus() != PGCONN_OK &&
 	        newconn->GetLastError().Cmp(wxString(PQnoPasswordSupplied, wxConvUTF8)) == 0)
 	{
@@ -279,7 +279,7 @@ pgConn *dlgSelectConnection::CreateConn(wxString &server, wxString &dbname, wxSt
 		if (dlg.Go() != wxID_OK)
 			return NULL;
 
-		newconn = new pgConn(server, dbname, username, dlg.GetPassword(), port, rolename, sslmode, 0, applicationname);
+		newconn = new pgConn(server, wxEmptyString, dbname, username, dlg.GetPassword(), port, rolename, sslmode, 0, applicationname);
 	}
 
 	if (newconn)
diff --git a/pgadmin/dlg/dlgServer.cpp b/pgadmin/dlg/dlgServer.cpp
index e80512c..17df441 100644
--- a/pgadmin/dlg/dlgServer.cpp
+++ b/pgadmin/dlg/dlgServer.cpp
@@ -28,6 +28,7 @@
 #include "schema/pgDatabase.h"
 
 // pointer to controls
+#define txtHostAddr       CTRL_TEXT("txtHostAddr")
 #define txtDescription    CTRL_TEXT("txtDescription")
 #define txtService        CTRL_TEXT("txtService")
 #define cbDatabase        CTRL_COMBOBOX("cbDatabase")
@@ -54,6 +55,7 @@
 
 BEGIN_EVENT_TABLE(dlgServer, dlgProperty)
 	EVT_NOTEBOOK_PAGE_CHANGED(XRCID("nbNotebook"),     dlgServer::OnPageSelect)
+	EVT_TEXT(XRCID("txtHostAddr"),                     dlgProperty::OnChange)
 	EVT_TEXT(XRCID("txtDescription"),                  dlgProperty::OnChange)
 	EVT_TEXT(XRCID("txtService"),                      dlgProperty::OnChange)
 	EVT_TEXT(XRCID("cbDatabase"),                      dlgProperty::OnChange)
@@ -169,6 +171,7 @@ void dlgServer::OnOK(wxCommandEvent &ev)
 	if (server)
 	{
 		server->iSetName(GetName());
+		server->iSetHostAddr(txtHostAddr->GetValue());
 		server->iSetDescription(txtDescription->GetValue());
 		if (txtService->GetValue() != server->GetServiceID())
 		{
@@ -205,6 +208,7 @@ void dlgServer::OnOK(wxCommandEvent &ev)
 			// Duplicate server object
 			pgServer *newserver = new pgServer(
 			    server->GetName(),
+			    server->GetHostAddr(),
 			    server->GetDescription(),
 			    server->GetDatabaseName(),
 			    server->GetUsername(),
@@ -372,6 +376,7 @@ int dlgServer::Go(bool modal)
 	{
 		if (cbDatabase->FindString(server->GetDatabaseName()) < 0)
 			cbDatabase->Append(server->GetDatabaseName());
+		txtHostAddr->SetValue(server->GetHostAddr());
 		txtDescription->SetValue(server->GetDescription());
 		txtService->SetValue(server->GetServiceID());
 		txtPort->SetValue(NumToStr((long)server->GetPort()));
@@ -394,6 +399,7 @@ int dlgServer::Go(bool modal)
 		txtPassword->Disable();
 		if (connection)
 		{
+			txtHostAddr->Disable();
 			txtDescription->Disable();
 			txtService->Disable();
 			txtName->Disable();
@@ -438,7 +444,7 @@ pgObject *dlgServer::CreateObject(pgCollection *collection)
 {
 	wxString name = GetName();
 
-	pgServer *obj = new pgServer(GetName(), txtDescription->GetValue(), cbDatabase->GetValue(),
+	pgServer *obj = new pgServer(GetName(), txtHostAddr->GetValue(), txtDescription->GetValue(), cbDatabase->GetValue(),
 	                             txtUsername->GetValue(), StrToLong(txtPort->GetValue()),
 	                             chkTryConnect->GetValue() && chkStorePwd->GetValue(),
 	                             txtRolename->GetValue(), chkRestore->GetValue(), cbSSL->GetCurrentSelection(),
@@ -476,6 +482,7 @@ void dlgServer::CheckChange()
 		wxString sColour2 = colourPicker->GetColourString();
 
 		enable =  name != server->GetName()
+		          || txtHostAddr->GetValue() != server->GetHostAddr()
 		          || txtDescription->GetValue() != server->GetDescription()
 		          || txtService->GetValue() != server->GetServiceID()
 		          || StrToLong(txtPort->GetValue()) != server->GetPort()
diff --git a/pgadmin/frm/frmMain.cpp b/pgadmin/frm/frmMain.cpp
index ea58697..9090a33 100644
--- a/pgadmin/frm/frmMain.cpp
+++ b/pgadmin/frm/frmMain.cpp
@@ -1108,6 +1108,7 @@ void frmMain::StoreServers()
 
 					key.Printf(wxT("Servers/%d/"), numServers);
 					settings->Write(key + wxT("Server"), server->GetName());
+					settings->Write(key + wxT("HostAddr"), server->GetHostAddr());
 					settings->Write(key + wxT("Description"), server->GetDescription());
 					settings->Write(key + wxT("ServiceID"), server->GetServiceID());
 					settings->Write(key + wxT("DiscoveryID"), server->GetDiscoveryID());
diff --git a/pgadmin/frm/frmStatus.cpp b/pgadmin/frm/frmStatus.cpp
index 22c6db3..f711975 100644
--- a/pgadmin/frm/frmStatus.cpp
+++ b/pgadmin/frm/frmStatus.cpp
@@ -480,7 +480,7 @@ void frmStatus::OnChangeDatabase(wxCommandEvent &ev)
 		delete locks_connection;
 	}
 
-	locks_connection = new pgConn(connection->GetHostName(), cbDatabase->GetValue(),
+	locks_connection = new pgConn(connection->GetHostName(), connection->GetHostAddr(), cbDatabase->GetValue(),
 	                              connection->GetUser(), connection->GetPassword(), connection->GetPort(), connection->GetRole(), connection->GetSslMode(),
 	                              0, connection->GetApplicationName(), connection->GetSSLCert(), connection->GetSSLKey(), connection->GetSSLRootCert(), connection->GetSSLCrl());
 
@@ -989,7 +989,7 @@ void frmStatus::OnCopyQuery(wxCommandEvent &ev)
 	if (text.Length() > 0 && dbname.Length() > 0
 	        && text.Trim() != wxT("<IDLE>") && text.Trim() != wxT("<IDLE in transaction>"))
 	{
-		pgConn *conn = new pgConn(connection->GetHostName(), dbname,
+		pgConn *conn = new pgConn(connection->GetHostName(), connection->GetHostAddr(), dbname,
 		                          connection->GetUser(), connection->GetPassword(),
 		                          connection->GetPort(), connection->GetRole(), connection->GetSslMode(), connection->GetDbOid(),
 		                          connection->GetApplicationName(),
@@ -2597,6 +2597,7 @@ void frmStatus::OnCommit(wxCommandEvent &event)
 		if (connection->GetDbname() != xactList->GetText(item, 4))
 		{
 			pgConn *tmpConn = new pgConn(connection->GetHost(),
+			                             connection->GetHostAddr(),
 			                             xactList->GetText(item, 4),
 			                             connection->GetUser(),
 			                             connection->GetPassword(),
@@ -2652,6 +2653,7 @@ void frmStatus::OnRollback(wxCommandEvent &event)
 		if (connection->GetDbname() != xactList->GetText(item, 4))
 		{
 			pgConn *tmpConn = new pgConn(connection->GetHost(),
+			                             connection->GetHostAddr(),
 			                             xactList->GetText(item, 4),
 			                             connection->GetUser(),
 			                             connection->GetPassword(),
diff --git a/pgadmin/include/db/pgConn.h b/pgadmin/include/db/pgConn.h
index 402357a..05661d7 100644
--- a/pgadmin/include/db/pgConn.h
+++ b/pgadmin/include/db/pgConn.h
@@ -83,7 +83,7 @@ typedef struct pgError
 class pgConn
 {
 public:
-	pgConn(const wxString &server = wxT(""), const wxString &database = wxT(""), const wxString &username = wxT(""), const wxString &password = wxT(""),
+	pgConn(const wxString &server = wxT(""), const wxString &hostaddr = wxT(""), const wxString &database = wxT(""), const wxString &username = wxT(""), const wxString &password = wxT(""),
 	       int port = 5432, const wxString &rolename = wxT(""), int sslmode = 0, OID oid = 0,
 	       const wxString &applicationname = wxT("pgAdmin"),
 	       const wxString &sslcert = wxT(""), const wxString &sslkey = wxT(""), const wxString &sslrootcert = wxT(""), const wxString &sslcrl = wxT(""));
@@ -125,6 +125,10 @@ public:
 	bool ExecuteVoid(const wxString &sql, bool reportError = true);
 	wxString ExecuteScalar(const wxString &sql);
 	pgSet *ExecuteSet(const wxString &sql);
+	wxString GetHostAddr() const
+	{
+		return save_hostaddr;
+	}
 	wxString GetUser() const
 	{
 		return wxString(PQuser(conn), *conv);
@@ -268,7 +272,7 @@ private:
 	wxString reservedNamespaces;
 	wxString connstr;
 
-	wxString save_server, save_database, save_username, save_password, save_rolename, save_applicationname;
+	wxString save_server, save_hostaddr, save_database, save_username, save_password, save_rolename, save_applicationname;
 	wxString save_sslcert, save_sslkey, save_sslrootcert, save_sslcrl;
 	int save_port, save_sslmode;
 	OID save_oid;
diff --git a/pgadmin/include/schema/pgServer.h b/pgadmin/include/schema/pgServer.h
index 27bfbdf..9c30dd8 100644
--- a/pgadmin/include/schema/pgServer.h
+++ b/pgadmin/include/schema/pgServer.h
@@ -41,7 +41,7 @@ extern pgServerFactory serverFactory;
 class pgServer : public pgObject
 {
 public:
-	pgServer(const wxString &newServer = wxT(""), const wxString &newDescription = wxT(""), const wxString &newDatabase = wxT(""), const wxString &newUsername = wxT(""), int newPort = 5432, bool storePwd = false, const wxString &newRolename = wxT(""), bool restore = true, int sslMode = 0, const wxString &colour = wxT("#FFFFFF"), const wxString &group = wxEmptyString);
+	pgServer(const wxString &newServer = wxT(""), const wxString &newHostAddr = wxT(""), const wxString &newDescription = wxT(""), const wxString &newDatabase = wxT(""), const wxString &newUsername = wxT(""), int newPort = 5432, bool storePwd = false, const wxString &newRolename = wxT(""), bool restore = true, int sslMode = 0, const wxString &colour = wxT("#FFFFFF"), const wxString &group = wxEmptyString);
 	~pgServer();
 	int GetIconId();
 
@@ -75,6 +75,10 @@ public:
 	wxString GetVersionString();
 	wxString GetVersionNumber();
 	OID GetLastSystemOID();
+	wxString GetHostAddr() const
+	{
+		return hostaddr;
+	}
 	wxString GetDatabaseName() const
 	{
 		return database;
@@ -223,6 +227,10 @@ public:
 	{
 		description = s;
 	}
+	void iSetHostAddr(const wxString &s)
+	{
+		hostaddr = s;
+	}
 
 	wxString GetDbRestriction() const
 	{
@@ -417,7 +425,7 @@ private:
 	pgConn *conn;
 	long serverIndex;
 	bool connected, passwordValid, autovacuumRunning;
-	wxString database, username, password, rolename, ver, error;
+	wxString hostaddr, database, username, password, rolename, ver, error;
 	wxString lastDatabase, lastSchema, description, serviceId, discoveryId;
 	wxDateTime upSince;
 	int port, ssl;
diff --git a/pgadmin/pgscript/pgsApplication.cpp b/pgadmin/pgscript/pgsApplication.cpp
index 79a4168..f5dcfe8 100644
--- a/pgadmin/pgscript/pgsApplication.cpp
+++ b/pgadmin/pgscript/pgsApplication.cpp
@@ -19,7 +19,7 @@
 
 pgsApplication::pgsApplication(const wxString &host, const wxString &database,
                                const wxString &user, const wxString &password, int port) :
-	m_mutex(1, 1), m_stream(1, 1), m_connection(pnew pgConn(host, database, user,
+	m_mutex(1, 1), m_stream(1, 1), m_connection(pnew pgConn(host, wxEmptyString, database, user,
 	        password, port)), m_defined_conn(true), m_thread(0), m_caller(0)
 {
 	if (m_connection->GetStatus() != PGCONN_OK)
diff --git a/pgadmin/schema/pgRole.cpp b/pgadmin/schema/pgRole.cpp
index d7d1b8f..2e7c5f4 100644
--- a/pgadmin/schema/pgRole.cpp
+++ b/pgadmin/schema/pgRole.cpp
@@ -434,6 +434,7 @@ void pgRole::ReassignDropOwnedTo(frmMain *form)
 	{
 		pgConn *conn;
 		conn = new pgConn(GetConnection()->GetHost(),
+		                  GetConnection()->GetHostAddr(),
 		                  rdo.GetDatabase(),
 		                  GetConnection()->GetUser(),
 		                  GetConnection()->GetPassword(),
diff --git a/pgadmin/schema/pgServer.cpp b/pgadmin/schema/pgServer.cpp
index 111a78a..3fa4bdd 100644
--- a/pgadmin/schema/pgServer.cpp
+++ b/pgadmin/schema/pgServer.cpp
@@ -40,10 +40,11 @@
 
 #define DEFAULT_PG_DATABASE wxT("postgres")
 
-pgServer::pgServer(const wxString &newName, const wxString &newDescription, const wxString &newDatabase, const wxString &newUsername, int newPort, bool _storePwd, const wxString &newRolename, bool _restore, int _ssl, const wxString &_colour, const wxString &_group)
+pgServer::pgServer(const wxString &newName, const wxString &newHostAddr, const wxString &newDescription, const wxString &newDatabase, const wxString &newUsername, int newPort, bool _storePwd, const wxString &newRolename, bool _restore, int _ssl, const wxString &_colour, const wxString &_group)
 	: pgObject(serverFactory, newName)
 {
 	description = newDescription;
+    hostaddr = newHostAddr;
 	database = newDatabase;
 	username = newUsername;
 	port = newPort;
@@ -186,7 +187,7 @@ pgConn *pgServer::CreateConn(wxString dbName, OID oid, wxString applicationname)
 		dbName = GetDatabaseName();
 		oid = dbOid;
 	}
-	pgConn *conn = new pgConn(GetName(), dbName, username, password, port, rolename, ssl, oid, applicationname, sslcert, sslkey, sslrootcert, sslcrl);
+	pgConn *conn = new pgConn(GetName(), hostaddr, dbName, username, password, port, rolename, ssl, oid, applicationname, sslcert, sslkey, sslrootcert, sslcrl);
 
 	if (conn && conn->GetStatus() != PGCONN_OK)
 	{
@@ -663,21 +664,21 @@ int pgServer::Connect(frmMain *form, bool askPassword, const wxString &pwd, bool
 
 		if (database.IsEmpty())
 		{
-			conn = new pgConn(GetName(), DEFAULT_PG_DATABASE, username, password, port, rolename, ssl, 0, appearanceFactory->GetLongAppName() + _(" - Browser"), sslcert, sslkey, sslrootcert, sslcrl);
+			conn = new pgConn(GetName(), hostaddr, DEFAULT_PG_DATABASE, username, password, port, rolename, ssl, 0, appearanceFactory->GetLongAppName() + _(" - Browser"), sslcert, sslkey, sslrootcert, sslcrl);
 			if (conn->GetStatus() == PGCONN_OK)
 				database = DEFAULT_PG_DATABASE;
 			else if (conn->GetStatus() == PGCONN_BAD && conn->GetLastError().Find(
 			             wxT("database \"") DEFAULT_PG_DATABASE wxT("\" does not exist")) >= 0)
 			{
 				delete conn;
-				conn = new pgConn(GetName(), wxT("template1"), username, password, port, rolename, ssl, 0, appearanceFactory->GetLongAppName() + _(" - Browser"), sslcert, sslkey, sslrootcert, sslcrl);
+				conn = new pgConn(GetName(), hostaddr, wxT("template1"), username, password, port, rolename, ssl, 0, appearanceFactory->GetLongAppName() + _(" - Browser"), sslcert, sslkey, sslrootcert, sslcrl);
 				if (conn && conn->GetStatus() == PGCONN_OK)
 					database = wxT("template1");
 			}
 		}
 		else
 		{
-			conn = new pgConn(GetName(), database, username, password, port, rolename, ssl, 0, appearanceFactory->GetLongAppName() + _(" - Browser"), sslcert, sslkey, sslrootcert, sslcrl);
+			conn = new pgConn(GetName(), hostaddr, database, username, password, port, rolename, ssl, 0, appearanceFactory->GetLongAppName() + _(" - Browser"), sslcert, sslkey, sslrootcert, sslcrl);
 			if (!conn)
 			{
 				form->EndMsg(false);
@@ -985,6 +986,7 @@ void pgServer::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *prop
 		else
 		{
 			properties->AppendItem(_("Hostname"), GetName());
+			properties->AppendItem(_("Host Address"), GetHostAddr());
 			properties->AppendItem(_("Port"), (long)GetPort());
 #ifdef SSL
 			if (GetConnected())
@@ -1265,7 +1267,7 @@ pgObject *pgServerFactory::CreateObjects(pgCollection *obj, ctlTree *browser, co
 	long numServers = settings->Read(wxT("Servers/Count"), 0L);
 
 	long loop, port, ssl = 0;
-	wxString key, servername, description, database, username, lastDatabase, lastSchema;
+	wxString key, servername, hostaddr, description, database, username, lastDatabase, lastSchema;
 	wxString storePwd, rolename, restore, serviceID, discoveryID, dbRestriction, colour;
 	wxString group, sslcert, sslkey, sslrootcert, sslcrl;
 	pgServer *server = 0;
@@ -1285,6 +1287,7 @@ pgObject *pgServerFactory::CreateObjects(pgCollection *obj, ctlTree *browser, co
 		key.Printf(wxT("Servers/%d/"), loop);
 
 		settings->Read(key + wxT("Server"), &servername, wxEmptyString);
+		settings->Read(key + wxT("HostAddr"), &hostaddr, wxEmptyString);
 		settings->Read(key + wxT("ServiceID"), &serviceID, wxEmptyString);
 		settings->Read(key + wxT("DiscoveryID"), &discoveryID, serviceID);
 		settings->Read(key + wxT("Description"), &description, wxEmptyString);
@@ -1337,7 +1340,7 @@ pgObject *pgServerFactory::CreateObjects(pgCollection *obj, ctlTree *browser, co
 		}
 
 		// Add the Server node
-		server = new pgServer(servername, description, database, username, port, StrToBool(storePwd), rolename, StrToBool(restore), ssl);
+		server = new pgServer(servername, hostaddr, description, database, username, port, StrToBool(storePwd), rolename, StrToBool(restore), ssl);
 		server->iSetLastDatabase(lastDatabase);
 		server->iSetLastSchema(lastSchema);
 		server->iSetServiceID(serviceID);
@@ -1514,7 +1517,7 @@ pgObject *pgServerFactory::CreateObjects(pgCollection *obj, ctlTree *browser, co
 					// Add the item, if it looks sane
 					if (port != 0 && username != wxEmptyString)
 					{
-						server = new pgServer(servername, description, wxT("postgres"), username, port, false, rolename, 0);
+						server = new pgServer(servername, wxEmptyString, description, wxT("postgres"), username, port, false, rolename, 0);
 						server->iSetDiscoveryID(cnf->GetPath() + wxT("/") + version);
 						server->iSetDiscovered(true);
 						server->iSetGroup(group);
@@ -1567,7 +1570,7 @@ pgObject *pgServerFactory::CreateObjects(pgCollection *obj, ctlTree *browser, co
 					// Add the item, if it looks sane
 					if (port != 0 && username != wxEmptyString)
 					{
-						server = new pgServer(servername, description, wxT("edb"), username, port, false, rolename, 0);
+						server = new pgServer(servername, wxEmptyString, description, wxT("edb"), username, port, false, rolename, 0);
 						server->iSetDiscoveryID(cnf->GetPath() + wxT("/") + version);
 						server->iSetDiscovered(true);
 						browser->AppendItem(browser->GetFirstChild(obj->GetId(), groupcookie), server->GetFullName(), server->GetIconId(), -1, server);
diff --git a/pgadmin/ui/dlgServer.xrc b/pgadmin/ui/dlgServer.xrc
index c8632f2..7b7587f 100644
--- a/pgadmin/ui/dlgServer.xrc
+++ b/pgadmin/ui/dlgServer.xrc
@@ -17,7 +17,7 @@
             <object class="wxPanel" name="pnlProperties">
               <object class="wxFlexGridSizer">
                 <cols>2</cols>
-                <rows>9</rows>
+                <rows>10</rows>
                 <vgap>5</vgap>
                 <hgap>5</hgap>
                 <growablecols>1</growablecols>
@@ -46,6 +46,18 @@
                   <border>4</border>
                 </object>
                 <object class="sizeritem">
+                  <object class="wxStaticText" name="stHostAddr">
+                    <label>Host Address</label>
+                  </object>
+                  <flag>wxALIGN_CENTRE_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
+                  <border>4</border>
+                </object>
+                <object class="sizeritem">
+                  <object class="wxTextCtrl" name="txtHostAddr"/>
+                  <flag>wxEXPAND|wxALIGN_CENTRE_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
+                  <border>4</border>
+                </object>
+                <object class="sizeritem">
                   <object class="wxStaticText" name="stPort">
                     <label>Port</label>
                   </object>
-- 
1.7.1

-- 
Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-support

Reply via email to