public static function connect($app, $instance = null, $login = null, $flags = null) { $record = dbauth::find_and_parse_auth($app, $instance); if (!isset($record)) { return null; } $dbspecs = $record->{'database'}; if (!isset($dbspecs)) { return null; } foreach ($dbspecs as $dbspec) { switch ($dbspec->{'DBType'}) { case 'postgresql': $connstr = ""; if (isset($dbspec->{'DBHost'})) { $connstr .= " host=" . $dbspec->{'DBHost'}; } if (isset($dbspec->{'DBPort'})) { $connstr .= " port=" . $dbspec->{'DBPort'}; } if (isset($dbspec->{'DBName'})) { $connstr .= " dbname=" . $dbspec->{'DBName'}; } if (isset($dbspec->{'Service'})) { $connstr .= " service=" . $dbspec->{'Service'}; } if (isset($dbspec->{'SSLMode'})) { $connstr .= " sslmode=" . $dbspec->{'sslmode'}; } if (isset($dbspec->{'Options'})) { $connstr .= " sslmode=" . $dbspec->{'Options'}; } if (isset($dbspec->{'Username'})) { $connstr .= " user="******" password="******"unset dbtype"); // XXX -- set an error and return null } else { die("Unknown database " . $dbspec->{'DBType'}); } } } }