ACK

-Steffan

On 08-12-14 23:45, David Sommerseth wrote:
> From: David Sommerseth <dav...@redhat.com>
> 
> The coding style was somewhat chaotic.  Cleaning it up using the astyle
> tool.  The style parameters are coherent to what was agreed upon at the
> Munich Hackathon 2014 [1].
> 
>      astyle --style=allman --indent=spaces=4 -c
> 
> Also included a "Local variables" section which some editors may pick
> up automatically.
> 
> Signed-off-by: David Sommerseth <dav...@redhat.com>
> ---
>  src/plugins/down-root/down-root.c | 630 
> +++++++++++++++++++-------------------
>  1 file changed, 323 insertions(+), 307 deletions(-)
> 
> diff --git a/src/plugins/down-root/down-root.c 
> b/src/plugins/down-root/down-root.c
> index f7a49a0..6931bec 100644
> --- a/src/plugins/down-root/down-root.c
> +++ b/src/plugins/down-root/down-root.c
> @@ -66,17 +66,17 @@ static void down_root_server (const int fd, char * const 
> * argv, char * const *e
>   */
>  struct down_root_context
>  {
> -  /* Foreground's socket to background process */
> -  int foreground_fd;
> +    /* Foreground's socket to background process */
> +    int foreground_fd;
>  
> -  /* Process ID of background process */
> -  pid_t background_pid;
> +    /* Process ID of background process */
> +    pid_t background_pid;
>  
> -  /* Verbosity level of OpenVPN */
> -  int verb;
> +    /* Verbosity level of OpenVPN */
> +    int verb;
>  
> -  /* down command */
> -  char **command;
> +    /* down command */
> +    char **command;
>  };
>  
>  /*
> @@ -87,21 +87,21 @@ struct down_root_context
>  static const char *
>  get_env (const char *name, const char *envp[])
>  {
> -  if (envp)
> +    if (envp)
>      {
> -      int i;
> -      const int namelen = strlen (name);
> -      for (i = 0; envp[i]; ++i)
> -     {
> -       if (!strncmp (envp[i], name, namelen))
> -         {
> -           const char *cp = envp[i] + namelen;
> -           if (*cp == '=')
> -             return cp + 1;
> -         }
> -     }
> +        int i;
> +        const int namelen = strlen (name);
> +        for (i = 0; envp[i]; ++i)
> +        {
> +            if (!strncmp (envp[i], name, namelen))
> +            {
> +                const char *cp = envp[i] + namelen;
> +                if (*cp == '=')
> +                    return cp + 1;
> +            }
> +        }
>      }
> -  return NULL;
> +    return NULL;
>  }
>  
>  /*
> @@ -110,13 +110,13 @@ get_env (const char *name, const char *envp[])
>  static int
>  string_array_len (const char *array[])
>  {
> -  int i = 0;
> -  if (array)
> +    int i = 0;
> +    if (array)
>      {
> -      while (array[i])
> -     ++i;
> +        while (array[i])
> +            ++i;
>      }
> -  return i;
> +    return i;
>  }
>  
>  /*
> @@ -126,23 +126,23 @@ string_array_len (const char *array[])
>  static int
>  recv_control (int fd)
>  {
> -  unsigned char c;
> -  const ssize_t size = read (fd, &c, sizeof (c));
> -  if (size == sizeof (c))
> -    return c;
> -  else
> -    return -1;
> +    unsigned char c;
> +    const ssize_t size = read (fd, &c, sizeof (c));
> +    if (size == sizeof (c))
> +        return c;
> +    else
> +        return -1;
>  }
>  
>  static int
>  send_control (int fd, int code)
>  {
> -  unsigned char c = (unsigned char) code;
> -  const ssize_t size = write (fd, &c, sizeof (c));
> -  if (size == sizeof (c))
> -    return (int) size;
> -  else
> -    return -1;
> +    unsigned char c = (unsigned char) code;
> +    const ssize_t size = write (fd, &c, sizeof (c));
> +    if (size == sizeof (c))
> +        return (int) size;
> +    else
> +        return -1;
>  }
>  
>  /*
> @@ -153,22 +153,22 @@ send_control (int fd, int code)
>  static void
>  daemonize (const char *envp[])
>  {
> -  const char *daemon_string = get_env ("daemon", envp);
> -  if (daemon_string && daemon_string[0] == '1')
> +    const char *daemon_string = get_env ("daemon", envp);
> +    if (daemon_string && daemon_string[0] == '1')
>      {
> -      const char *log_redirect = get_env ("daemon_log_redirect", envp);
> -      int fd = -1;
> -      if (log_redirect && log_redirect[0] == '1')
> -     fd = dup (2);
> -      if (daemon (0, 0) < 0)
> -     {
> -       warn ("DOWN-ROOT: daemonization failed");
> -     }
> -      else if (fd >= 3)
> -     {
> -       dup2 (fd, 2);
> -       close (fd);
> -     }
> +        const char *log_redirect = get_env ("daemon_log_redirect", envp);
> +        int fd = -1;
> +        if (log_redirect && log_redirect[0] == '1')
> +            fd = dup (2);
> +        if (daemon (0, 0) < 0)
> +        {
> +            warn ("DOWN-ROOT: daemonization failed");
> +        }
> +        else if (fd >= 3)
> +        {
> +            dup2 (fd, 2);
> +            close (fd);
> +        }
>      }
>  }
>  
> @@ -185,12 +185,12 @@ daemonize (const char *envp[])
>  static void
>  close_fds_except (int keep)
>  {
> -  int i;
> -  closelog ();
> -  for (i = 3; i <= 100; ++i)
> +    int i;
> +    closelog ();
> +    for (i = 3; i <= 100; ++i)
>      {
> -      if (i != keep)
> -     close (i);
> +        if (i != keep)
> +            close (i);
>      }
>  }
>  
> @@ -201,26 +201,26 @@ close_fds_except (int keep)
>  static void
>  set_signals (void)
>  {
> -  signal (SIGTERM, SIG_DFL);
> +    signal (SIGTERM, SIG_DFL);
>  
> -  signal (SIGINT, SIG_IGN);
> -  signal (SIGHUP, SIG_IGN);
> -  signal (SIGUSR1, SIG_IGN);
> -  signal (SIGUSR2, SIG_IGN);
> -  signal (SIGPIPE, SIG_IGN);
> +    signal (SIGINT, SIG_IGN);
> +    signal (SIGHUP, SIG_IGN);
> +    signal (SIGUSR1, SIG_IGN);
> +    signal (SIGUSR2, SIG_IGN);
> +    signal (SIGPIPE, SIG_IGN);
>  }
>  
>  
>  static void
>  free_context (struct down_root_context *context)
>  {
> -  if (context)
> +    if (context)
>      {
> -      if (context->command)
> -     {
> -       free (context->command);
> -     }
> -      free (context);
> +        if (context->command)
> +        {
> +            free (context->command);
> +        }
> +        free (context);
>      }
>  }
>  
> @@ -229,226 +229,233 @@ free_context (struct down_root_context *context)
>   * calling execve()
>   */
>  static int
> -run_script(char * const *argv, char * const *envp) {
> -  pid_t pid;
> -  int ret = 0;
> -
> -  pid = fork();
> -  if (pid == (pid_t)0) { /* child side */
> -    execve(argv[0], argv, envp);
> -    /* If execve() fails to run, exit child with exit code 127 */
> -    err(127, "DOWN-ROOT: Failed execute: %s", argv[0]);
> -  } else if (pid < (pid_t)0 ){
> -    warn ("DOWN-ROOT: Failed to fork child to run %s", argv[0]);
> -    return -1;
> -  } else { /* parent side */
> -    if( waitpid (pid, &ret, 0) != pid ) {
> -      /* waitpid does not return error information via errno */
> -      fprintf(stderr, "DOWN-ROOT: waitpid() failed, don't know exit code of 
> child (%s)\n", argv[0]);
> -      return -1;
> +run_script(char * const *argv, char * const *envp)
> +{
> +    pid_t pid;
> +    int ret = 0;
> +
> +    pid = fork();
> +    if (pid == (pid_t)0)   /* child side */
> +    {
> +        execve(argv[0], argv, envp);
> +        /* If execve() fails to run, exit child with exit code 127 */
> +        err(127, "DOWN-ROOT: Failed execute: %s", argv[0]);
> +    }
> +    else if (pid < (pid_t)0 )
> +    {
> +        warn ("DOWN-ROOT: Failed to fork child to run %s", argv[0]);
> +        return -1;
> +    }
> +    else     /* parent side */
> +    {
> +        if( waitpid (pid, &ret, 0) != pid )
> +        {
> +            /* waitpid does not return error information via errno */
> +            fprintf(stderr, "DOWN-ROOT: waitpid() failed, don't know exit 
> code of child (%s)\n", argv[0]);
> +            return -1;
> +        }
>      }
> -  }
> -  return ret;
> +    return ret;
>  }
>  
>  OPENVPN_EXPORT openvpn_plugin_handle_t
>  openvpn_plugin_open_v1 (unsigned int *type_mask, const char *argv[], const 
> char *envp[])
>  {
> -  struct down_root_context *context;
> -  int i = 0;
> -
> -  /*
> -   * Allocate our context
> -   */
> -  context = (struct down_root_context *) calloc (1, sizeof (struct 
> down_root_context));
> -  if (!context)
> +    struct down_root_context *context;
> +    int i = 0;
> +
> +    /*
> +     * Allocate our context
> +     */
> +    context = (struct down_root_context *) calloc (1, sizeof (struct 
> down_root_context));
> +    if (!context)
>      {
> -      warn ("DOWN-ROOT: Could not allocate memory for plug-in context");
> -      goto error;
> +        warn ("DOWN-ROOT: Could not allocate memory for plug-in context");
> +        goto error;
>      }
> -  context->foreground_fd = -1;
> -
> -  /*
> -   * Intercept the --up and --down callbacks
> -   */
> -  *type_mask = OPENVPN_PLUGIN_MASK (OPENVPN_PLUGIN_UP) | OPENVPN_PLUGIN_MASK 
> (OPENVPN_PLUGIN_DOWN);
> -
> -  /*
> -   * Make sure we have two string arguments: the first is the .so name,
> -   * the second is the script command.
> -   */
> -  if (string_array_len (argv) < 2)
> +    context->foreground_fd = -1;
> +
> +    /*
> +     * Intercept the --up and --down callbacks
> +     */
> +    *type_mask = OPENVPN_PLUGIN_MASK (OPENVPN_PLUGIN_UP) | 
> OPENVPN_PLUGIN_MASK (OPENVPN_PLUGIN_DOWN);
> +
> +    /*
> +     * Make sure we have two string arguments: the first is the .so name,
> +     * the second is the script command.
> +     */
> +    if (string_array_len (argv) < 2)
>      {
> -      fprintf (stderr, "DOWN-ROOT: need down script command\n");
> -      goto error;
> +        fprintf (stderr, "DOWN-ROOT: need down script command\n");
> +        goto error;
>      }
>  
> -  /*
> -   * Save the arguments in our context
> -   */
> -  context->command = calloc(string_array_len(argv), sizeof(char *));
> -  if (!context->command)
> +    /*
> +     * Save the arguments in our context
> +     */
> +    context->command = calloc(string_array_len(argv), sizeof(char *));
> +    if (!context->command)
>      {
> -      warn ("DOWN-ROOT: Could not allocate memory for command array");
> -      goto error;
> +        warn ("DOWN-ROOT: Could not allocate memory for command array");
> +        goto error;
>      }
>  
> -  /* Ignore argv[0], as it contains just the plug-in file name */
> -  for (i = 1; i < string_array_len(argv); i++)
> +    /* Ignore argv[0], as it contains just the plug-in file name */
> +    for (i = 1; i < string_array_len(argv); i++)
>      {
> -      context->command[i-1] = (char *) argv[i];
> +        context->command[i-1] = (char *) argv[i];
>      }
>  
> -  /*
> -   * Get verbosity level from environment
> -   */
> -  {
> -    const char *verb_string = get_env ("verb", envp);
> -    if (verb_string)
> -      context->verb = atoi (verb_string);
> -  }
> +    /*
> +     * Get verbosity level from environment
> +     */
> +    {
> +        const char *verb_string = get_env ("verb", envp);
> +        if (verb_string)
> +            context->verb = atoi (verb_string);
> +    }
>  
> -  return (openvpn_plugin_handle_t) context;
> +    return (openvpn_plugin_handle_t) context;
>  
> - error:
> -  free_context (context);
> -  return NULL;
> +error:
> +    free_context (context);
> +    return NULL;
>  }
>  
>  OPENVPN_EXPORT int
>  openvpn_plugin_func_v1 (openvpn_plugin_handle_t handle, const int type, 
> const char *argv[], const char *envp[])
>  {
> -  struct down_root_context *context = (struct down_root_context *) handle;
> +    struct down_root_context *context = (struct down_root_context *) handle;
>  
> -  if (type == OPENVPN_PLUGIN_UP && context->foreground_fd == -1) /* fork off 
> a process to hold onto root */
> +    if (type == OPENVPN_PLUGIN_UP && context->foreground_fd == -1) /* fork 
> off a process to hold onto root */
>      {
> -      pid_t pid;
> -      int fd[2];
> -
> -      /*
> -       * Make a socket for foreground and background processes
> -       * to communicate.
> -       */
> -      if (socketpair (PF_UNIX, SOCK_DGRAM, 0, fd) == -1)
> -     {
> -       warn ("DOWN-ROOT: socketpair call failed");
> -       return OPENVPN_PLUGIN_FUNC_ERROR;
> -     }
> -
> -      /*
> -       * Fork off the privileged process.  It will remain privileged
> -       * even after the foreground process drops its privileges.
> -       */
> -      pid = fork ();
> -
> -      if (pid)
> -     {
> -       int status;
> -
> -       /*
> -        * Foreground Process
> -        */
> -
> -       context->background_pid = pid;
> -
> -       /* close our copy of child's socket */
> -       close (fd[1]);
> -
> -       /* don't let future subprocesses inherit child socket */
> -       if (fcntl (fd[0], F_SETFD, FD_CLOEXEC) < 0)
> -         {
> -           warn ("DOWN-ROOT: Set FD_CLOEXEC flag on socket file descriptor 
> failed");
> -         }
> -
> -       /* wait for background child process to initialize */
> -       status = recv_control (fd[0]);
> -       if (status == RESPONSE_INIT_SUCCEEDED)
> -         {
> -           context->foreground_fd = fd[0];
> -           return OPENVPN_PLUGIN_FUNC_SUCCESS;
> -         }
> -     }
> -      else
> -     {
> -       /*
> -        * Background Process
> -        */
> -
> -       /* close all parent fds except our socket back to parent */
> -       close_fds_except (fd[1]);
> -
> -       /* Ignore most signals (the parent will receive them) */
> -       set_signals ();
> -
> -       /* Daemonize if --daemon option is set. */
> -       daemonize (envp);
> -
> -       /* execute the event loop */
> -       down_root_server (fd[1], context->command, (char * const *) envp, 
> context->verb);
> -
> -       close (fd[1]);
> -       exit (0);
> -       return 0; /* NOTREACHED */
> -     }
> +        pid_t pid;
> +        int fd[2];
> +
> +        /*
> +         * Make a socket for foreground and background processes
> +         * to communicate.
> +         */
> +        if (socketpair (PF_UNIX, SOCK_DGRAM, 0, fd) == -1)
> +        {
> +            warn ("DOWN-ROOT: socketpair call failed");
> +            return OPENVPN_PLUGIN_FUNC_ERROR;
> +        }
> +
> +        /*
> +         * Fork off the privileged process.  It will remain privileged
> +         * even after the foreground process drops its privileges.
> +         */
> +        pid = fork ();
> +
> +        if (pid)
> +        {
> +            int status;
> +
> +            /*
> +             * Foreground Process
> +             */
> +
> +            context->background_pid = pid;
> +
> +            /* close our copy of child's socket */
> +            close (fd[1]);
> +
> +            /* don't let future subprocesses inherit child socket */
> +            if (fcntl (fd[0], F_SETFD, FD_CLOEXEC) < 0)
> +            {
> +                warn ("DOWN-ROOT: Set FD_CLOEXEC flag on socket file 
> descriptor failed");
> +            }
> +
> +            /* wait for background child process to initialize */
> +            status = recv_control (fd[0]);
> +            if (status == RESPONSE_INIT_SUCCEEDED)
> +            {
> +                context->foreground_fd = fd[0];
> +                return OPENVPN_PLUGIN_FUNC_SUCCESS;
> +            }
> +        }
> +        else
> +        {
> +            /*
> +             * Background Process
> +             */
> +
> +            /* close all parent fds except our socket back to parent */
> +            close_fds_except (fd[1]);
> +
> +            /* Ignore most signals (the parent will receive them) */
> +            set_signals ();
> +
> +            /* Daemonize if --daemon option is set. */
> +            daemonize (envp);
> +
> +            /* execute the event loop */
> +            down_root_server (fd[1], context->command, (char * const *) 
> envp, context->verb);
> +
> +            close (fd[1]);
> +            exit (0);
> +            return 0; /* NOTREACHED */
> +        }
>      }
> -  else if (type == OPENVPN_PLUGIN_DOWN && context->foreground_fd >= 0)
> +    else if (type == OPENVPN_PLUGIN_DOWN && context->foreground_fd >= 0)
>      {
> -      if (send_control (context->foreground_fd, COMMAND_RUN_SCRIPT) == -1)
> -     {
> -       warn ("DOWN-ROOT: Error sending script execution signal to background 
> process");
> -     }
> -      else
> -     {
> -       const int status = recv_control (context->foreground_fd);
> -       if (status == RESPONSE_SCRIPT_SUCCEEDED)
> -         return OPENVPN_PLUGIN_FUNC_SUCCESS;
> -       if (status == -1)
> -         {
> -           warn ("DOWN-ROOT: Error receiving script execution confirmation 
> from background process");
> -         }
> -     }
> +        if (send_control (context->foreground_fd, COMMAND_RUN_SCRIPT) == -1)
> +        {
> +            warn ("DOWN-ROOT: Error sending script execution signal to 
> background process");
> +        }
> +        else
> +        {
> +            const int status = recv_control (context->foreground_fd);
> +            if (status == RESPONSE_SCRIPT_SUCCEEDED)
> +                return OPENVPN_PLUGIN_FUNC_SUCCESS;
> +            if (status == -1)
> +            {
> +                warn ("DOWN-ROOT: Error receiving script execution 
> confirmation from background process");
> +            }
> +        }
>      }
> -  return OPENVPN_PLUGIN_FUNC_ERROR;
> +    return OPENVPN_PLUGIN_FUNC_ERROR;
>  }
>  
>  OPENVPN_EXPORT void
>  openvpn_plugin_close_v1 (openvpn_plugin_handle_t handle)
>  {
> -  struct down_root_context *context = (struct down_root_context *) handle;
> +    struct down_root_context *context = (struct down_root_context *) handle;
>  
> -  if (DEBUG (context->verb))
> -    fprintf (stderr, "DOWN-ROOT: close\n");
> +    if (DEBUG (context->verb))
> +        fprintf (stderr, "DOWN-ROOT: close\n");
>  
> -  if (context->foreground_fd >= 0)
> +    if (context->foreground_fd >= 0)
>      {
> -      /* tell background process to exit */
> -      if (send_control (context->foreground_fd, COMMAND_EXIT) == -1)
> -     {
> -       warn ("DOWN-ROOT: Error signalling background process to exit");
> -     }
> -
> -      /* wait for background process to exit */
> -      if (context->background_pid > 0)
> -     waitpid (context->background_pid, NULL, 0);
> -
> -      close (context->foreground_fd);
> -      context->foreground_fd = -1;
> +        /* tell background process to exit */
> +        if (send_control (context->foreground_fd, COMMAND_EXIT) == -1)
> +        {
> +            warn ("DOWN-ROOT: Error signalling background process to exit");
> +        }
> +
> +        /* wait for background process to exit */
> +        if (context->background_pid > 0)
> +            waitpid (context->background_pid, NULL, 0);
> +
> +        close (context->foreground_fd);
> +        context->foreground_fd = -1;
>      }
>  
> -  free_context (context);
> +    free_context (context);
>  }
>  
>  OPENVPN_EXPORT void
>  openvpn_plugin_abort_v1 (openvpn_plugin_handle_t handle)
>  {
> -  struct down_root_context *context = (struct down_root_context *) handle;
> +    struct down_root_context *context = (struct down_root_context *) handle;
>  
> -  if (context && context->foreground_fd >= 0)
> +    if (context && context->foreground_fd >= 0)
>      {
> -      /* tell background process to exit */
> -      send_control (context->foreground_fd, COMMAND_EXIT);
> -      close (context->foreground_fd);
> -      context->foreground_fd = -1;
> +        /* tell background process to exit */
> +        send_control (context->foreground_fd, COMMAND_EXIT);
> +        close (context->foreground_fd);
> +        context->foreground_fd = -1;
>      }
>  }
>  
> @@ -458,74 +465,83 @@ openvpn_plugin_abort_v1 (openvpn_plugin_handle_t handle)
>  static void
>  down_root_server (const int fd, char * const *argv, char * const *envp, 
> const int verb)
>  {
> -  /*
> -   * Do initialization
> -   */
> -  if (DEBUG (verb))
> -    fprintf (stderr, "DOWN-ROOT: BACKGROUND: INIT command='%s'\n", argv[0]);
> -
> -  /*
> -   * Tell foreground that we initialized successfully
> -   */
> -  if (send_control (fd, RESPONSE_INIT_SUCCEEDED) == -1)
> +    /*
> +     * Do initialization
> +     */
> +    if (DEBUG (verb))
> +        fprintf (stderr, "DOWN-ROOT: BACKGROUND: INIT command='%s'\n", 
> argv[0]);
> +
> +    /*
> +     * Tell foreground that we initialized successfully
> +     */
> +    if (send_control (fd, RESPONSE_INIT_SUCCEEDED) == -1)
>      {
> -      warn ("DOWN-ROOT: BACKGROUND: write error on response socket [1]");
> -      goto done;
> +        warn ("DOWN-ROOT: BACKGROUND: write error on response socket [1]");
> +        goto done;
>      }
>  
> -  /*
> -   * Event loop
> -   */
> -  while (1)
> +    /*
> +     * Event loop
> +     */
> +    while (1)
>      {
> -      int command_code;
> -      int exit_code = -1;
> -
> -      /* get a command from foreground process */
> -      command_code = recv_control (fd);
> -
> -      if (DEBUG (verb))
> -     fprintf (stderr, "DOWN-ROOT: BACKGROUND: received command code: %d\n", 
> command_code);
> -
> -      switch (command_code)
> -     {
> -     case COMMAND_RUN_SCRIPT:
> -       if ( (exit_code = run_script(argv, envp)) == 0 ) /* Succeeded */
> -         {
> -           if (send_control (fd, RESPONSE_SCRIPT_SUCCEEDED) == -1)
> -             {
> -               warn ("DOWN-ROOT: BACKGROUND: write error on response socket 
> [2]");
> -               goto done;
> -             }
> -         }
> -       else /* Failed */
> -         {
> -           fprintf(stderr, "DOWN-ROOT: BACKGROUND: %s exited with exit code 
> %i\n", argv[0], exit_code);
> -           if (send_control (fd, RESPONSE_SCRIPT_FAILED) == -1)
> -             {
> -               warn ("DOWN-ROOT: BACKGROUND: write error on response socket 
> [3]");
> -               goto done;
> -             }
> -         }
> -       break;
> -
> -     case COMMAND_EXIT:
> -       goto done;
> -
> -     case -1:
> -       warn ("DOWN-ROOT: BACKGROUND: read error on command channel");
> -       goto done;
> -
> -     default:
> -       fprintf (stderr, "DOWN-ROOT: BACKGROUND: unknown command code: 
> code=%d, exiting\n",
> -                command_code);
> -       goto done;
> -     }
> +        int command_code;
> +        int exit_code = -1;
> +
> +        /* get a command from foreground process */
> +        command_code = recv_control (fd);
> +
> +        if (DEBUG (verb))
> +            fprintf (stderr, "DOWN-ROOT: BACKGROUND: received command code: 
> %d\n", command_code);
> +
> +        switch (command_code)
> +        {
> +        case COMMAND_RUN_SCRIPT:
> +            if ( (exit_code = run_script(argv, envp)) == 0 ) /* Succeeded */
> +            {
> +                if (send_control (fd, RESPONSE_SCRIPT_SUCCEEDED) == -1)
> +                {
> +                    warn ("DOWN-ROOT: BACKGROUND: write error on response 
> socket [2]");
> +                    goto done;
> +                }
> +            }
> +            else /* Failed */
> +            {
> +                fprintf(stderr, "DOWN-ROOT: BACKGROUND: %s exited with exit 
> code %i\n", argv[0], exit_code);
> +                if (send_control (fd, RESPONSE_SCRIPT_FAILED) == -1)
> +                {
> +                    warn ("DOWN-ROOT: BACKGROUND: write error on response 
> socket [3]");
> +                    goto done;
> +                }
> +            }
> +            break;
> +
> +        case COMMAND_EXIT:
> +            goto done;
> +
> +        case -1:
> +            warn ("DOWN-ROOT: BACKGROUND: read error on command channel");
> +            goto done;
> +
> +        default:
> +            fprintf (stderr, "DOWN-ROOT: BACKGROUND: unknown command code: 
> code=%d, exiting\n",
> +                     command_code);
> +            goto done;
> +        }
>      }
>  
> - done:
> -  if (DEBUG (verb))
> -    fprintf (stderr, "DOWN-ROOT: BACKGROUND: EXIT\n");
> +done:
> +    if (DEBUG (verb))
> +        fprintf (stderr, "DOWN-ROOT: BACKGROUND: EXIT\n");
>  
> -  return;
> +    return;
>  }
> +
> +
> +/*
> +Local variables:
> +c-file-style: "bsd"
> +c-basic-offset: 4
> +indent-tabs-mode: nil
> +End:
> +*/
> 

Reply via email to