[squeak-dev] Re: WebClient + SqueakSSL = https

Levente Uzonyi leves at elte.hu
Thu Jul 29 21:15:22 UTC 2010


On Mon, 26 Jul 2010, Levente Uzonyi wrote:

> On Mon, 26 Jul 2010, Andreas Raab wrote:
>
>> On 7/26/2010 6:59 AM, Levente Uzonyi wrote:
>>> I found a few issues with logging on unix:
>>> - SqueakSSL >> #primitiveSSL:setIntProperty:toValue: calls
>>> #primitiveSetStringProperty instead of #primitiveSetIntProperty.
>>> - #primitiveSetIntPropery always fails, because sqSetIntPropertySSL always
>>> returns 0, it should return 1 at the end of the function.
>>> After fixing these #logLevel: with argument 1 didn't give any output. It
>>> works with 2 and 3. It's a bit annoying that the log messages are not
>>> flushed (printf is buffered), so one has to generate a few requests to
>>> see the result of the first one (I can't flush stdout without FFI or
>>> OSProcess).
>> 
>> Thanks, I will fix that. For some reason the output in my Ubuntu is
>
> Thanks.
>
>> unbuffered; any ideas why that would be?
>
> Not really. IIRC printf should automatically flush on \n, but it somehow 
> doesn't do it.

Looking after streams and buffering it turns out that it's mostly true, 
but not always:

"The three types of buffering available are unbuffered, block buffered, 
and line buffered.  When an output stream is unbuffered, information 
appears on the destination file or terminal as soon as written; when it is 
block buffered many characters are saved up and written as a block; when 
it is line  buffered  characters are saved up until a newline is output 
or input is read from any stream attached to a terminal device (typically 
stdin). The function fflush(3) may be used to force the block out early. 
(See fclose(3).)  Normally all files are block  buffered.   When  the 
first I/O operation  occurs  on a file, malloc(3) is called, and a buffer is 
obtained.  If a stream refers to a terminal (as stdout normally does) it 
is line buffered.  The standard error stream stderr is always unbuffered by 
default." -- from the man page of setvbuf

Since I started the vm with nohup, stdout didn't refer to a terminal, so 
it's not line buffered.


Levente

>
>
> Levente
>
>> 
>>> I attached the output of [WebClient httpGet:
>>> 'https://www.google.com/search?q=squeak'] generated with #logLevel: 3.
>> 
>> Your analysis in the other email is correct. The error code means the CA 
>> certs are missing and installing them should fix the problem.
>> 
>> Cheers,
>>  - Andreas
>> 
>> 
>
>



More information about the Squeak-dev mailing list