printf (gettext ("Written by %s.\n"), "Mark Kettenis");
printf (_("Written by %s.\n"), "Mark Kettenis");
main (int argc, char *argv[]){  mode_t mask;  int debug;  int do_help;  int do_version;  int opt;  /* Set locale via LC_ALL.  */  setlocale (LC_ALL, "");  /* Set the text message domain.  */  textdomain (PACKAGE);    /* Initialize local variables.  */  debug = 0;  do_help = 0;  do_version = 0;    while ((opt = getopt_long (argc, argv, "dhV", long_options, NULL)) != -1)    switch (opt)      {      case '\0':		/* Long option.  */	break;      case 'h':	do_help = 1;	break;      case 'd':	debug = 1;	break;      case 'V':	do_version = 1;	break;      default:	usage (EXIT_FAILURE);      }  /* Version information is reequested.  */  if (do_version)    {      printf ("utmpd (GNU %s) %s\n", PACKAGE, VERSION);      printf (gettext ("\Copyright (C) %s Free Software Foundation, Inc.\n\This is free software; see the source for copying conditions.  There is NO\n\warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\"), "1997");      printf (gettext ("Written by %s.\n"), "Mark Kettenis");      exit (EXIT_SUCCESS);    }  /* Help is requested.  */  if (do_help)    usage (EXIT_SUCCESS);  signal (SIGINT, termination_handler);  signal (SIGQUIT, termination_handler);  signal (SIGTERM, termination_handler);    /* Check if we are already running.  */  if (check_pid (_PATH_UTMPDPID))    error (EXIT_FAILURE, 0, _("already running"));  /* Open UTMP database.  */  utmp_db = open_database (_PATH_UTMP "x", _PATH_UTMP);  if (utmp_db == NULL)    exit (EXIT_FAILURE);  /* Create sockets, with the right permissions.  */  mask = umask (S_IXUSR | S_IXGRP | S_IXOTH);  ro_sock = make_socket (_PATH_UTMPD_RO);  umask (S_IXUSR | S_IRWXG | S_IRWXO);  rw_sock = make_socket (_PATH_UTMPD_RW);  umask (mask);  /* Set the sockets up to accept connections.  */  if (listen (ro_sock, MAX_CONNECTIONS) < 0      || listen (rw_sock, MAX_CONNECTIONS) < 0)    error (EXIT_FAILURE, errno,	   _("cannot enable socket to accept connections"));  /* Behave like a daemon.  */  if (!debug)    {      openlog ("utmpd", LOG_CONS | LOG_ODELAY, LOG_DAEMON);            if (daemon (0, 0) < 0)	error (EXIT_FAILURE, errno, _("cannot auto-background"));      forked = 1;      if (write_pid (_PATH_UTMPDPID) < 0)	warning (errno, "%s", _PATH_UTMPDPID);      /* Ignore job control signals.  */      signal (SIGTTOU, SIG_IGN);      signal (SIGTTIN, SIG_IGN);      signal (SIGTSTP, SIG_IGN);    }    /* Drop priviliges.  */  drop_priviliges ();    /* Handle incoming requests.  */  handle_requests ();}