[Spice-devel] [PATCH spice-streaming-agent v2 5/9] Make the try-catch block in main() a catch-all

Frediano Ziglio fziglio at redhat.com
Wed Jun 27 14:23:06 UTC 2018


>
> Extends the try-catch block to encompass all the business code in
> main(), making it a catch-all for all errors.
> 
> Signed-off-by: Lukáš Hrázký <lhrazky at redhat.com>
> ---
>  src/spice-streaming-agent.cpp | 46 +++++++++++++++++------------------
>  1 file changed, 23 insertions(+), 23 deletions(-)
> 
> diff --git a/src/spice-streaming-agent.cpp b/src/spice-streaming-agent.cpp
> index b434180..cc256bb 100644
> --- a/src/spice-streaming-agent.cpp
> +++ b/src/spice-streaming-agent.cpp
> @@ -474,36 +474,36 @@ int main(int argc, char* argv[])
>          }
>      }
>  
> -    // register built-in plugins
> -    MjpegPlugin::Register(&agent);
> +    int ret = EXIT_SUCCESS;
>  
> -    agent.LoadPlugins(pluginsdir);
> +    try {
> +        // register built-in plugins
> +        MjpegPlugin::Register(&agent);
>  
> -    register_interrupts();
> +        agent.LoadPlugins(pluginsdir);
>  
> -    FrameLog frame_log(log_filename, log_binary, log_frames);
> +        register_interrupts();
>  
> -    for (const std::string& arg: old_args) {
> -        frame_log.log_stat("Args: %s", arg.c_str());
> -    }
> -    old_args.clear();
> +        FrameLog frame_log(log_filename, log_binary, log_frames);
>  
> -    Display *display = XOpenDisplay(NULL);
> -    if (display == NULL) {
> -        syslog(LOG_ERR, "failed to open display\n");
> -        return EXIT_FAILURE;
> -    }
> -    int event_base, error_base;
> -    if (!XFixesQueryExtension(display, &event_base, &error_base)) {
> -        syslog(LOG_ERR, "XFixesQueryExtension failed\n");
> -        return EXIT_FAILURE;
> -    }
> -    Window rootwindow = DefaultRootWindow(display);
> -    XFixesSelectCursorInput(display, rootwindow,
> XFixesDisplayCursorNotifyMask);
> +        for (const std::string& arg: old_args) {
> +            frame_log.log_stat("Args: %s", arg.c_str());
> +        }
> +        old_args.clear();
>  
> -    int ret = EXIT_SUCCESS;
> +        Display *display = XOpenDisplay(NULL);
> +        if (display == NULL) {
> +            syslog(LOG_ERR, "failed to open display\n");
> +            return EXIT_FAILURE;
> +        }
> +        int event_base, error_base;
> +        if (!XFixesQueryExtension(display, &event_base, &error_base)) {
> +            syslog(LOG_ERR, "XFixesQueryExtension failed\n");
> +            return EXIT_FAILURE;
> +        }
> +        Window rootwindow = DefaultRootWindow(display);
> +        XFixesSelectCursorInput(display, rootwindow,
> XFixesDisplayCursorNotifyMask);
>  
> -    try {
>          StreamPort stream_port(stream_port_name);
>  
>          std::thread cursor_th(cursor_changes, &stream_port, display,
>          event_base);

Acked-by: Frediano Ziglio <fziglio at redhat.com>

Frediano


More information about the Spice-devel mailing list