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