qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/3] curl: Add sslverify option


From: Kevin Wolf
Subject: Re: [Qemu-devel] [PATCH 2/3] curl: Add sslverify option
Date: Wed, 30 Apr 2014 17:32:32 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

Am 30.04.2014 um 16:20 hat Matthew Booth geschrieben:
> This allows qemu to use images over https with a self-signed certificate. It
> defaults to verifying the certificate.
> 
> Signed-off-by: Matthew Booth <address@hidden>
> ---
>  block/curl.c | 33 +++++++++++++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
> 
> diff --git a/block/curl.c b/block/curl.c
> index 4de6856..e427e52 100644
> --- a/block/curl.c
> +++ b/block/curl.c
> @@ -23,6 +23,7 @@
>   */
>  #include "qemu-common.h"
>  #include "block/block_int.h"
> +#include "qapi/qmp/qbool.h"
>  #include <curl/curl.h>
>  
>  // #define DEBUG
> @@ -54,6 +55,7 @@
>  
>  #define CURL_BLOCK_OPT_URL       "url"
>  #define CURL_BLOCK_OPT_READAHEAD "readahead"
> +#define CURL_BLOCK_OPT_SSLVERIFY "sslverify"
>  
>  struct BDRVCURLState;
>  
> @@ -91,6 +93,7 @@ typedef struct BDRVCURLState {
>      CURLState states[CURL_NUM_STATES];
>      char *url;
>      size_t readahead_size;
> +    bool sslverify;
>      bool accept_range;
>  } BDRVCURLState;
>  
> @@ -357,6 +360,7 @@ static CURLState *curl_init_state(BDRVCURLState *s)
>              return NULL;
>          }
>          curl_easy_setopt(state->curl, CURLOPT_URL, s->url);
> +        curl_easy_setopt(state->curl, CURLOPT_SSL_VERIFYPEER, s->sslverify);
>          curl_easy_setopt(state->curl, CURLOPT_TIMEOUT, 5);
>          curl_easy_setopt(state->curl, CURLOPT_WRITEFUNCTION,
>                           (void *)curl_read_cb);
> @@ -440,6 +444,27 @@ static void curl_parse_filename(const char *filename, 
> QDict *options,
>                  *end = '\0';
>                  qdict_put(options, CURL_BLOCK_OPT_READAHEAD,
>                            qstring_from_str(value));
> +            } else if (opt_len == strlen(CURL_BLOCK_OPT_SSLVERIFY) &&
> +                       memcmp(opt_start, CURL_BLOCK_OPT_SSLVERIFY,
> +                       opt_len) == 0) {
> +                /* This is redundant after the first iteration */
> +                *end = '\0';
> +
> +                int sslverify;
> +                if (value_len == strlen("on") &&
> +                    memcmp(value, "on", value_len) == 0) {
> +                    sslverify = 1;
> +                } else if (value_len == strlen("off") &&
> +                         memcmp(value, "off", value_len) == 0) {

Indentation is off here.

Kevin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]