WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
13090
curl (linux/gdk) networking improvements
https://bugs.webkit.org/show_bug.cgi?id=13090
Summary
curl (linux/gdk) networking improvements
Krzysztof Kowalczyk
Reported
2007-03-15 19:30:30 PDT
curl (linux/gdk) networking improvements
Attachments
curl networking improvements
(14.05 KB, patch)
2007-03-15 19:31 PDT
,
Krzysztof Kowalczyk
mrowe
: review-
Details
Formatted Diff
Diff
curl cleanup, take two
(13.73 KB, patch)
2007-04-29 11:22 PDT
,
Alp Toker
mjs
: review+
Details
Formatted Diff
Diff
Curl re-entrancy problem: tries to reuse semi-active handle
(9.34 KB, text/plain)
2007-05-07 15:16 PDT
,
Kimmo Kinnunen
no flags
Details
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Krzysztof Kowalczyk
Comment 1
2007-03-15 19:31:38 PDT
Created
attachment 13653
[details]
curl networking improvements Curl (linux/gdk) networking improvements: a) POST support b) don't use CURL in a re-entrant way. c) for easier debugging, in debug build if env var DEBUG_CURL is set, turn on curl's internal debbuging
Mark Rowe (bdash)
Comment 2
2007-04-18 09:42:15 PDT
Comment on
attachment 13653
[details]
curl networking improvements + if ((CURLE_OK == err) && ((301 == httpCode) || (302 == httpCode))) + return totalSize; + You have unneeded parenthesis here, and in several other places. + CString cstring = elements[i].m_filename.utf8(); An extra space after the =. + // Fill in the file upload field + curl_formadd(&post, + &lastItem, + CURLFORM_COPYNAME, "sendfile", + CURLFORM_FILE, d->m_fileName, + CURLFORM_END); + + // Fill in the filename field + curl_formadd(&post, + &lastItem, + CURLFORM_COPYNAME, "filename", + CURLFORM_COPYCONTENTS, d->m_fileName, + CURLFORM_END); + + // Fill in the submit field too, even if this is rarely needed + curl_formadd(&post, + &lastItem, + CURLFORM_COPYNAME, "submit", + CURLFORM_COPYCONTENTS, "send", + CURLFORM_END); This looks to be based on curl example code. It seems incorrect to be adding a form field named "submit" for each file that is uploaded. I think the indentation style of this code block could be cleaned up a great deal too. + if (job == node->job()) { + node->setRemoved(true); + return true; + node = next; + } I think "node = next;" should be outside the braces. +class ResourceHandleList +{ Brace should be on same line as class statement.
Alp Toker
Comment 3
2007-04-29 11:22:03 PDT
Created
attachment 14268
[details]
curl cleanup, take two This patch attempts to address some of the issues in the review. I'm not entirely familiar with what it's doing, but I have pending patches for this area of code and would prefer to get Krzysztof's patch merged while it still applies. Having this patch open in bugzilla is a blocker for new work being done on the curl backend, so we should try to get this patch applied or WONTFIX if necessary.
Kimmo Kinnunen
Comment 4
2007-05-07 15:16:10 PDT
Created
attachment 14401
[details]
Curl re-entrancy problem: tries to reuse semi-active handle Segfault when libcurl tries to share handle which is not finished yet. man curl_easy_handle: "If the curl handles are used simultaneously, you MUST use the locking methods in the share handle." When libcurl-gnutls (ubuntu package) is concerned, "simultaneously" means not calling add when you have received callback from that originates from curl_multi_perform. Temp fix: -- Index: platform/network/gdk/ResourceHandleManager.cpp =================================================================== --- platform/network/gdk/ResourceHandleManager.cpp (revision 21288) +++ platform/network/gdk/ResourceHandleManager.cpp (working copy) @@ -188,7 +188,6 @@ void ResourceHandleManager::add(Resource curl_easy_setopt(d->m_handle, CURLOPT_FOLLOWLOCATION, 1); curl_easy_setopt(d->m_handle, CURLOPT_MAXREDIRS, 10); curl_easy_setopt(d->m_handle, CURLOPT_HTTPAUTH, CURLAUTH_ANY); - curl_easy_setopt(d->m_handle, CURLOPT_SHARE, m_curlShareHandle); // enable gzip and deflate through Accept-Encoding: curl_easy_setopt(d->m_handle, CURLOPT_ENCODING, "");
Maciej Stachowiak
Comment 5
2007-05-29 00:35:52 PDT
Code changes look ok to me, though I am not a curl expert. It's been reported these make curl networking more stable, so let us get them landed for now. They'll be more thoroughly validated once we get http layout tests running for gdk and other ports that use curl.
Maciej Stachowiak
Comment 6
2007-05-29 00:36:45 PDT
Comment on
attachment 14268
[details]
curl cleanup, take two r=me
Mark Rowe (bdash)
Comment 7
2007-05-29 23:22:58 PDT
Landed in
r21885
.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug