1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
|
IO 1.38 -- Apr 19 2018 - Todd Rinaldo
* Remove pre 5.8 logic from code base.
* Bump all IO modules to 1.38 and set required Perl to 5.8.1
* Fix for perl #125723
* IO test: adjust require for non CORE perl
* IO::Handle - fix precedence issue
* Document IO::Select error detection
* Rely on C89 <time.h>
* (perl #130856) deal with unpack_sockaddr_un() croaking
* Switch most open() calls to three-argument form.
* (perl #129788) IO::Poll: fix memory leak
* (perl #128095) check pack_sockaddr_un()'s return value
* dist/: remove . from @INC when loading optional modules
* Fix IO::Handle documentation mangled by a manually applied patch
* Make IO::Poll->poll call _poll even with an empty fd array
* Fix assertion when calling IO::Poll::_poll() with an empty fd array
* Some BSD implementations might have <sys/poll.h> instead of <poll.h>.
IO 1.36 -- Jun 26 2015 (Not released to CPAN)
* dist/IO/t/io_utf8argv.t: Generalize for non-ASCII platforms.
* VMS does have fsync, so configure accordingly.
* Skip obsolete skip in io_xs.t.
* Label conditionally unused.
* Use <sys/poll.h> if available before going select().
* Fix assertion when calling IO::Poll::_poll() with an empty fd array
* Make IO::Poll->poll call _poll even with an empty fd array
IO 1.35 -- Dec 7 2014 (Not released to CPAN)
* Change OP_SIBLING to OpSIBLING
* Improve connected() doc
* IRIX: fsync documented to fail on read-only filehandles.
* Convert all use of Test.pm to Test::More
IO 1.34 -- Sep 10 2014 (Not released to CPAN)
* Add dual life support for use of op_sibling in IO.xs
IO 1.33 -- Jun 10 2014 (Not released to CPAN)
* wrap op_sibling field access in OP_SIBLING* macros
* Make like() and unlike() in t/test.pl refuse non-qr// arguments
* Further simplify the sockatmark(). (And do not assign the fd in PREINIT.)
IO 1.32 -- May 29 2014 (Not released to CPAN)
* fcntl receiving -1 from fileno, fcntl failing.
* Also very few spots of negative numgroups for getgroups(), and fgetc() return, but almost all checking is for fcntl.
* merged fix for perl #121743 and perl #121745: hopefully picked up all the fixes-to-fixes from the ticket.
* Fix for Coverity perl5 CIDs 28990..29003,29005..29011,29013,45354,45363,49926
* Argument cannot be negative (NEGATIVE_RETURNS) fd is passed to a parameter that cannot be negative.
* CIDs 29004, 29012: Argument cannot be negative (NEGATIVE_RETURNS) num_groups is passed to a parameter that cannot be negative and because of CIDs 29005 and 29006 also CID 28924.
* In the first set of issues a fd is retrieved from PerlIO_fileno, and that is then used in places like fstat(), fchown(), dup(), etc., without checking whether the fd is valid (>=0).
* In the second set of issues a potentially negative number is potentially passed to getgroups().
* The CIDs 29005 and 29006 were a bit messy: fixing them needed also resolving CID 28924 where the return value of fstat() was ignored, and for completeness adding two croak calls (with perldiag updates): a bit of a waste since it's suidperl code.
IO 1.31 -- Mar 4 2014 (Not released to CPAN)
* dist/IO: Allow to be dual-lived - This dual-lived module has not been able to be compiled on releases earlier than 5.10.1.
* IO::Socket::INET: Handle getprotobyn{ame,umber} not being available
* dist/IO/t/io_pipe.t: Work around android only having an inbuilt echo
* Add examples for IO::Socket::UNIX.
* Remove an old note about autoflush from the POD.
* ioctl on perlhost platforms take a char*, not void*
IO 1.30 -- Nov 13 2013 (Not released to CPAN)
* IO.xs: fix compiler warning
* [perl #75156] fix the return value and bits for removing a closed fh
* [perl #75156] tests for deleting a closed handle from IO::Select
* Fix IO::Socket::connect() in the light of $! changes
IO 1.29 -- Mar 15 2013 (Not released to CPAN)
* Use separate macros for byte vs uv Unicode
* IO::Socket::INET's documentation for its Listen parameter was somewhat misleading, and the documentation for IO::Socket::Unix even more so.
* Address [perl #117999] for now by skipping known bad test on AIX
* [perl #117791] Clarify that write does not match the C 'write' semantics
* fix dist/IO/t/cachepropagate-unix.t
IO 1.28 -- Feb 2 2013 (Not released to CPAN)
* dist/IO/IO.xs: Silence compiler warning. This variable is unused, doesn't need to be declared.
IO 1.27 -- Feb 17 2013 (Not released to CPAN)
* [perl #116322]: getc() and ungetc() with unicode failure (ungetc() had no knowledge of UTF-8. )
IO 1.26 -- May 13 2009 - Jan 16 2013 (Not released to CPAN)
* portability to Haiku-OS for the cachepropagate-*.t tests
* sync() on a read-only file handle doesn't work on cygwin either
* [rt.cpan.org #61577] VMS doesn't support UNIX sockets
* add Test::More as a prereq to Makefile.PL
* document the limitations of protocol(), sockdomain(), socktype()
* [rt.cpan.org #61577] try to populate socket info when not cached
* [rt.cpan.org #61577] propagate socket details on accept
* [rt.cpan.org #61577] sockdomain and socktype undef on newly accepted sockets
* [perl #64772] check both input and output file handles for sync (This allows sync() to be called on directory handles.)
* [perl #64772] TODO test for sync on read only handle
* Convert some tests to Test::More
* Correct bug report email in docs from perl5-porters@perl.org to perlbug@perl.org
* Remove ‘use File::Spec’ from IO::File (It is not using it any more.)
* [RT #36079] Convert ` to '.
* use :raw to avoid interference from PERL_UNICODE when creating test data
* Make IO::Handle::getline(s) respect the open pragma (RT 66474)
* Fix setting sockets nonblocking in Win32
* Use the exception set in select (connect()) to early return when remote end is busy or in non existing port
* Keep verbatim pod within 79 cols
* Keep verbatim pod in IO.pm within 80 cols
* [perl #88486] IO::File does not always export SEEK*
* Explicitly force the load of IO::File in IO::Handle (see the discussion in [perl #87940]).
* Remove various indirect method calls in IO's docs
* IO::Select: allow removal of IO::Handle objects without fileno
* Actuall excise 'Apollo DomainOS' support. We officially killed it in 5.11.0. It hadn't worked for years before that.
* fix various compiler warnings from XS code (void return value)
* Only bind to localhost in tests: "in general, tests shouldn't be listening on all interfaces."
* Document IO::Socket getsockopt and setsockopt
* Convert sv_2mortal(newSVpvn()) to newSVpvn_flags(), for 5.11.0 and later. (
* Minor documentation and typo fixes.
* Move IO from ext to dist in core perl
IO 1.25 -- Wed May 13 18:37:33 CDT 2009
* Fix test warnings in io_dir
* skip tests known to cause a segfault 5.10.0
IO 1.24 -- Mon May 11 14:15:51 CDT 2009
* Make Makefile.PL usable by core and CPAN
* Reorganize files to be under lib/ directory structure now matches core perl
* Update with following changes made to core perl distribution
* Silence Win32 compiler warning in IO.xs
* Make non-blocking mode work on Windows in IO::Socket::INET
* fix some missing parts of IO::Handle pod
* Implement IO::Handle::say the same way as the builtin say().
* Undo io_linenum.t part of #34148. It was io_multihomed.t that I meant (my mistake), and that is now covered by #34155.
* watchdog() some IO tests
* Some more missing isGV_with_GP()s
* IO::Dir destructor
* IO::Socket::INET unnecessarily resolves "udp"
* IO::Handle->say should ignore $\ (bug #49266)
* consting IO.xs
* Net::SMTP can't send large messages with bleadperl
* Fix for IO::Socket send method
* Fixes for the test suite on OS/2
* Silence VC++ compiler warnings
* IO::Socket's IO.xs fails to compile
* IO::Socket::connect returns wrong errno on timeout
* Coverity correctly reports that gv might (just) be NULL. So don't dereference it if it is.
* Simplify tests for fork() capabilities
* Fix syntax error in io_pipe test
* Making IO::Socket pass test on Win32
* ext/IO/t/io_unix.t
IO 1.23 -- Sat Mar 25 19:28:28 CST 2006
* Adjust the regression tests to use t/test.pl when $ENV{PERL_CORE} is defined
* Reduce number of calls to getpeername
* Call qualify on format name passed to format_write. Bug reported by Johan Vromans
* Reduce calls to getprotobyname/number. Patch from Gisle Aas
* Remove references to file TEST used in core so appropriate tests are skipped
during an install from CPAN
* Add method say to IO::Handle
* Performance improvement for IO::File::open
* Don't warn about a directory being closed in the DESTROY
IO 1.22 -- Mon Sep 5 10:29:35 CDT 2005
* Update with changes made in perl core distribution
Change 173 on 1998/07/14 by <gbarr@pobox.com> (Graham Barr)
IO::Socket
- Added method connected
IO.xs
- Added check that file * is not null
t/io_udp.t
- Added check for connected
- Made change to catch recv not returning the address, and added a fix to
ensure test does not hang
t/io_sock.t
- Added check for connected.
Change 137 on 1998/05/21 by <gbarr@pobox.com> (Graham Barr)
IO::Socket::INET
- Added checks to all peer* and host* methods for undef
Change 134 on 1998/05/09 by <gbarr@pobox.com> (Graham Barr)
t/io_sock.t
- fix race condition on Solaris & SunOS
IO::Handle
- Applied patch from Gisle Aas <gisle@aas.no> for
documentation update
- Applied patch from Kuma <tgy@chocobo.org>
changed input_line_number to be on a per-handle basis.
IO::File
- Applied patch from Gisle Aas <gisle@aas.no> for
documentation update
IO::Seekable
- Applied patch from Gisle Aas <gisle@aas.no> for
documentation update
added sysseek
IO, IO::Socket::INET
- documentation update
IO.xs
- Applied patch from Gisle Aas <gisle@aas.no> for
blocking
Change 133 on 1998/05/09 by <gbarr@pobox.com> (Graham Barr)
t/io_sock.t
- Added checks for blocking()
Sun Apr 12 1998 <gbarr@pobox.com> (Graham Barr)
IO.xs
- enclosed newCONSTSUB in #ifdef as _64 now defines it.
Thu Mar 19 1998 <gbarr@pobox.com> (Graham Barr)
All
- Changed copyright/distribution policy back to be the same as perl
Sun Feb 15 1998 <gbarr@pobox.com> (Graham Barr)
IO::Socket
- Fix to ->accept, accept() returns false on error not undef.
*** Release 1.19
Thu Feb 5 1998 <gbarr@pobox.com> (Graham Barr)
All
- change copyright notice
IO::Socket::INET
- changed configure to accept PeerHost and LocalHost as well as the
PeerAddr and LocalAddr arguments.
Mon Feb 2 1998 <gbarr@pobox.com> (Graham Barr)
IO::Handle
- Added printflush so that flush.pl can be depreciated
IO::Socket
- Remove C<use Config> statement as it was not needed
Tue Jan 27 1998 <gbarr@pobox.com> (Graham Barr)
IO::Socket::INET
- removed carp if $^W
*** Patch 1.1804
Sat Jan 17 1998 <gbarr@pobox.com> (Graham Barr)
t/io_sock.t
- Replaced C<Listen => 0> with C<LocalAddr => 'localhost'>
IO/Socket/INET.pm
- Modified the MultiHomed code. Now each address for a given host has
a timeout of C<Timeout>.
- added _get_addr method for doing hostname lookups. Now Net::DNS can be
use by sub-classing IO::Socket::INET, Thanks Gisle Aas
t/io_multihomed.t
- new test added. Thanks Gisle Aas.
*** Patch 1.1803
Mon Nov 17 1997 <gbarr@pobox.com> (Graham Barr)
poll.c
- Added #ifdef I_* tests
IO::Socket
- Changed initialization of @domain2pkg to fix problem of Domain option
not working
- Added patch for multi-homed hosts, Thanks to Gisle Aas <gisle@aas.no>
IO::Socket::INET
- Change default proto to getprotobyname instead of 'tcp' constant string
- Added patch for multi-homed hosts, Thanks to Gisle Aas <gisle@aas.no>
t/io_sock.t
- Change to test fix for Domain problem fixed in IO::Socket and be
more comprehensive, Thanks to Gisle Aas <gisle@aas.no>
t/io_unix.t
- New test, Thanks to Gisle Aas <gisle@aas.no>
*** Patch 1.1802
Wed Nov 12 1997 <gbarr@pobox.com> (Graham Barr)
t/io_poll.t
- test 4 made an assumption that was not portable, fixed.
*** Patch 1.1801
Wed Oct 22 1997 <gbarr@pobox.com> (Graham Barr)
IO.xs
- change #ifdef's to allow compilation with 5.002
IO::Socket
- Fix to ensure that socket is not returned as non-blocking
unless the user asks for it
t/io_udp.t
- Fix to stop endless loop
*** Release 1.18
Mon Oct 13 1997 <gbarr@pobox.com> (Graham Barr)
IO.xs, IO::Handle
- 1.17 broke compatibility with 5.003, small tweaks to restore
compatibility
t/io_const.t
- Added new test to ensure backwards compatibility with constants
is not broken
Wed Oct 8 1997 <gbarr@pobox.com> (Graham Barr)
IO.xs
- Added #define's to cope with argument changes to start_subparse
from 5.003_22, _23 and _24
IO::Select
- Renamed has_error to be has_exception which is more correct,
has_error is a wrapper around has_exception with a warning if
$^W is set.
Makefile.PL
- Remove 'linkext' option to WriteMakefile so that static linking
should work properly, cannot remember why I added it.
Sun Oct 5 1997 <gbarr@pobox.com> (Graham Barr)
IO::Pipe
- GLOB assignment does not copy the fileno while under -T
added checks for undefined fileno, and added fdopen
- reader and write can now be called as static methods
Makefile.PL
- Attempt to locate <poll.h> and define I_POLL if found
*** Release 1.17
Fri Sep 26 1997 <gbarr@pobox.com> (Graham Barr)
IO.xs
- Fix bug in _poll for ANSI C compilers
IO::Socket
- Split IO::Socket::INET and IO::Socket::UNIX into separate files
IO::File
- Patch to open() for when file is in current directory.
*** Release 1.16
Mon 15 Sep 1997 <gbarr@pobox.com> Graham Barr
o New modules
- IO::Dir
- IO::Poll
o IO::Socket
- Changed new to call autoflush on the new socket
- IO::Socket::INET->new now accepts a single argument
- IO::Socket::INET default to protocol 'tcp'
o IO::File
- Added doc for new_tmpfile
o IO::Handle
- Removed use of AutoLoader for constants, constants are
now defined as constant XS subs
- Added fsync, but will not be available for use
unless HAS_FSYNC is defined, perls configure does not define
this yet.
- Moved bootstrap of IO.xs to IO.pm. IO::Handle no longer
contains an AUTOLOAD sub in it's ISA hier
o IO::Seekable
- Remove clearerr, as it is defined in IO.xs
o IO.xs
- Patched IO.xs with patch from Chip for setvbuf warning
- Added XS sub "constant" for backwards compatibility
o Misc
- Fixed IO::Socket::configure, it was not passing $arg to domain
specific package
- Changed all $fh variables in IO::Handle to $io and all $fh
variables in IO::Socket to $sock as Chip suggested
- Fixed usage messages to be consistent
*** Release 1.15
Sun 19 Jan 1997 <bodg@tiuk.ti.com> Graham Barr
o Updated PODs for IO::Handle and IO::File
o Modified IO.xs so that DESTROY gets called on IO::File
objects that were created with IO::File->new_tmpfile
o Modified the domain2pkg code in IO::Socket so that it
does not use blessed refs
o Created a new package IO::Pipe::End so that pipe specific
stuff can be moved out of IO::Handle.
o Added Ilya's OS/2 changes to Pipe.pm and io_pipe.t
o These changes happened sometime before the release of 1.15
- added shutdown to IO::Socket
- modified connect to not use alarm
- modified accept and connect to use IO::Select
*** Release 1.14
Tue 24 Dec 1996 <bodg@tiuk.ti.com> Graham Barr
o Updated to patches in perl core dist.
o Added C<use strict> to all modules
o Modified t/io_sock.t, hopefully the race condition has gone
o Added close statements to reader/writer in IO::Pipe
o IO::Handle::syswrite was calling sysread, fixed :-)
*** Release 1.12
Thu 19 Sep 1996 <bodg@tiuk.ti.com> Graham Barr
o Modified IO.xs so that it will compile with pre perlio version
of perl (ie pre perl5.003_02)
o Modified IO::Socket::send so not to pass 4 arguments to send
if the socket is connected
*** Release 1.10
Mon 11 Sep 1996 <bodg@tiuk.ti.com> Graham Barr
o Fixed a bug in IO::Socket which caused DESTROY to be called
on a partly initialised connection
o Changed IO.xs to use Perlio
o Modified usage message to report correct package
o Added IO::File::new changes from Chip, to allow PERM to be passed
o Added sysread and syswrite methods to IO::Handle
o Updated documentation
o Fixed a bug in IO::Select that caused a hang if the last handle
was removed.
o Added count method to IO::Select
o Renamed and modified tests so that they can be copied into the
perl distribution
o Added fcntl and ioctl methods to IO::Handle
Thu 25 Jul 1996 <bodg@tiuk.ti.com> Graham Barr
o It is now not necessary to call the domain sub-classes of
IO::Socket. when connect is called it notes the domain.
Domain specific methods, which are normally non-critical, are
called via this note-ing.
o Added methods to IO::Socket to retrieve the domain, type and
protocol of a given socket
Tue 23 Jul 1996 <bodg@tiuk.ti.com> Graham Barr
o IO::Socket::connect changed how we do timeouts, as it did not work
o IO::Handle::new_from_fd removed method call to _ref_fd, which was
a leftover from FileHandle
Fri 28 Jun 1996 <bodg@tiuk.ti.com> Graham Barr
o Modified IO::Socket::UNIX::configure to default to using a socket
type of SOCK_STREAM if no type is specified.
|