C
Charles Lowe
This is my first post to the ruby mailing lists, so let me first thank
all the people who's wonderful work I've made use of -- great stuff!.
I've been trying to upload some large files, using
Net::HTTP:ut#body_stream=, but have ran into some problems.
Most of my initial testing was in cygwin, where most things "just work".
upon trying it in the mingw32 build, i got https errors due to openssl
doing some non-block fcntls (IO#fcntl "not implemented on this
platform").
I switched to the i386-mswin32, but now I getting some more fundamental
problems, when doing file reads. I'm typically getting reads back under
the requested size, (not a problem), but this is generating premature
EOF errors. If I just use File#read, I correctly get the entire file.
An irb snippet says it best:
irb(main):139:0> f.pos
=> 1605632
irb(main):140:0> f.read 1024
=> nil
irb(main):141:0> f.pos
=> 1605632
irb(main):142:0> f.read 1024
=> nil
irb(main):143:0> f.sysread 1024
=>
"R\326ER6qJ\302So\233\321\373\25218\205\260u*\245\212`k\246\300Vo\233\311\373
\252)8\222}z\367\270g58\026x\022q"
irb(main):144:0> f.pos
=> 1606656
irb(main):145:0> f.sysread 1024
=>
"\340G\370\023\3023\b:R\264C\225\326\213\276\335\244\234O)N\035$3N\307\017\36
0d\261\321A\245\334\250y|\025lo\253\306*\205\316\246\276$`\366\022\255"
irb(main):146:0> _.length
=> 52
irb(main):147:0> f.sysread 1024
EOFError: end of file reached
from (irb):147:in `sysread'
from (irb):147
from :0
irb(main):148:0> f.pos
=> 1607680
irb(main):149:0> RUBY_PLATFORM
=> "i386-mswin32"
(FWIW, the file f in question, is just the one-click installer -
ruby185-21.exe. f.stat.size correctly yields 27644627).
all the people who's wonderful work I've made use of -- great stuff!.
I've been trying to upload some large files, using
Net::HTTP:ut#body_stream=, but have ran into some problems.
Most of my initial testing was in cygwin, where most things "just work".
upon trying it in the mingw32 build, i got https errors due to openssl
doing some non-block fcntls (IO#fcntl "not implemented on this
platform").
I switched to the i386-mswin32, but now I getting some more fundamental
problems, when doing file reads. I'm typically getting reads back under
the requested size, (not a problem), but this is generating premature
EOF errors. If I just use File#read, I correctly get the entire file.
An irb snippet says it best:
irb(main):139:0> f.pos
=> 1605632
irb(main):140:0> f.read 1024
=> nil
irb(main):141:0> f.pos
=> 1605632
irb(main):142:0> f.read 1024
=> nil
irb(main):143:0> f.sysread 1024
=>
"R\326ER6qJ\302So\233\321\373\25218\205\260u*\245\212`k\246\300Vo\233\311\373
\252)8\222}z\367\270g58\026x\022q"
irb(main):144:0> f.pos
=> 1606656
irb(main):145:0> f.sysread 1024
=>
"\340G\370\023\3023\b:R\264C\225\326\213\276\335\244\234O)N\035$3N\307\017\36
0d\261\321A\245\334\250y|\025lo\253\306*\205\316\246\276$`\366\022\255"
irb(main):146:0> _.length
=> 52
irb(main):147:0> f.sysread 1024
EOFError: end of file reached
from (irb):147:in `sysread'
from (irb):147
from :0
irb(main):148:0> f.pos
=> 1607680
irb(main):149:0> RUBY_PLATFORM
=> "i386-mswin32"
(FWIW, the file f in question, is just the one-click installer -
ruby185-21.exe. f.stat.size correctly yields 27644627).