m_workerThread->Run();
}
+ // Figure out the hostname/IP address
+ struct hostent *host;\r
+ unsigned long addr;
+ wxString hostip, hostname;
+
+#ifdef __WXMSW__\r
+ struct in_addr ipaddr;\r
+#else\r
+ unsigned long ipaddr;\r
+#endif\r
+ \r
+#ifndef __WXMSW__\r
+ if (!(server.IsEmpty() || server.StartsWith(wxT("/"))))\r
+ {\r
+#endif\r
+ addr = inet_addr(server.ToAscii());\r
+ if (addr == INADDR_NONE) // szServer is not an IP address\r
+ {\r
+ host = gethostbyname(server.ToAscii());\r
+ if (host == NULL)\r
+ {\r
+ wxLogError(__("Could not resolve hostname %s"), server.c_str());\r
+ return;\r
+ }\r
+\r
+ memcpy(&(ipaddr),host->h_addr,host->h_length); \r
+ hostip = wxString::FromAscii(inet_ntoa(*((struct in_addr*) host->h_addr_list[0])));\r
+ hostname = server;\r
+ }\r
+ else\r
+ {\r
+ hostip = server;\r
+ hostname = server;\r
+ }\r
+#ifndef __WXMSW__\r
+ }\r
+ else\r
+ hostname = server;\r
+#endif
+
// Build up a connection string
wxString connectParams;
- if( server.Length())
+ if(hostname.Length())
{
- connectParams.Append( wxT( "host=" ));
- connectParams.Append( server );
+ connectParams.Append(wxT( "host="));
+ connectParams.Append(hostname);
+
+ msg += delimiter + server; delimiter = _(":");
+ }
- msg += delimiter + server; delimiter = _( ":" );
+ if (hostip.Length()) \r
+ {\r
+ connectParams.Append(wxT(" hostaddr="));\r
+ connectParams.Append(hostip);\r
}
if( port.Length())
{
- connectParams += wxT( " port=" );
+ connectParams += wxT(" port=");
connectParams += port;
- msg += delimiter + port; delimiter = _( ":" );
+ msg += delimiter + port; delimiter = _(":");
}
if( database.Length())
{
- connectParams.Append( wxT( " dbname=" ));
- connectParams.Append( database );
+ connectParams.Append(wxT(" dbname="));
+ connectParams.Append(qtConnString(database));
- msg += delimiter + database; delimiter = _( ":" );
+ msg += delimiter + database; delimiter = _(":");
}
- if( username.Length())
+ if(username.Length())
{
- connectParams.Append( wxT( " user=" ));
- connectParams.Append( username );
+ connectParams.Append(wxT(" user="));
+ connectParams.Append(username );
- msg += delimiter + username; delimiter = _( ":" );
+ msg += delimiter + username; delimiter = _(":");
}
- if( password.Length())
+ if(password.Length())
{
- connectParams.Append( wxT( " password=" ));
- connectParams.Append( password );
+ connectParams.Append(wxT(" password="));
+ connectParams.Append(password);
+ }
+
+ switch (sslmode)\r
+ {\r
+ case 1: \r
+ connectParams.Append(wxT(" sslmode=require")); \r
+ break;\r
+\r
+ case 2: \r
+ connectParams.Append(wxT(" sslmode=prefer"));\r
+ break;\r
+\r
+ case 3: \r
+ connectParams.Append(wxT(" sslmode=allow"));\r
+ break;\r
+\r
+ case 4: \r
+ connectParams.Append(wxT(" sslmode=disable"));\r
+ break;\r
+\r
+ default:\r
+ break;\r
}
- connectParams.Trim( true );
- connectParams.Trim( false );
+ connectParams.Trim(true);
+ connectParams.Trim(false);
m_frame->getStatusBar()->SetStatusText( wxString::Format(_( "Connecting to %s" ), msg.c_str()), 1 );
m_pgConn = PQconnectdb( connectParams.ToAscii());