int listen_to_virtual_ips = 1;
char *specific_interface = NULL; /* interface name or IP address to bind to */
-static const char *ntp_options = "aAbB:c:C:dD:f:gi:k:l:L:nNO:p:P:qr:s:S:t:T:W:u:v:V:xY:Z:-:";
+static const char *ntp_options = "aAbB:c:C:dD:f:gHi:k:l:L:nNO:p:P:qr:s:S:t:T:W:u:v:V:xY:Z:-:";
#ifdef HAVE_NETINFO
extern int check_netinfo;
#endif
+
+void ntpd_usage( void )
+{
+ (void) fprintf(stderr, "usage: %s [ -abdgnqx ] [ -c config_file ]\n", progname);
+ (void) fprintf(stderr, "\t\t[ -f drift_file ] [ -k key_file ] [ -l log_file ]\n");
+ (void) fprintf(stderr, "\t\t[ -p pid_file ] [ -r broadcast_delay ] [ -s stats_dir ]\n");
+ (void) fprintf(stderr, "\t\t[ -t trusted_key ] [ -v sys_var ] [ -V default_sysvar ]\n");
+ (void) fprintf(stderr, "\t\t[ -L [ interface ] ]\n");
+#if defined(HAVE_SCHED_SETSCHEDULER)
+ (void) fprintf(stderr, "\t\t[ -P fixed_process_priority ]\n");
+#endif
+#ifdef HAVE_DROPROOT
+ (void) fprintf(stderr, "\t\t[ -u user[:group] ] [ -i jaildir ]\n");
+#endif
+} /* ntpd_usage */
+
+
/*
* getstartup - search through the options looking for a debugging flag
*/
++errflg;
break;
- case '-':
- if ( ! strcmp(ntp_optarg, "version") ) {
- printf("%.80s: %.80s\n", progname, Version);
- exit(0);
- } else if ( ! strcmp(ntp_optarg, "help") ) {
- /* usage(); */
- /* exit(0); */
- ++errflg;
- } else if ( ! strcmp(ntp_optarg, "copyright") ) {
- printf("unknown\n");
- exit(0);
- } else {
- fprintf(stderr, "%.80s: Error unknown argument '--%.80s'\n",
- progname,
- ntp_optarg);
- exit(12);
- }
- break;
+ case '-':
+ if ( ! strcmp(ntp_optarg, "version") ) {
+ printf("%.80s: %.80s\n", progname, Version);
+ exit(0);
+ } else if ( ! strcmp(ntp_optarg, "help") ) {
+ ntpd_usage();
+ exit(0);
+ } else if ( ! strcmp(ntp_optarg, "copyright") ) {
+ printf("unknown\n");
+ exit(0);
+ } else {
+ fprintf(stderr, "%.80s: Error unknown argument '--%.80s'\n",
+ progname,
+ ntp_optarg);
+ exit(12);
+ }
+ break;
default:
break;
- }
+ }
if (errflg || ntp_optind != argc) {
- (void) fprintf(stderr, "usage: %s [ -abdgnqx ] [ -c config_file ] [ -e e_delay ]\n", progname);
- (void) fprintf(stderr, "\t\t[ -f freq_file ] [ -k key_file ] [ -l log_file ]\n");
- (void) fprintf(stderr, "\t\t[ -p pid_file ] [ -r broad_delay ] [ -s statdir ]\n");
- (void) fprintf(stderr, "\t\t[ -t trust_key ] [ -v sys_var ] [ -V default_sysvar ]\n");
- (void) fprintf(stderr, "\t\t[ -L interface ]\n");
-#if defined(HAVE_SCHED_SETSCHEDULER)
- (void) fprintf(stderr, "\t\t[ -P fixed_process_priority ]\n");
-#endif
-#ifdef HAVE_DROPROOT
- (void) fprintf(stderr, "\t\t[ -u user[:group] ] [ -i chrootdir ]\n");
-#endif
+ ntpd_usage();
exit(2);
}
ntp_optind = 0; /* reset ntp_optind to restart ntp_getopt */
}
if (errflg || ntp_optind != argc) {
- (void) fprintf(stderr, "usage: %s [ -abdgnx ] [ -c config_file ] [ -e e_delay ]\n", progname);
- (void) fprintf(stderr, "\t\t[ -f freq_file ] [ -k key_file ] [ -l log_file ]\n");
- (void) fprintf(stderr, "\t\t[ -p pid_file ] [ -r broad_delay ] [ -s statdir ]\n");
- (void) fprintf(stderr, "\t\t[ -t trust_key ] [ -v sys_var ] [ -V default_sysvar ]\n");
- (void) fprintf(stderr, "\t\t[ -L interface ]\n");
-#if defined(HAVE_SCHED_SETSCHEDULER)
- (void) fprintf(stderr, "\t\t[ -P fixed_process_priority ]\n");
-#endif
-#ifdef HAVE_DROPROOT
- (void) fprintf(stderr, "\t\t[ -u user[:group] ] [ -i chrootdir ]\n");
-#endif
+ ntpd_usage();
exit(2);
}
return;
+++ /dev/null
-/* Microsoft Developer Support Copyright (c) 1993 Microsoft Corporation. */
-
-/* Skip asynch rpc inclusion */
-#ifndef __RPCASYNC_H__
-#define __RPCASYNC_H__
-#endif
-
-#include <windows.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "messages.h"
-#include "log.h"
-
-#define PERR(bSuccess, api) {if(!(bSuccess)) printf("%s: Error %d from %s \
- on line %d\n", __FILE__, GetLastError(), api, __LINE__);}
-
-
-/*********************************************************************
-* FUNCTION: addSourceToRegistry(LPSTR pszAppname, LPSTR pszMsgDLL) *
-* *
-* PURPOSE: Add a source name key, message DLL name value, and *
-* message type supported value to the registry *
-* *
-* INPUT: source name, path of message DLL *
-* *
-* RETURNS: none *
-*********************************************************************/
-
-void addSourceToRegistry(LPSTR pszAppname, LPSTR pszMsgDLL)
-{
- HKEY hk; /* registry key handle */
- DWORD dwData;
- BOOL bSuccess;
- char regarray[200];
- char *lpregarray = regarray;
-
- /* When an application uses the RegisterEventSource or OpenEventLog
- function to get a handle of an event log, the event loggging service
- searches for the specified source name in the registry. You can add a
- new source name to the registry by opening a new registry subkey
- under the Application key and adding registry values to the new
- subkey. */
-
- strcpy(lpregarray, "SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\");
- strcat(lpregarray, pszAppname);
-
- /* Create a new key for our application */
- bSuccess = RegCreateKey(HKEY_LOCAL_MACHINE,lpregarray, &hk);
- PERR(bSuccess == ERROR_SUCCESS, "RegCreateKey");
-
- /* Add the Event-ID message-file name to the subkey. */
- bSuccess = RegSetValueEx(hk, /* subkey handle */
- "EventMessageFile", /* value name */
- 0, /* must be zero */
- REG_EXPAND_SZ, /* value type */
- (LPBYTE) pszMsgDLL, /* address of value data */
- strlen(pszMsgDLL) + 1); /* length of value data */
- PERR(bSuccess == ERROR_SUCCESS, "RegSetValueEx");
-
- /* Set the supported types flags and addit to the subkey. */
- dwData = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE |
- EVENTLOG_INFORMATION_TYPE;
- bSuccess = RegSetValueEx(hk, /* subkey handle */
- "TypesSupported", /* value name */
- 0, /* must be zero */
- REG_DWORD, /* value type */
- (LPBYTE) &dwData, /* address of value data */
- sizeof(DWORD)); /* length of value data */
- PERR(bSuccess == ERROR_SUCCESS, "RegSetValueEx");
- RegCloseKey(hk);
- return;
-}
-
-/*********************************************************************
-* FUNCTION: reportAnEvent(DWORD dwIdEvent, WORD cStrings, *
-* LPTSTR *ppszStrings); *
-* *
-* PURPOSE: add the event to the event log *
-* *
-* INPUT: the event ID to report in the log, the number of insert *
-* strings, and an array of null-terminated insert strings *
-* *
-* RETURNS: none *
-*********************************************************************/
-
-void reportAnIEvent(DWORD dwIdEvent, WORD cStrings, LPTSTR *pszStrings)
-{
- HANDLE hAppLog;
- BOOL bSuccess;
-
- /* Get a handle to the Application event log */
- hAppLog = RegisterEventSource(NULL, /* use local machine */
- "NTP"); /* source name */
- PERR(hAppLog, "RegisterEventSource");
-
- /* Now report the event, which will add this event to the event log */
- bSuccess = ReportEvent(hAppLog, /* event-log handle */
- EVENTLOG_INFORMATION_TYPE, /* event type */
- 0, /* category zero */
- dwIdEvent, /* event ID */
- NULL, /* no user SID */
- cStrings, /* number of substitution strings */
- 0, /* no binary data */
- pszStrings, /* string array */
- NULL); /* address of data */
- PERR(bSuccess, "ReportEvent");
- DeregisterEventSource(hAppLog);
- return;
-}
-
-void reportAnWEvent(DWORD dwIdEvent, WORD cStrings, LPTSTR *pszStrings)
-{
- HANDLE hAppLog;
- BOOL bSuccess;
-
- /* Get a handle to the Application event log */
- hAppLog = RegisterEventSource(NULL, /* use local machine */
- "NTP"); /* source name */
- PERR(hAppLog, "RegisterEventSource");
-
- /* Now report the event, which will add this event to the event log */
- bSuccess = ReportEvent(hAppLog, /* event-log handle */
- EVENTLOG_WARNING_TYPE, /* event type */
- 0, /* category zero */
- dwIdEvent, /* event ID */
- NULL, /* no user SID */
- cStrings, /* number of substitution strings */
- 0, /* no binary data */
- pszStrings, /* string array */
- NULL); /* address of data */
- PERR(bSuccess, "ReportEvent");
- DeregisterEventSource(hAppLog);
- return;
-}
-
-void reportAnEEvent(DWORD dwIdEvent, WORD cStrings, LPTSTR *pszStrings)
-{
- HANDLE hAppLog;
- BOOL bSuccess;
-
- /* Get a handle to the Application event log */
- hAppLog = RegisterEventSource(NULL, /* use local machine */
- "NTP"); /* source name */
- PERR(hAppLog, "RegisterEventSource");
-
- /* Now report the event, which will add this event to the event log */
- bSuccess = ReportEvent(hAppLog, /* event-log handle */
- EVENTLOG_ERROR_TYPE, /* event type */
- 0, /* category zero */
- dwIdEvent, /* event ID */
- NULL, /* no user SID */
- cStrings, /* number of substitution strings */
- 0, /* no binary data */
- pszStrings, /* string array */
- NULL); /* address of data */
- PERR(bSuccess, "ReportEvent");
- DeregisterEventSource(hAppLog);
- return;
-}