Hello community, here is the log from the commit of package libzypp checked in at Tue Oct 28 22:29:01 CET 2008. -------- --- libzypp/libzypp.changes 2008-10-26 14:55:54.000000000 +0100 +++ /mounts/work_src_done/STABLE/libzypp/libzypp.changes 2008-10-28 22:02:49.000000000 +0100 @@ -1,0 +2,6 @@ +Tue Oct 28 22:01:40 CET 2008 - dmacvicar@suse.de + +- don't free the header before curl_perform as curl does not + copy it. (bnc#439532) + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- bnc-439532.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libzypp.spec ++++++ --- /var/tmp/diff_new_pack.H27089/_old 2008-10-28 22:28:12.000000000 +0100 +++ /var/tmp/diff_new_pack.H27089/_new 2008-10-28 22:28:12.000000000 +0100 @@ -25,10 +25,11 @@ AutoReqProv: on Summary: Package, Patch, Pattern, and Product Management Version: 5.19.0 -Release: 2 +Release: 3 Source: libzypp-5.19.0.tar.bz2 Source1: libzypp-rpmlintrc Patch0: r11488.diff +Patch1: bnc-439532.diff Prefix: /usr Provides: yast2-packagemanager Obsoletes: yast2-packagemanager @@ -98,6 +99,7 @@ %prep %setup -q %patch0 -p0 +%patch1 -p0 %build mkdir build @@ -230,6 +232,9 @@ %{_libdir}/pkgconfig/libzypp.pc %changelog +* Tue Oct 28 2008 dmacvicar@suse.de +- don't free the header before curl_perform as curl does not + copy it. (bnc#439532) * Sun Oct 26 2008 coolo@suse.de - adding svn r11488 to fix compile of PackageKit * Fri Oct 24 2008 ma@suse.de ++++++ bnc-439532.diff ++++++ --- zypp/media/MediaCurl.cc 2008-10-28 21:55:46.000000000 +0100 +++ /space/git/suse/zypp/libzypp/zypp/media/MediaCurl.cc 2008-10-28 17:31:05.000000000 +0100 @@ -185,7 +185,7 @@ Pathname MediaCurl::_cookieFile = "/var/lib/YaST2/cookies"; -const char *const MediaCurl::anonymousIdHeader() +static const char *const anonymousIdHeader() { // we need to add the release and identifier to the // agent string. @@ -203,14 +203,14 @@ } static const std::string _value( - str::form( - "X-ZYpp-AnonymousUniqueId: %s", - target ? target->anonymousUniqueId().c_str() : "" ) + str::trim( str::form( + "X-ZYpp-AnonymousId: %s", + target ? target->anonymousUniqueId().c_str() : "" ) ) ); return _value.c_str(); } - -const char *const MediaCurl::agentString() + +static const char *const agentString() { // we need to add the release and identifier to the // agent string. @@ -244,7 +244,8 @@ : MediaHandler( url_r, attach_point_hint_r, "/", // urlpath at attachpoint true ), // does_download - _curl( NULL ) + _curl( NULL ), + _customHeaders(0L) { _curlError[0] = '\0'; _curlDebug = 0L; @@ -491,18 +492,7 @@ disconnectFrom(); ZYPP_THROW(MediaCurlSetOptException(_url, _curlError)); } - - // now add the anonymous id header - curl_slist *chunk = NULL; - chunk = curl_slist_append(chunk, anonymousIdHeader()); - ret = curl_easy_setopt ( _curl, CURLOPT_HTTPHEADER, chunk ); - curl_slist_free_all(chunk); - if ( ret != 0) { - disconnectFrom(); - ZYPP_THROW(MediaCurlSetOptException(_url, _curlError)); - } - } @@ -714,6 +704,15 @@ ZYPP_THROW(MediaCurlSetOptException(_url, _curlError)); } + // now add the anonymous id header + _customHeaders = curl_slist_append(_customHeaders, anonymousIdHeader()); + + ret = curl_easy_setopt ( _curl, CURLOPT_HTTPHEADER, _customHeaders ); + + if ( ret != 0) { + disconnectFrom(); + ZYPP_THROW(MediaCurlSetOptException(_url, _curlError)); + } // FIXME: need a derived class to propelly compare url's MediaSourceRef media( new MediaSource(_url.getScheme(), _url.asString())); @@ -734,6 +733,12 @@ // void MediaCurl::disconnectFrom() { + if ( _customHeaders ) + { + curl_slist_free_all(_customHeaders); + _customHeaders = 0L; + } + if ( _curl ) { curl_easy_cleanup( _curl ); --- zypp/media/MediaCurl.h 2008-10-28 21:55:46.000000000 +0100 +++ /space/git/suse/zypp/libzypp/zypp/media/MediaCurl.h 2008-10-28 17:31:05.000000000 +0100 @@ -94,13 +94,6 @@ static int progressCallback( void *clientp, double dltotal, double dlnow, double ultotal, double ulnow ); - - /** The user agent string */ - static const char *const agentString(); - - /** anonymous id header used to count unique users */ - static const char *const anonymousIdHeader(); - private: /** * Return a comma separated list of available authentication methods @@ -114,6 +107,7 @@ CURL *_curl; char _curlError[ CURL_ERROR_SIZE ]; long _curlDebug; + curl_slist *_customHeaders; mutable std::string _userpwd; std::string _proxy; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de