usr/src/cmd/ntpd/Patches/mdns.patch
changeset 42 b6f829cb6d9e
parent 0 b34509ac961f
equal deleted inserted replaced
41:02f9b601daa1 42:b6f829cb6d9e
     1 --- ntpd/ntpd-opts.c.orig	Thu May 14 06:34:41 2009
     1 --- ntpd/ntpd-opts.c.orig	Thu Jul 29 09:29:51 2010
     2 +++ ntpd/ntpd-opts.c	Thu May 14 06:15:13 2009
     2 +++ ntpd/ntpd-opts.c	Thu Jul 29 09:43:40 2010
     3 @@ -237,6 +237,24 @@
     3 @@ -243,6 +243,24 @@
     4  #define NOVIRTUALIPS_FLAGS       (OPTST_DISABLED)
     4  #define NOVIRTUALIPS_FLAGS       (OPTST_DISABLED)
     5  
     5  
     6  /*
     6  /*
     7 + *  Mdns option description:
     7 + *  Mdns option description:
     8 + */
     8 + */
    23 +
    23 +
    24 +/*
    24 +/*
    25   *  Modifymmtimer option description:
    25   *  Modifymmtimer option description:
    26   */
    26   */
    27  #ifdef SYS_WINNT
    27  #ifdef SYS_WINNT
    28 @@ -632,10 +650,22 @@
    28 @@ -673,10 +691,22 @@
    29       /* desc, NAME, name */ zNovirtualipsText, zNovirtualips_NAME, zNovirtualips_Name,
    29       /* desc, NAME, name */ zNovirtualipsText, zNovirtualips_NAME, zNovirtualips_Name,
    30       /* disablement strs */ NULL, NULL },
    30       /* disablement strs */ NULL, NULL },
    31  
    31  
    32 -  {  /* entry idx, value */ 15, VALUE_OPT_MODIFYMMTIMER,
    32 -  {  /* entry idx, value */ 15, VALUE_OPT_MODIFYMMTIMER,
    33 -     /* equiv idx, value */ 15, VALUE_OPT_MODIFYMMTIMER,
    33 -     /* equiv idx, value */ 15, VALUE_OPT_MODIFYMMTIMER,
    48 +     /* equivalenced to  */ NO_EQUIVALENT,
    48 +     /* equivalenced to  */ NO_EQUIVALENT,
    49 +     /* min, max, act ct */ 0, 1, 0,
    49 +     /* min, max, act ct */ 0, 1, 0,
    50       /* opt state flags  */ MODIFYMMTIMER_FLAGS, 0,
    50       /* opt state flags  */ MODIFYMMTIMER_FLAGS, 0,
    51       /* last opt argumnt */ { NULL },
    51       /* last opt argumnt */ { NULL },
    52       /* arg list/cookie  */ NULL,
    52       /* arg list/cookie  */ NULL,
    53 @@ -644,8 +674,8 @@
    53 @@ -685,8 +715,8 @@
    54       /* desc, NAME, name */ zModifymmtimerText, zModifymmtimer_NAME, zModifymmtimer_Name,
    54       /* desc, NAME, name */ zModifymmtimerText, zModifymmtimer_NAME, zModifymmtimer_Name,
    55       /* disablement strs */ NULL, NULL },
    55       /* disablement strs */ NULL, NULL },
    56  
    56  
    57 -  {  /* entry idx, value */ 16, VALUE_OPT_NOFORK,
    57 -  {  /* entry idx, value */ 16, VALUE_OPT_NOFORK,
    58 -     /* equiv idx, value */ 16, VALUE_OPT_NOFORK,
    58 -     /* equiv idx, value */ 16, VALUE_OPT_NOFORK,
    59 +  {  /* entry idx, value */ 17, VALUE_OPT_NOFORK,
    59 +  {  /* entry idx, value */ 17, VALUE_OPT_NOFORK,
    60 +     /* equiv idx, value */ 17, VALUE_OPT_NOFORK,
    60 +     /* equiv idx, value */ 17, VALUE_OPT_NOFORK,
    61       /* equivalenced to  */ NO_EQUIVALENT,
    61       /* equivalenced to  */ NO_EQUIVALENT,
    62       /* min, max, act ct */ 0, 1, 0,
    62       /* min, max, act ct */ 0, 1, 0,
    63       /* opt state flags  */ NOFORK_FLAGS, 0,
    63       /* opt state flags  */ NOFORK_FLAGS, 0,
    64 @@ -656,8 +686,8 @@
    64 @@ -697,8 +727,8 @@
    65       /* desc, NAME, name */ zNoforkText, zNofork_NAME, zNofork_Name,
    65       /* desc, NAME, name */ zNoforkText, zNofork_NAME, zNofork_Name,
    66       /* disablement strs */ NULL, NULL },
    66       /* disablement strs */ NULL, NULL },
    67  
    67  
    68 -  {  /* entry idx, value */ 17, VALUE_OPT_NICE,
    68 -  {  /* entry idx, value */ 17, VALUE_OPT_NICE,
    69 -     /* equiv idx, value */ 17, VALUE_OPT_NICE,
    69 -     /* equiv idx, value */ 17, VALUE_OPT_NICE,
    70 +  {  /* entry idx, value */ 18, VALUE_OPT_NICE,
    70 +  {  /* entry idx, value */ 18, VALUE_OPT_NICE,
    71 +     /* equiv idx, value */ 18, VALUE_OPT_NICE,
    71 +     /* equiv idx, value */ 18, VALUE_OPT_NICE,
    72       /* equivalenced to  */ NO_EQUIVALENT,
    72       /* equivalenced to  */ NO_EQUIVALENT,
    73       /* min, max, act ct */ 0, 1, 0,
    73       /* min, max, act ct */ 0, 1, 0,
    74       /* opt state flags  */ NICE_FLAGS, 0,
    74       /* opt state flags  */ NICE_FLAGS, 0,
    75 @@ -668,8 +698,8 @@
    75 @@ -709,8 +739,8 @@
    76       /* desc, NAME, name */ zNiceText, zNice_NAME, zNice_Name,
    76       /* desc, NAME, name */ zNiceText, zNice_NAME, zNice_Name,
    77       /* disablement strs */ NULL, NULL },
    77       /* disablement strs */ NULL, NULL },
    78  
    78  
    79 -  {  /* entry idx, value */ 18, VALUE_OPT_PIDFILE,
    79 -  {  /* entry idx, value */ 18, VALUE_OPT_PIDFILE,
    80 -     /* equiv idx, value */ 18, VALUE_OPT_PIDFILE,
    80 -     /* equiv idx, value */ 18, VALUE_OPT_PIDFILE,
    81 +  {  /* entry idx, value */ 19, VALUE_OPT_PIDFILE,
    81 +  {  /* entry idx, value */ 19, VALUE_OPT_PIDFILE,
    82 +     /* equiv idx, value */ 19, VALUE_OPT_PIDFILE,
    82 +     /* equiv idx, value */ 19, VALUE_OPT_PIDFILE,
    83       /* equivalenced to  */ NO_EQUIVALENT,
    83       /* equivalenced to  */ NO_EQUIVALENT,
    84       /* min, max, act ct */ 0, 1, 0,
    84       /* min, max, act ct */ 0, 1, 0,
    85       /* opt state flags  */ PIDFILE_FLAGS, 0,
    85       /* opt state flags  */ PIDFILE_FLAGS, 0,
    86 @@ -680,8 +710,8 @@
    86 @@ -721,8 +751,8 @@
    87       /* desc, NAME, name */ zPidfileText, zPidfile_NAME, zPidfile_Name,
    87       /* desc, NAME, name */ zPidfileText, zPidfile_NAME, zPidfile_Name,
    88       /* disablement strs */ NULL, NULL },
    88       /* disablement strs */ NULL, NULL },
    89  
    89  
    90 -  {  /* entry idx, value */ 19, VALUE_OPT_PRIORITY,
    90 -  {  /* entry idx, value */ 19, VALUE_OPT_PRIORITY,
    91 -     /* equiv idx, value */ 19, VALUE_OPT_PRIORITY,
    91 -     /* equiv idx, value */ 19, VALUE_OPT_PRIORITY,
    92 +  {  /* entry idx, value */ 20, VALUE_OPT_PRIORITY,
    92 +  {  /* entry idx, value */ 20, VALUE_OPT_PRIORITY,
    93 +     /* equiv idx, value */ 20, VALUE_OPT_PRIORITY,
    93 +     /* equiv idx, value */ 20, VALUE_OPT_PRIORITY,
    94       /* equivalenced to  */ NO_EQUIVALENT,
    94       /* equivalenced to  */ NO_EQUIVALENT,
    95       /* min, max, act ct */ 0, 1, 0,
    95       /* min, max, act ct */ 0, 1, 0,
    96       /* opt state flags  */ PRIORITY_FLAGS, 0,
    96       /* opt state flags  */ PRIORITY_FLAGS, 0,
    97 @@ -692,8 +722,8 @@
    97 @@ -733,8 +763,8 @@
    98       /* desc, NAME, name */ zPriorityText, zPriority_NAME, zPriority_Name,
    98       /* desc, NAME, name */ zPriorityText, zPriority_NAME, zPriority_Name,
    99       /* disablement strs */ NULL, NULL },
    99       /* disablement strs */ NULL, NULL },
   100  
   100  
   101 -  {  /* entry idx, value */ 20, VALUE_OPT_QUIT,
   101 -  {  /* entry idx, value */ 20, VALUE_OPT_QUIT,
   102 -     /* equiv idx, value */ 20, VALUE_OPT_QUIT,
   102 -     /* equiv idx, value */ 20, VALUE_OPT_QUIT,
   103 +  {  /* entry idx, value */ 21, VALUE_OPT_QUIT,
   103 +  {  /* entry idx, value */ 21, VALUE_OPT_QUIT,
   104 +     /* equiv idx, value */ 21, VALUE_OPT_QUIT,
   104 +     /* equiv idx, value */ 21, VALUE_OPT_QUIT,
   105       /* equivalenced to  */ NO_EQUIVALENT,
   105       /* equivalenced to  */ NO_EQUIVALENT,
   106       /* min, max, act ct */ 0, 1, 0,
   106       /* min, max, act ct */ 0, 1, 0,
   107       /* opt state flags  */ QUIT_FLAGS, 0,
   107       /* opt state flags  */ QUIT_FLAGS, 0,
   108 @@ -704,8 +734,8 @@
   108 @@ -745,8 +775,8 @@
   109       /* desc, NAME, name */ zQuitText, zQuit_NAME, zQuit_Name,
   109       /* desc, NAME, name */ zQuitText, zQuit_NAME, zQuit_Name,
   110       /* disablement strs */ NULL, NULL },
   110       /* disablement strs */ NULL, NULL },
   111  
   111  
   112 -  {  /* entry idx, value */ 21, VALUE_OPT_PROPAGATIONDELAY,
   112 -  {  /* entry idx, value */ 21, VALUE_OPT_PROPAGATIONDELAY,
   113 -     /* equiv idx, value */ 21, VALUE_OPT_PROPAGATIONDELAY,
   113 -     /* equiv idx, value */ 21, VALUE_OPT_PROPAGATIONDELAY,
   114 +  {  /* entry idx, value */ 22, VALUE_OPT_PROPAGATIONDELAY,
   114 +  {  /* entry idx, value */ 22, VALUE_OPT_PROPAGATIONDELAY,
   115 +     /* equiv idx, value */ 22, VALUE_OPT_PROPAGATIONDELAY,
   115 +     /* equiv idx, value */ 22, VALUE_OPT_PROPAGATIONDELAY,
   116       /* equivalenced to  */ NO_EQUIVALENT,
   116       /* equivalenced to  */ NO_EQUIVALENT,
   117       /* min, max, act ct */ 0, 1, 0,
   117       /* min, max, act ct */ 0, 1, 0,
   118       /* opt state flags  */ PROPAGATIONDELAY_FLAGS, 0,
   118       /* opt state flags  */ PROPAGATIONDELAY_FLAGS, 0,
   119 @@ -716,8 +746,8 @@
   119 @@ -757,8 +787,8 @@
   120       /* desc, NAME, name */ zPropagationdelayText, zPropagationdelay_NAME, zPropagationdelay_Name,
   120       /* desc, NAME, name */ zPropagationdelayText, zPropagationdelay_NAME, zPropagationdelay_Name,
   121       /* disablement strs */ NULL, NULL },
   121       /* disablement strs */ NULL, NULL },
   122  
   122  
   123 -  {  /* entry idx, value */ 22, VALUE_OPT_STATSDIR,
   123 -  {  /* entry idx, value */ 22, VALUE_OPT_STATSDIR,
   124 -     /* equiv idx, value */ 22, VALUE_OPT_STATSDIR,
   124 -     /* equiv idx, value */ 22, VALUE_OPT_STATSDIR,
   125 +  {  /* entry idx, value */ 23, VALUE_OPT_STATSDIR,
   125 +  {  /* entry idx, value */ 23, VALUE_OPT_STATSDIR,
   126 +     /* equiv idx, value */ 23, VALUE_OPT_STATSDIR,
   126 +     /* equiv idx, value */ 23, VALUE_OPT_STATSDIR,
   127       /* equivalenced to  */ NO_EQUIVALENT,
   127       /* equivalenced to  */ NO_EQUIVALENT,
   128       /* min, max, act ct */ 0, 1, 0,
   128       /* min, max, act ct */ 0, 1, 0,
   129       /* opt state flags  */ STATSDIR_FLAGS, 0,
   129       /* opt state flags  */ STATSDIR_FLAGS, 0,
   130 @@ -728,8 +758,8 @@
   130 @@ -769,8 +799,8 @@
   131       /* desc, NAME, name */ zStatsdirText, zStatsdir_NAME, zStatsdir_Name,
   131       /* desc, NAME, name */ zStatsdirText, zStatsdir_NAME, zStatsdir_Name,
   132       /* disablement strs */ NULL, NULL },
   132       /* disablement strs */ NULL, NULL },
   133  
   133  
   134 -  {  /* entry idx, value */ 23, VALUE_OPT_TRUSTEDKEY,
   134 -  {  /* entry idx, value */ 23, VALUE_OPT_TRUSTEDKEY,
   135 -     /* equiv idx, value */ 23, VALUE_OPT_TRUSTEDKEY,
   135 -     /* equiv idx, value */ 23, VALUE_OPT_TRUSTEDKEY,
   136 +  {  /* entry idx, value */ 24, VALUE_OPT_TRUSTEDKEY,
   136 +  {  /* entry idx, value */ 24, VALUE_OPT_TRUSTEDKEY,
   137 +     /* equiv idx, value */ 24, VALUE_OPT_TRUSTEDKEY,
   137 +     /* equiv idx, value */ 24, VALUE_OPT_TRUSTEDKEY,
   138       /* equivalenced to  */ NO_EQUIVALENT,
   138       /* equivalenced to  */ NO_EQUIVALENT,
   139       /* min, max, act ct */ 0, NOLIMIT, 0,
   139       /* min, max, act ct */ 0, NOLIMIT, 0,
   140       /* opt state flags  */ TRUSTEDKEY_FLAGS, 0,
   140       /* opt state flags  */ TRUSTEDKEY_FLAGS, 0,
   141 @@ -740,8 +770,8 @@
   141 @@ -781,8 +811,8 @@
   142       /* desc, NAME, name */ zTrustedkeyText, zTrustedkey_NAME, zTrustedkey_Name,
   142       /* desc, NAME, name */ zTrustedkeyText, zTrustedkey_NAME, zTrustedkey_Name,
   143       /* disablement strs */ NULL, NULL },
   143       /* disablement strs */ NULL, NULL },
   144  
   144  
   145 -  {  /* entry idx, value */ 24, VALUE_OPT_USER,
   145 -  {  /* entry idx, value */ 24, VALUE_OPT_USER,
   146 -     /* equiv idx, value */ 24, VALUE_OPT_USER,
   146 -     /* equiv idx, value */ 24, VALUE_OPT_USER,
   147 +  {  /* entry idx, value */ 25, VALUE_OPT_USER,
   147 +  {  /* entry idx, value */ 25, VALUE_OPT_USER,
   148 +     /* equiv idx, value */ 25, VALUE_OPT_USER,
   148 +     /* equiv idx, value */ 25, VALUE_OPT_USER,
   149       /* equivalenced to  */ NO_EQUIVALENT,
   149       /* equivalenced to  */ NO_EQUIVALENT,
   150       /* min, max, act ct */ 0, 1, 0,
   150       /* min, max, act ct */ 0, 1, 0,
   151       /* opt state flags  */ USER_FLAGS, 0,
   151       /* opt state flags  */ USER_FLAGS, 0,
   152 @@ -752,8 +782,8 @@
   152 @@ -793,8 +823,8 @@
   153       /* desc, NAME, name */ zUserText, zUser_NAME, zUser_Name,
   153       /* desc, NAME, name */ zUserText, zUser_NAME, zUser_Name,
   154       /* disablement strs */ NULL, NULL },
   154       /* disablement strs */ NULL, NULL },
   155  
   155  
   156 -  {  /* entry idx, value */ 25, VALUE_OPT_UPDATEINTERVAL,
   156 -  {  /* entry idx, value */ 25, VALUE_OPT_UPDATEINTERVAL,
   157 -     /* equiv idx, value */ 25, VALUE_OPT_UPDATEINTERVAL,
   157 -     /* equiv idx, value */ 25, VALUE_OPT_UPDATEINTERVAL,
   158 +  {  /* entry idx, value */ 26, VALUE_OPT_UPDATEINTERVAL,
   158 +  {  /* entry idx, value */ 26, VALUE_OPT_UPDATEINTERVAL,
   159 +     /* equiv idx, value */ 26, VALUE_OPT_UPDATEINTERVAL,
   159 +     /* equiv idx, value */ 26, VALUE_OPT_UPDATEINTERVAL,
   160       /* equivalenced to  */ NO_EQUIVALENT,
   160       /* equivalenced to  */ NO_EQUIVALENT,
   161       /* min, max, act ct */ 0, 1, 0,
   161       /* min, max, act ct */ 0, 1, 0,
   162       /* opt state flags  */ UPDATEINTERVAL_FLAGS, 0,
   162       /* opt state flags  */ UPDATEINTERVAL_FLAGS, 0,
   163 @@ -764,8 +794,8 @@
   163 @@ -805,8 +835,8 @@
   164       /* desc, NAME, name */ zUpdateintervalText, zUpdateinterval_NAME, zUpdateinterval_Name,
   164       /* desc, NAME, name */ zUpdateintervalText, zUpdateinterval_NAME, zUpdateinterval_Name,
   165       /* disablement strs */ NULL, NULL },
   165       /* disablement strs */ NULL, NULL },
   166  
   166  
   167 -  {  /* entry idx, value */ 26, VALUE_OPT_VAR,
   167 -  {  /* entry idx, value */ 26, VALUE_OPT_VAR,
   168 -     /* equiv idx, value */ 26, VALUE_OPT_VAR,
   168 -     /* equiv idx, value */ 26, VALUE_OPT_VAR,
   169 +  {  /* entry idx, value */ 27, VALUE_OPT_VAR,
   169 +  {  /* entry idx, value */ 27, VALUE_OPT_VAR,
   170 +     /* equiv idx, value */ 27, VALUE_OPT_VAR,
   170 +     /* equiv idx, value */ 27, VALUE_OPT_VAR,
   171       /* equivalenced to  */ NO_EQUIVALENT,
   171       /* equivalenced to  */ NO_EQUIVALENT,
   172       /* min, max, act ct */ 0, NOLIMIT, 0,
   172       /* min, max, act ct */ 0, NOLIMIT, 0,
   173       /* opt state flags  */ VAR_FLAGS, 0,
   173       /* opt state flags  */ VAR_FLAGS, 0,
   174 @@ -776,8 +806,8 @@
   174 @@ -817,8 +847,8 @@
   175       /* desc, NAME, name */ zVarText, zVar_NAME, zVar_Name,
   175       /* desc, NAME, name */ zVarText, zVar_NAME, zVar_Name,
   176       /* disablement strs */ NULL, NULL },
   176       /* disablement strs */ NULL, NULL },
   177  
   177  
   178 -  {  /* entry idx, value */ 27, VALUE_OPT_DVAR,
   178 -  {  /* entry idx, value */ 27, VALUE_OPT_DVAR,
   179 -     /* equiv idx, value */ 27, VALUE_OPT_DVAR,
   179 -     /* equiv idx, value */ 27, VALUE_OPT_DVAR,
   180 +  {  /* entry idx, value */ 28, VALUE_OPT_DVAR,
   180 +  {  /* entry idx, value */ 28, VALUE_OPT_DVAR,
   181 +     /* equiv idx, value */ 28, VALUE_OPT_DVAR,
   181 +     /* equiv idx, value */ 28, VALUE_OPT_DVAR,
   182       /* equivalenced to  */ NO_EQUIVALENT,
   182       /* equivalenced to  */ NO_EQUIVALENT,
   183       /* min, max, act ct */ 0, NOLIMIT, 0,
   183       /* min, max, act ct */ 0, NOLIMIT, 0,
   184       /* opt state flags  */ DVAR_FLAGS, 0,
   184       /* opt state flags  */ DVAR_FLAGS, 0,
   185 @@ -788,8 +818,8 @@
   185 @@ -829,8 +859,8 @@
   186       /* desc, NAME, name */ zDvarText, zDvar_NAME, zDvar_Name,
   186       /* desc, NAME, name */ zDvarText, zDvar_NAME, zDvar_Name,
   187       /* disablement strs */ NULL, NULL },
   187       /* disablement strs */ NULL, NULL },
   188  
   188  
   189 -  {  /* entry idx, value */ 28, VALUE_OPT_SLEW,
   189 -  {  /* entry idx, value */ 28, VALUE_OPT_SLEW,
   190 -     /* equiv idx, value */ 28, VALUE_OPT_SLEW,
   190 -     /* equiv idx, value */ 28, VALUE_OPT_SLEW,
   191 +  {  /* entry idx, value */ 29, VALUE_OPT_SLEW,
   191 +  {  /* entry idx, value */ 29, VALUE_OPT_SLEW,
   192 +     /* equiv idx, value */ 29, VALUE_OPT_SLEW,
   192 +     /* equiv idx, value */ 29, VALUE_OPT_SLEW,
   193       /* equivalenced to  */ NO_EQUIVALENT,
   193       /* equivalenced to  */ NO_EQUIVALENT,
   194       /* min, max, act ct */ 0, 1, 0,
   194       /* min, max, act ct */ 0, 1, 0,
   195       /* opt state flags  */ SLEW_FLAGS, 0,
   195       /* opt state flags  */ SLEW_FLAGS, 0,
   196 @@ -899,7 +929,7 @@
   196 @@ -967,7 +997,7 @@
   197        NO_EQUIVALENT /* index of '-#' option */,
   197        NO_EQUIVALENT, /* '-#' option index */
   198        NO_EQUIVALENT /* index of default opt */
   198        NO_EQUIVALENT /* index of default opt */
   199      },
   199      },
   200 -    32 /* full option count */, 29 /* user option count */
   200 -    34 /* full option count */, 31 /* user option count */,
   201 +    33 /* full option count */, 30 /* user option count */
   201 +    35 /* full option count */, 32 /* user option count */,
       
   202      ntpd_full_usage, ntpd_short_usage,
       
   203      NULL, NULL
   202  };
   204  };
   203  
   205 --- ntpd/ntpd.c.orig	Wed Aug 12 04:07:05 2009
   204  /*
   206 +++ ntpd/ntpd.c	Thu Jul 29 09:48:44 2010
   205 --- ntpd/ntpd.c.orig	Thu May 14 06:34:41 2009
   207 @@ -166,7 +166,7 @@
   206 +++ ntpd/ntpd.c	Thu May 14 06:15:13 2009
   208   * after we have synched the first time. If the attempt fails, then try again once per 
   207 @@ -160,6 +160,14 @@
   209   * minute for up to 5 times. After all, we may be starting before mDNS.
   208   */
   210   */
   209  int nofork = 0;			/* Fork by default */
   211 -int mdnsreg = 1;
   210  
       
   211 +/*
       
   212 + * mDNS registration flag. If set, we attempt to register with the mDNS system, but only
       
   213 + * after we have synched the first time. If the attempt fails, then try again once per 
       
   214 + * minute for up to 5 times. After all, we may be starting before mDNS.
       
   215 + */
       
   216 +int mdnsreg = 0;
   212 +int mdnsreg = 0;
   217 +int mdnstries = 5;
   213  int mdnstries = 5;
   218 +
   214  #endif  /* HAVE_DNSREGISTRATION */
   219  #ifdef HAVE_DROPROOT
   215  
   220  int droproot = 0;
   216 @@ -540,6 +540,9 @@
   221  char *user = NULL;		/* User to switch to */
       
   222 @@ -527,6 +535,9 @@
       
   223  	if (HAVE_OPT( NOVIRTUALIPS ))
   217  	if (HAVE_OPT( NOVIRTUALIPS ))
   224  		listen_to_virtual_ips = 0;
   218  		listen_to_virtual_ips = 0;
   225  
   219  
   226 +	if (HAVE_OPT( MDNS ))
   220 +	if (HAVE_OPT( MDNS ))
   227 +		mdnsreg = 1;
   221 +		mdnsreg = 1;
   228 +
   222 +
   229  	/*
   223  	/*
   230  	 * Limit specific interfaces
   224  	 * Limit specific interfaces
   231  	 */
   225  	 */
   232 @@ -840,13 +851,6 @@
   226 --- ntpd/ntpd-opts.h.orig	Wed Aug 12 04:42:23 2009
   233  	loop_config(LOOP_DRIFTCOMP, old_drift);
   227 +++ ntpd/ntpd-opts.h	Thu Jul 29 09:39:13 2010
   234  	initializing = 0;
   228 @@ -67,28 +67,29 @@
   235  
   229      INDEX_OPT_KEYFILE           = 12,
   236 -#ifdef HAVE_DNSREGISTRATION
   230      INDEX_OPT_LOGFILE           = 13,
   237 -	msyslog(LOG_INFO, "Attemping to register mDNS");
   231      INDEX_OPT_NOVIRTUALIPS      = 14,
   238 -	if ( DNSServiceRegister (&mdns, 0, 0, NULL, "_ntp._udp", NULL, NULL, htons(NTP_PORT), 0, NULL, NULL, NULL) != kDNSServiceErr_NoError ) {
   232 -    INDEX_OPT_MODIFYMMTIMER     = 15,
   239 -		msyslog(LOG_ERR, "Unable to register mDNS");
   233 -    INDEX_OPT_NOFORK            = 16,
   240 -	}
   234 -    INDEX_OPT_NICE              = 17,
   241 -#endif
   235 -    INDEX_OPT_PIDFILE           = 18,
   242 -
   236 -    INDEX_OPT_PRIORITY          = 19,
   243  #ifdef HAVE_DROPROOT
   237 -    INDEX_OPT_QUIT              = 20,
   244  	if( droproot ) {
   238 -    INDEX_OPT_PROPAGATIONDELAY  = 21,
   245  		/* Drop super-user privileges and chroot now if the OS supports this */
   239 -    INDEX_OPT_STATSDIR          = 22,
   246 @@ -1148,6 +1152,25 @@
   240 -    INDEX_OPT_TRUSTEDKEY        = 23,
   247  		/*
   241 -    INDEX_OPT_USER              = 24,
   248  		 * Go around again
   242 -    INDEX_OPT_UPDATEINTERVAL    = 25,
   249  		 */
   243 -    INDEX_OPT_VAR               = 26,
   250 +
   244 -    INDEX_OPT_DVAR              = 27,
   251 +#ifdef HAVE_DNSREGISTRATION
   245 -    INDEX_OPT_SLEW              = 28,
   252 +		if (mdnsreg && (current_time - mdnsreg ) > 60 && mdnstries && sys_leap != LEAP_NOTINSYNC) {
   246 -    INDEX_OPT_USEPCC            = 29,
   253 +			mdnsreg = current_time;
   247 -    INDEX_OPT_PCCFREQ           = 30,
   254 +			msyslog(LOG_INFO, "Attemping to register mDNS");
   248 -    INDEX_OPT_VERSION           = 31,
   255 +			if ( DNSServiceRegister (&mdns, 0, 0, NULL, "_ntp._udp", NULL, NULL, 
   249 -    INDEX_OPT_HELP              = 32,
   256 +			    htons(NTP_PORT), 0, NULL, NULL, NULL) != kDNSServiceErr_NoError ) {
   250 -    INDEX_OPT_MORE_HELP         = 33
   257 +				if (!--mdnstries) {
   251 +    INDEX_OPT_MDNS              = 15,
   258 +					msyslog(LOG_ERR, "Unable to register mDNS, giving up.");
   252 +    INDEX_OPT_MODIFYMMTIMER     = 16,
   259 +				} else {	
   253 +    INDEX_OPT_NOFORK            = 17,
   260 +					msyslog(LOG_INFO, "Unable to register mDNS, will try later.");
   254 +    INDEX_OPT_NICE              = 18,
   261 +				}
   255 +    INDEX_OPT_PIDFILE           = 19,
   262 +			} else {
   256 +    INDEX_OPT_PRIORITY          = 20,
   263 +				msyslog(LOG_INFO, "mDNS service registered.");
   257 +    INDEX_OPT_QUIT              = 21,
   264 +				mdnsreg = 0;
   258 +    INDEX_OPT_PROPAGATIONDELAY  = 22,
   265 +			}
   259 +    INDEX_OPT_STATSDIR          = 23,
   266 +		}
   260 +    INDEX_OPT_TRUSTEDKEY        = 24,
   267 +#endif /* HAVE_DNSREGISTRATION */
   261 +    INDEX_OPT_USER              = 25,
   268 +
   262 +    INDEX_OPT_UPDATEINTERVAL    = 26,
   269  	}
   263 +    INDEX_OPT_VAR               = 27,
   270  	UNBLOCK_IO_AND_ALARM();
   264 +    INDEX_OPT_DVAR              = 28,
   271  	return 1;
   265 +    INDEX_OPT_SLEW              = 29,
   272 --- ntpd/ntpd-opts.h.orig	Thu May 14 06:34:41 2009
   266 +    INDEX_OPT_USEPCC            = 30,
   273 +++ ntpd/ntpd-opts.h	Thu May 14 06:15:13 2009
   267 +    INDEX_OPT_PCCFREQ           = 31,
   274 @@ -67,26 +67,27 @@
   268 +    INDEX_OPT_VERSION           = 32,
   275          INDEX_OPT_KEYFILE          = 12,
   269 +    INDEX_OPT_HELP              = 33,
   276          INDEX_OPT_LOGFILE          = 13,
   270 +    INDEX_OPT_MORE_HELP         = 34
   277          INDEX_OPT_NOVIRTUALIPS     = 14,
       
   278 -        INDEX_OPT_MODIFYMMTIMER    = 15,
       
   279 -        INDEX_OPT_NOFORK           = 16,
       
   280 -        INDEX_OPT_NICE             = 17,
       
   281 -        INDEX_OPT_PIDFILE          = 18,
       
   282 -        INDEX_OPT_PRIORITY         = 19,
       
   283 -        INDEX_OPT_QUIT             = 20,
       
   284 -        INDEX_OPT_PROPAGATIONDELAY = 21,
       
   285 -        INDEX_OPT_STATSDIR         = 22,
       
   286 -        INDEX_OPT_TRUSTEDKEY       = 23,
       
   287 -        INDEX_OPT_USER             = 24,
       
   288 -        INDEX_OPT_UPDATEINTERVAL   = 25,
       
   289 -        INDEX_OPT_VAR              = 26,
       
   290 -        INDEX_OPT_DVAR             = 27,
       
   291 -        INDEX_OPT_SLEW             = 28,
       
   292 -        INDEX_OPT_VERSION          = 29,
       
   293 -        INDEX_OPT_HELP             = 30,
       
   294 -        INDEX_OPT_MORE_HELP        = 31
       
   295 +	INDEX_OPT_MDNS             = 15,
       
   296 +        INDEX_OPT_MODIFYMMTIMER    = 16,
       
   297 +        INDEX_OPT_NOFORK           = 17,
       
   298 +        INDEX_OPT_NICE             = 18,
       
   299 +        INDEX_OPT_PIDFILE          = 19,
       
   300 +        INDEX_OPT_PRIORITY         = 20,
       
   301 +        INDEX_OPT_QUIT             = 21,
       
   302 +        INDEX_OPT_PROPAGATIONDELAY = 22,
       
   303 +        INDEX_OPT_STATSDIR         = 23,
       
   304 +        INDEX_OPT_TRUSTEDKEY       = 24,
       
   305 +        INDEX_OPT_USER             = 25,
       
   306 +        INDEX_OPT_UPDATEINTERVAL   = 26,
       
   307 +        INDEX_OPT_VAR              = 27,
       
   308 +        INDEX_OPT_DVAR             = 28,
       
   309 +        INDEX_OPT_SLEW             = 29,
       
   310 +        INDEX_OPT_VERSION          = 30,
       
   311 +        INDEX_OPT_HELP             = 31,
       
   312 +        INDEX_OPT_MORE_HELP        = 32
       
   313  } teOptIndex;
   271  } teOptIndex;
   314  
   272  
   315 -#define OPTION_CT    32
   273 -#define OPTION_CT    34
   316 +#define OPTION_CT    33
   274 +#define OPTION_CT    35
   317  #define NTPD_VERSION       "4.2.5p172"
   275  #define NTPD_VERSION       "4.2.5p200"
   318  #define NTPD_FULL_VERSION  "ntpd - NTP daemon program - Ver. 4.2.5p172"
   276  #define NTPD_FULL_VERSION  "ntpd - NTP daemon program - Ver. 4.2.5p200"
   319  
   277  
   320 @@ -175,6 +176,10 @@
   278 @@ -177,6 +178,10 @@
   321  #  warning undefining NOVIRTUALIPS due to option name conflict
   279  #  warning undefining NOVIRTUALIPS due to option name conflict
   322  #  undef   NOVIRTUALIPS
   280  #  undef   NOVIRTUALIPS
   323  # endif
   281  # endif
   324 +# ifdef    MDNS
   282 +# ifdef    MDNS
   325 +#  warning undefining MDNS due to option name conflict
   283 +#  warning undefining MDNS due to option name conflict
   326 +#  undef   MDNS
   284 +#  undef   MDNS
   327 +# endif
   285 +# endif
   328  # ifdef    MODIFYMMTIMER
   286  # ifdef    MODIFYMMTIMER
   329  #  warning undefining MODIFYMMTIMER due to option name conflict
   287  #  warning undefining MODIFYMMTIMER due to option name conflict
   330  #  undef   MODIFYMMTIMER
   288  #  undef   MODIFYMMTIMER
   331 @@ -247,6 +252,7 @@
   289 @@ -257,6 +262,7 @@
   332  # undef KEYFILE
   290  # undef KEYFILE
   333  # undef LOGFILE
   291  # undef LOGFILE
   334  # undef NOVIRTUALIPS
   292  # undef NOVIRTUALIPS
   335 +# undef MDNS
   293 +# undef MDNS
   336  # undef MODIFYMMTIMER
   294  # undef MODIFYMMTIMER
   337  # undef NOFORK
   295  # undef NOFORK
   338  # undef NICE
   296  # undef NICE
   339 @@ -289,6 +295,9 @@
   297 @@ -302,6 +308,9 @@
   340  #define VALUE_OPT_KEYFILE        'k'
   298  #define VALUE_OPT_KEYFILE        'k'
   341  #define VALUE_OPT_LOGFILE        'l'
   299  #define VALUE_OPT_LOGFILE        'l'
   342  #define VALUE_OPT_NOVIRTUALIPS   'L'
   300  #define VALUE_OPT_NOVIRTUALIPS   'L'
   343 +#ifdef HAVE_DNSREGISTRATION
   301 +#ifdef HAVE_DNSREGISTRATION
   344 +#define VALUE_OPT_MDNS           'm'
   302 +#define VALUE_OPT_MDNS           'm'
   345 +#endif /* HAVE_DNSREGISTRATION */
   303 +#endif /* HAVE_DNSREGISTRATION */
   346  #ifdef SYS_WINNT
   304  #ifdef SYS_WINNT
   347  #define VALUE_OPT_MODIFYMMTIMER  'M'
   305  #define VALUE_OPT_MODIFYMMTIMER  'M'
   348  #endif /* SYS_WINNT */
   306  #endif /* SYS_WINNT */
   349 @@ -306,8 +315,8 @@
   307 @@ -319,8 +328,8 @@
   350  #endif /* HAVE_DROPROOT */
   308  #endif /* HAVE_DROPROOT */
   351  #define VALUE_OPT_UPDATEINTERVAL 'U'
   309  #define VALUE_OPT_UPDATEINTERVAL 'U'
   352  #define OPT_VALUE_UPDATEINTERVAL (DESC(UPDATEINTERVAL).optArg.argInt)
   310  #define OPT_VALUE_UPDATEINTERVAL (DESC(UPDATEINTERVAL).optArg.argInt)
   353 -#define VALUE_OPT_VAR            26
   311 -#define VALUE_OPT_VAR            26
   354 -#define VALUE_OPT_DVAR           27
   312 -#define VALUE_OPT_DVAR           27
   355 +#define VALUE_OPT_VAR            27
   313 +#define VALUE_OPT_VAR            27
   356 +#define VALUE_OPT_DVAR           28
   314 +#define VALUE_OPT_DVAR           28
   357  #define VALUE_OPT_SLEW           'x'
   315  #define VALUE_OPT_SLEW           'x'
   358  
   316  #ifdef SYS_WINNT
   359  #define VALUE_OPT_VERSION       INDEX_OPT_VERSION
   317  #define VALUE_OPT_USEPCC         29