Seems fine.

Ethan

On Mon, Jun 6, 2011 at 12:41, Ben Pfaff <b...@nicira.com> wrote:
> An upcoming patch needs a larger value.
> ---
>  lib/process.c            |   18 ++++++++++--------
>  lib/process.h            |    5 ++---
>  vswitchd/ovs-brcompatd.c |    3 ++-
>  3 files changed, 14 insertions(+), 12 deletions(-)
>
> diff --git a/lib/process.c b/lib/process.c
> index 55092f5..3d6c11a 100644
> --- a/lib/process.c
> +++ b/lib/process.c
> @@ -403,13 +403,15 @@ process_search_path(const char *name)
>  /* process_run_capture() and supporting functions. */
>
>  struct stream {
> +    size_t max_size;
>     struct ds log;
>     int fds[2];
>  };
>
>  static int
> -stream_open(struct stream *s)
> +stream_open(struct stream *s, size_t max_size)
>  {
> +    s->max_size = max_size;
>     ds_init(&s->log);
>     if (pipe(s->fds)) {
>         VLOG_WARN("failed to create pipe: %s", strerror(errno));
> @@ -443,9 +445,9 @@ stream_read(struct stream *s)
>                 }
>                 break;
>             }
> -        } else if (s->log.length > PROCESS_MAX_CAPTURE) {
> -            VLOG_WARN("subprocess output overflowed %d-byte buffer",
> -                      PROCESS_MAX_CAPTURE);
> +        } else if (s->log.length > s->max_size) {
> +            VLOG_WARN("subprocess output overflowed %zu-byte buffer",
> +                      s->max_size);
>             break;
>         }
>     }
> @@ -480,7 +482,7 @@ stream_close(struct stream *s)
>  * '*status'.
>  *
>  * If 'stdout_log' is nonnull, then the subprocess's output to stdout (up to a
> - * limit of PROCESS_MAX_CAPTURE bytes) is captured in a memory buffer, which
> + * limit of 'log_max' bytes) is captured in a memory buffer, which
>  * when this function returns 0 is stored as a null-terminated string in
>  * '*stdout_log'.  The caller is responsible for freeing '*stdout_log' (by
>  * passing it to free()).  When this function returns an error, '*stdout_log'
> @@ -490,7 +492,7 @@ stream_close(struct stream *s)
>  * that it captures the subprocess's output to stderr. */
>  int
>  process_run_capture(char **argv, char **stdout_log, char **stderr_log,
> -                    int *status)
> +                    size_t max_log, int *status)
>  {
>     struct stream s_stdout, s_stderr;
>     sigset_t oldsigs;
> @@ -510,12 +512,12 @@ process_run_capture(char **argv, char **stdout_log, 
> char **stderr_log,
>         return error;
>     }
>
> -    error = stream_open(&s_stdout);
> +    error = stream_open(&s_stdout, max_log);
>     if (error) {
>         return error;
>     }
>
> -    error = stream_open(&s_stderr);
> +    error = stream_open(&s_stderr, max_log);
>     if (error) {
>         stream_close(&s_stdout);
>         return error;
> diff --git a/lib/process.h b/lib/process.h
> index 94549f7..9c4556b 100644
> --- a/lib/process.h
> +++ b/lib/process.h
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2008, 2009 Nicira Networks.
> + * Copyright (c) 2008, 2009, 2011 Nicira Networks.
>  *
>  * Licensed under the Apache License, Version 2.0 (the "License");
>  * you may not use this file except in compliance with the License.
> @@ -45,8 +45,7 @@ void process_wait(struct process *);
>
>  char *process_search_path(const char *);
>
> -#define PROCESS_MAX_CAPTURE 65536
>  int process_run_capture(char **argv, char **stdout_log, char **stderr_log,
> -                        int *status);
> +                        size_t max_log, int *status);
>
>  #endif /* process.h */
> diff --git a/vswitchd/ovs-brcompatd.c b/vswitchd/ovs-brcompatd.c
> index 973b098..dbb0832 100644
> --- a/vswitchd/ovs-brcompatd.c
> +++ b/vswitchd/ovs-brcompatd.c
> @@ -200,7 +200,8 @@ execute_appctl_command(const char *unixctl_command, char 
> **output)
>     argv[3] = NULL;
>
>     /* Run process and log status. */
> -    error = process_run_capture(argv, &stdout_log, &stderr_log, &status);
> +    error = process_run_capture(argv, &stdout_log, &stderr_log, 65536,
> +                                &status);
>     if (error) {
>         VLOG_ERR("failed to execute %s command via ovs-appctl: %s",
>                  unixctl_command, strerror(error));
> --
> 1.7.4.4
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to