diff options
-rw-r--r-- | doc/src/sgml/config.sgml | 18 | ||||
-rw-r--r-- | src/backend/postmaster/postmaster.c | 5 | ||||
-rw-r--r-- | src/backend/utils/misc/guc.c | 28 | ||||
-rw-r--r-- | src/backend/utils/misc/postgresql.conf.sample | 2 | ||||
-rw-r--r-- | src/include/postmaster/postmaster.h | 3 |
5 files changed, 49 insertions, 7 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 7a44f074a86..dd37586f1c0 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.224 2009/08/24 20:08:31 tgl Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.225 2009/09/08 17:08:36 tgl Exp $ --> <chapter Id="runtime-config"> <title>Server Configuration</title> @@ -472,6 +472,20 @@ SET ENABLE_SEQSCAN TO OFF; </listitem> </varlistentry> + <varlistentry id="guc-bonjour" xreflabel="bonjour"> + <term><varname>bonjour</varname> (<type>boolean</type>)</term> + <indexterm> + <primary><varname>bonjour</> configuration parameter</primary> + </indexterm> + <listitem> + <para> + Enables advertising the server's existence via + <productname>Bonjour</productname>. The default is off. + This parameter can only be set at server start. + </para> + </listitem> + </varlistentry> + <varlistentry id="guc-bonjour-name" xreflabel="bonjour_name"> <term><varname>bonjour_name</varname> (<type>string</type>)</term> <indexterm> @@ -479,7 +493,7 @@ SET ENABLE_SEQSCAN TO OFF; </indexterm> <listitem> <para> - Specifies the <productname>Bonjour</productname> broadcast + Specifies the <productname>Bonjour</productname> service name. The computer name is used if this parameter is set to the empty string <literal>''</> (which is the default). This parameter is ignored if the server was not compiled with diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 424bb72236d..b616eaca135 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -37,7 +37,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.595 2009/09/08 16:08:26 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.596 2009/09/08 17:08:36 tgl Exp $ * * NOTES * @@ -200,6 +200,7 @@ bool log_hostname; /* for ps display and logging */ bool Log_connections = false; bool Db_user_namespace = false; +bool enable_bonjour = false; char *bonjour_name; /* PIDs of special child processes; 0 when not running */ @@ -854,7 +855,7 @@ PostmasterMain(int argc, char *argv[]) #ifdef USE_BONJOUR /* Register for Bonjour only if we opened TCP socket(s) */ - if (ListenSocket[0] != -1) + if (enable_bonjour && ListenSocket[0] != -1) { DNSServiceErrorType err; diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 70dcefbc315..608378cb4b7 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut <[email protected]>. * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.515 2009/09/03 22:08:05 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.516 2009/09/08 17:08:36 tgl Exp $ * *-------------------------------------------------------------------- */ @@ -152,6 +152,7 @@ static bool assign_phony_autocommit(bool newval, bool doit, GucSource source); static const char *assign_custom_variable_classes(const char *newval, bool doit, GucSource source); static bool assign_debug_assertions(bool newval, bool doit, GucSource source); +static bool assign_bonjour(bool newval, bool doit, GucSource source); static bool assign_ssl(bool newval, bool doit, GucSource source); static bool assign_stage_log_stats(bool newval, bool doit, GucSource source); static bool assign_log_stats(bool newval, bool doit, GucSource source); @@ -682,6 +683,14 @@ static struct config_bool ConfigureNamesBool[] = false, NULL, NULL }, { + {"bonjour", PGC_POSTMASTER, CONN_AUTH_SETTINGS, + gettext_noop("Enables advertising the server via Bonjour."), + NULL + }, + &enable_bonjour, + false, assign_bonjour, NULL + }, + { {"ssl", PGC_POSTMASTER, CONN_AUTH_SECURITY, gettext_noop("Enables SSL connections."), NULL @@ -2199,7 +2208,7 @@ static struct config_string ConfigureNamesString[] = { {"bonjour_name", PGC_POSTMASTER, CONN_AUTH_SETTINGS, - gettext_noop("Sets the Bonjour broadcast service name."), + gettext_noop("Sets the Bonjour service name."), NULL }, &bonjour_name, @@ -7395,6 +7404,21 @@ assign_debug_assertions(bool newval, bool doit, GucSource source) } static bool +assign_bonjour(bool newval, bool doit, GucSource source) +{ +#ifndef USE_BONJOUR + if (newval) + { + ereport(GUC_complaint_elevel(source), + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Bonjour is not supported by this build"))); + return false; + } +#endif + return true; +} + +static bool assign_ssl(bool newval, bool doit, GucSource source) { #ifndef USE_SSL diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index c6c02fcd812..4a361391f2c 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -69,6 +69,8 @@ #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation # (change requires restart) +#bonjour = off # advertise server via Bonjour + # (change requires restart) #bonjour_name = '' # defaults to the computer name # (change requires restart) diff --git a/src/include/postmaster/postmaster.h b/src/include/postmaster/postmaster.h index 3b8061e4f7d..47e014bee39 100644 --- a/src/include/postmaster/postmaster.h +++ b/src/include/postmaster/postmaster.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/postmaster/postmaster.h,v 1.20 2009/05/05 19:59:00 tgl Exp $ + * $PostgreSQL: pgsql/src/include/postmaster/postmaster.h,v 1.21 2009/09/08 17:08:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -27,6 +27,7 @@ extern int PreAuthDelay; extern int AuthenticationTimeout; extern bool Log_connections; extern bool log_hostname; +extern bool enable_bonjour; extern char *bonjour_name; #ifdef WIN32 |