Yeah, I had one of those 'duh' moments when you said that it had only
read-only. I looked right over that when I looked at the code :)

Chris

On Sun, Aug 30, 2009 at 3:10 PM, Colin<[email protected]> wrote:
>
> Oh, I forgot to say: no, curl_exec does not close the file handle.
> This should and does occur later with fclose().
>
> If it did, the stream_get_contents() would fail with an error (cos the
> filehandle would technically no longer exist), but it doesn't.
>
>
> On Sun, Aug 30, 2009 at 8:06 PM, Colin<[email protected]> wrote:
>> Hi Chris
>>
>> Yes, file_get_contents() works, but that's because it sets it's own
>> filehandle when it opens and reads the file, rather than using the
>> file handle already open. stream_get_contents() uses an already open
>> filehandle, and this needs read permissions. This is ultimately where
>> the problem was.
>>
>> The latest SVN code has the correct permissions and resolves the
>> issue, without resorting to using file_get_contents().
>>
>> Cheers,
>> Colin
>>
>>
>> On Sat, Aug 29, 2009 at 3:38 PM, Chris
>> Tankersley<[email protected]> wrote:
>>>
>>> curlrequestprocessor.php line 87 is using stream_get_contents after
>>> the call to CURL. Changing it to file_get_contents causes the body to
>>> return properly. I will test it with FlickrFeed later, but initial
>>> tests seem to show the stream_get_contents to be the problem.
>>>
>>> Since CURLOPT_FILE takes a resource, does running the curl_exec close
>>> out that resource, making stream_get_contents fail (and thereby making
>>> file_get_contents work)?
>>>
>>> From the PHP Manual for stream_get_contents:
>>> Identical to file_get_contents(), except that stream_get_contents()
>>> operates on an already open stream resource and returns the remaining
>>> contents in a string, up to maxlength  bytes and starting at the
>>> specified offset .
>>>
>>> Chris
>>>
>>> On Sat, Aug 29, 2009 at 7:36 AM, Chris
>>> Tankersley<[email protected]> wrote:
>>>> Since the fix just removed using the tmpfile function and just jumps
>>>> straight to using the cache directory, is your cache directory
>>>> writable?
>>>>
>>>> Chris
>>>>
>>>> On Sat, Aug 29, 2009 at 5:10 AM, Ali B.<[email protected]> wrote:
>>>>> Thanks for taking the time to investigate this Colin. r3693 works around a
>>>>> bug in the latest versions of PHP. Not really the first time PHP does that
>>>>> to us. Which makes you think if these issue should be worked around in the
>>>>> first place.
>>>>>
>>>>> As for fixing it, I have honestly no idea how to get Remote Request to 
>>>>> work
>>>>> again without "breaking" it for PHP 5.2.10 and 5.3. I'll have to leave it
>>>>> for the more experienced.
>>>>>
>>>>> On Sat, Aug 29, 2009 at 6:52 PM, Colin <[email protected]> wrote:
>>>>>>
>>>>>> Right, it's the changes that were introduced in r3693 that are
>>>>>> responsible.  r3692 works as expected. r3693 doesn't. I don't have
>>>>>> time right now to investigate these changes or log a bug, but will try
>>>>>> take a look later this weekend if no one else gets the chance.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sat, Aug 29, 2009 at 9:09 AM, Colin<[email protected]> wrote:
>>>>>> > I noticed this too, but blamed it on my feed source and didn't
>>>>>> > investigate further.
>>>>>> >
>>>>>> > I think I can probably trawl back through my logs and see when it
>>>>>> > first started occurring for me.
>>>>>> >
>>>>>> >
>>>>>> > On Fri, Aug 28, 2009 at 8:21 AM, Ali B.<[email protected]> wrote:
>>>>>> >> I've noticed this issue recently while working with the flickrfeed
>>>>>> >> plugin.
>>>>>> >> Whatever URL I have a new remote request to fetch, I get a blank
>>>>>> >> response
>>>>>> >> body. The response header is returned with a 200 status. But the body
>>>>>> >> is
>>>>>> >> always blank no matter what URL is being fetched. Here's an example:
>>>>>> >>
>>>>>> >> $call = new RemoteRequest('http://habariproject.org/en/atom/1');
>>>>>> >> $result = $call->execute();
>>>>>> >> Utils::debug($call);
>>>>>> >> Utils::debug($result);
>>>>>> >> Utils::debug($call->get_response_header());
>>>>>> >> Utils::debug($call->get_response_body());
>>>>>> >>
>>>>>> >> The results:
>>>>>> >>
>>>>>> >> -----------------------------------------------------------------------------------------------------------------
>>>>>> >> object RemoteRequest Object
>>>>>> >> (
>>>>>> >>     [method:private] => GET
>>>>>> >>     [url:private] => http://habariproject.org/en/atom/1
>>>>>> >>     [params:private] => Array
>>>>>> >>         (
>>>>>> >>         )
>>>>>> >>
>>>>>> >>     [headers:private] => Array
>>>>>> >>         (
>>>>>> >>             [User-Agent] => Habari/0.7-alpha
>>>>>> >>         )
>>>>>> >>
>>>>>> >>     [postdata:private] => Array
>>>>>> >>         (
>>>>>> >>         )
>>>>>> >>
>>>>>> >>     [files:private] => Array
>>>>>> >>         (
>>>>>> >>         )
>>>>>> >>
>>>>>> >>     [body:private] =>
>>>>>> >>     [timeout:private] => 180
>>>>>> >>     [processor:private] => CURLRequestProcessor Object
>>>>>> >>         (
>>>>>> >>             [response_body:private] =>
>>>>>> >>             [response_headers:private] => HTTP/1.1 200 OK
>>>>>> >> Date: Fri, 28 Aug 2009 07:17:45 GMT
>>>>>> >> Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.5.1 mod_python/3.3.1
>>>>>> >> Python/2.5.2
>>>>>> >> PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g
>>>>>> >> X-Powered-By: PHP/5.2.4-2ubuntu5.6
>>>>>> >> Set-Cookie: PHPSESSID=77a625c79c865fa68480f8ce3cc3c4b6; path=/
>>>>>> >> Expires: Thu, 19 Nov 1981 08:52:00 GMT
>>>>>> >> Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
>>>>>> >> pre-check=0
>>>>>> >> Pragma: no-cache
>>>>>> >> Vary: Accept-Encoding
>>>>>> >> Transfer-Encoding: chunked
>>>>>> >> Content-Type: application/atom+xml
>>>>>> >>             [executed:private] => 1
>>>>>> >>             [can_followlocation:private] => 1
>>>>>> >>             [max_redirs:private] => 5
>>>>>> >>             [_headers:private] => HTTP/1.1 200 OK
>>>>>> >> Date: Fri, 28 Aug 2009 07:17:45 GMT
>>>>>> >> Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.5.1 mod_python/3.3.1
>>>>>> >> Python/2.5.2
>>>>>> >> PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g
>>>>>> >> X-Powered-By: PHP/5.2.4-2ubuntu5.6
>>>>>> >> Set-Cookie: PHPSESSID=77a625c79c865fa68480f8ce3cc3c4b6; path=/
>>>>>> >> Expires: Thu, 19 Nov 1981 08:52:00 GMT
>>>>>> >> Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
>>>>>> >> pre-check=0
>>>>>> >> Pragma: no-cache
>>>>>> >> Vary: Accept-Encoding
>>>>>> >> Transfer-Encoding: chunked
>>>>>> >> Content-Type: application/atom+xml
>>>>>> >>
>>>>>> >>
>>>>>> >>         )
>>>>>> >>
>>>>>> >>     [executed:private] => 1
>>>>>> >>     [response_body:private] =>
>>>>>> >>     [response_headers:private] => HTTP/1.1 200 OK
>>>>>> >> Date: Fri, 28 Aug 2009 07:17:45 GMT
>>>>>> >> Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.5.1 mod_python/3.3.1
>>>>>> >> Python/2.5.2
>>>>>> >> PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g
>>>>>> >> X-Powered-By: PHP/5.2.4-2ubuntu5.6
>>>>>> >> Set-Cookie: PHPSESSID=77a625c79c865fa68480f8ce3cc3c4b6; path=/
>>>>>> >> Expires: Thu, 19 Nov 1981 08:52:00 GMT
>>>>>> >> Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
>>>>>> >> pre-check=0
>>>>>> >> Pragma: no-cache
>>>>>> >> Vary: Accept-Encoding
>>>>>> >> Transfer-Encoding: chunked
>>>>>> >> Content-Type: application/atom+xml
>>>>>> >>     [user_agent:private] => Habari/0.7-alpha
>>>>>> >> )
>>>>>> >>
>>>>>> >> -----------------------------------------------------------------------------------------------------------------
>>>>>> >> boolean 1
>>>>>> >>
>>>>>> >> -----------------------------------------------------------------------------------------------------------------
>>>>>> >> string HTTP/1.1 200 OK
>>>>>> >> Date: Fri, 28 Aug 2009 07:17:45 GMT
>>>>>> >> Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.5.1 mod_python/3.3.1
>>>>>> >> Python/2.5.2
>>>>>> >> PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g
>>>>>> >> X-Powered-By: PHP/5.2.4-2ubuntu5.6
>>>>>> >> Set-Cookie: PHPSESSID=77a625c79c865fa68480f8ce3cc3c4b6; path=/
>>>>>> >> Expires: Thu, 19 Nov 1981 08:52:00 GMT
>>>>>> >> Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
>>>>>> >> pre-check=0
>>>>>> >> Pragma: no-cache
>>>>>> >> Vary: Accept-Encoding
>>>>>> >> Transfer-Encoding: chunked
>>>>>> >> Content-Type: application/atom+xml
>>>>>> >>
>>>>>> >> -----------------------------------------------------------------------------------------------------------------
>>>>>> >> string
>>>>>> >>
>>>>>> >> -----------------------------------------------------------------------------------------------------------------
>>>>>> >>
>>>>>> >> Any idea what's going on with the class?
>>>>>> >>
>>>>>> >> --
>>>>>> >> Ali B. / dmondark
>>>>>> >> http://awhitebox.com
>>>>>> >>
>>>>>> >> >>
>>>>>> >>
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > --
>>>>>> > Colin Seymour
>>>>>> > Blog: http://www.colinseymour.co.uk
>>>>>> > Tech Stuff: http://www.lildude.co.uk
>>>>>> >
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Colin Seymour
>>>>>> Blog: http://www.colinseymour.co.uk
>>>>>> Tech Stuff: http://www.lildude.co.uk
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Ali B. / dmondark
>>>>> http://awhitebox.com
>>>>>
>>>>> >>
>>>>>
>>>>
>>>
>>> >>
>>>
>>
>>
>>
>> --
>> Colin Seymour
>> Blog: http://www.colinseymour.co.uk
>> Tech Stuff: http://www.lildude.co.uk
>>
>
>
>
> --
> Colin Seymour
> Blog: http://www.colinseymour.co.uk
> Tech Stuff: http://www.lildude.co.uk
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at http://groups.google.com/group/habari-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to