< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index Next in Thread >

Re: [reSIProcate] Fast streams encode std::endl incorrectly on *nix systems


The STL libraries that I checked use '\n' for std::ostream/std::endl
processing.  The faststream implementation was using "\r\n", so I would
think that if anything the faststream implementation would break existing
code. This change modifies faststream to behave the same as the default STL
std::ostream encoding.  Unless I misunderstood your comment.

Thanks,

-justin

-----Original Message-----
From: Robert Sparks [mailto:rjsparks@xxxxxxxxxxx] 
Sent: Tuesday, December 02, 2008 10:51 AM
To: Justin Matthews
Cc: Byron Campen; resiprocate-devel@xxxxxxxxxxxxxx
Subject: Re: [reSIProcate] Fast streams encode std::endl incorrectly on *nix
systems

(resending - apologies if this is a duplicate):

Its probably worth skimming to make sure nothing was counting on that  
\r\n behavior when encoding SIP messages
(which require CRLF regardless of platform).

RjS

On Dec 1, 2008, at 7:35 PM, Justin Matthews wrote:

> Done. Let me know if you have issues.
>
> Thanks,
>
>
> -justin
>
> -----Original Message-----
> From: Byron Campen [mailto:bcampen@xxxxxxxxxxxx]
> Sent: Monday, December 01, 2008 8:28 PM
> To: Justin Matthews
> Cc: 'resiprocate-devel@xxxxxxxxxxxxxx'
> Subject: Re: [reSIProcate] Fast streams encode std::endl incorrectly  
> on *nix
> systems
>
>       Ok, fine by me!
>
> Best regards,
> Byron Campen
>
>> I think we can change this to '\n' for all platforms, Visual C++
>> actually
>> uses '\n' for its STL implementation.  Not sure why "\r\n" was
>> picked :-).
>>
>> Thanks,
>>
>> -justin
>>
>> -----Original Message-----
>> From: resiprocate-devel-bounces@xxxxxxxxxxxxxxx
>> [mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxx] On Behalf Of
>> Byron Campen
>> Sent: Monday, December 01, 2008 8:01 PM
>> To: resiprocate-devel@xxxxxxxxxxxxxx
>> Subject: [reSIProcate] Fast streams encode std::endl incorrectly on
>> *nix
>> systems
>>
>>      On *nix systems, std::endl is encoded as '\n', but the following
>> code in resipfaststreams.hxx encodes it as "\r\n"
>>
>> *snip*
>>         if (_Pfn == static_cast<std::ostream& (*)
>> (std::ostream&)>(std::endl))
>>         {
>>            if (buf_->writebuf("\r\n",2) < 2)
>>            {
>>               good_ = false;
>>            }
>>         }
>>
>> *snip*
>>
>>      Is there going to be an easy way to make this behavior consistent
>> with whatever the platform does? Just using an #ifdef WIN32  won't
>> get this
>> quite right, but it may be good enough for us. Thoughts?
>>
>> Best regards,
>> Byron Campen
>>
>>
>
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel@xxxxxxxxxxxxxxx
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel