qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v4 00/10] curl: fix curl read


From: Fam Zheng
Subject: Re: [Qemu-devel] [PATCH v4 00/10] curl: fix curl read
Date: Wed, 22 May 2013 17:32:15 +0800
User-agent: Mutt/1.5.21 (2010-09-15)

Rich,

Please try this version with libguestfs. Thanks.

(missing CC due to improper git send-email config)


On Wed, 05/22 11:16, Fam Zheng wrote:
> CURL library API has changed, the current curl driver is not working.
> This patch rewrites the use of API as well as the structure of internal
> states. 
> 
> BDRVCURLState holds the pointer to curl multi interface (man 3
> libcurl-multi), and 4 lists for internal states:
>  - CURLState holds state for libcurl connection (man 3 libcurl-easy)
>  - CURLSockInfo holds information for libcurl socket interface (man 3
>    curl_multi_socket_action).
>  - CURLDataCache holds the user data read from libcurl, it is in a list
>    ordered by access, the used cache is moved to list head on access, so
>    the tail element is freed first. BDRVCURLState.cache_quota is the
>    threshold to start freeing cache.
>  - CURLAIOCB holds ongoing aio information.
> 
> Changes from v3:
>   01, 06, 07: Add QLIST_INIT in qemu_open to initialize each list.
>   07: Move clean up for s->acbs from later patch to here. Use qemu_aio_relase 
> instead of g_free on acb.
>       Fix use-after-free bug. [Rich]
> 
> Changes from v2:
>   00: Removed previous 09, since changes are included in previous
>       commits.
>       previous 09: curl: release everything on curl close.
>   01: Add commit message for introducing CURLSockInfo. Remove
>       unnecessary pointer type cast.
>   02: Use sizeof instead of macro for s->range len.
>   04: Use pstrcpy and strncasecmp.
>   06: Add commit message for why is there a cache in curl.c.
> 
> Changes from v1:
>    Split to multiple patches. The final status should be identical to v1.
> 
> Fam Zheng (10):
>   curl: introduce CURLSockInfo to BDRVCURLState.
>   curl: change magic number to sizeof
>   curl: change curl_multi_do to curl_fd_handler
>   curl: fix curl_open
>   curl: add timer to BDRVCURLState
>   curl: introduce CURLDataCache
>   curl: make use of CURLDataCache.
>   curl: use list to store CURLState
>   curl: add cache quota.
>   curl: introduce ssl_no_cert runtime option.
> 
>  block/curl.c | 574 
> +++++++++++++++++++++++++++++++++++++----------------------
>  1 file changed, 361 insertions(+), 213 deletions(-)
> 
> -- 
> 1.8.2.3
> 
> 

-- 
Fam



reply via email to

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