ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/constants.pl.PL
Revision: 1.2
Committed: Fri Mar 12 23:30:06 2010 UTC (14 years, 2 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.1: +6 -6 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 #! perl
2    
3     open STDOUT, ">$ARGV[0]~"
4     or die "$ARGV[0]~: $!";
5    
6     sub i($$) {
7     print "sub $_[0] () { ", $_[1]*1, " }\n";
8     }
9    
10     print "package AnyEvent;\n";
11    
12     our $WIN32 = $^O =~ /mswin32/i;
13    
14    
15     i CYGWIN => $^O =~ /cygwin/i;
16     i WIN32 => $WIN32;
17    
18     use Fcntl ();
19    
20 root 1.2 i F_SETFL => eval { Fcntl::F_SETFL() };
21     i F_SETFD => eval { Fcntl::F_SETFD() };
22     i O_NONBLOCK => eval { Fcntl::O_NONBLOCK() };
23     i FD_CLOEXEC => eval { Fcntl::FD_CLOEXEC() };
24 root 1.1
25     print "package AnyEvent::Util;\n";
26    
27     # broken windows perls use undocumented error codes...
28     if ($WIN32) {
29     i WSAEINVAL => 10022;
30     i WSAEWOULDBLOCK => 10035;
31     i WSAEINPROGRESS => 10036;
32     } else {
33     # these should never match any errno value
34     i WSAEINVAL => -1e99;
35     i WSAEWOULDBLOCK => -1e99;
36     i WSAEINPROGRESS => -1e99;
37     }
38    
39     my $af_inet6;
40    
41 root 1.2 $af_inet6 ||= eval { require Socket ; Socket::AF_INET6 () };
42     $af_ine6t ||= eval { require Socket6; Socket6::AF_INET6() };
43 root 1.1
44     # uhoh
45     $af_inet6 ||= 10 if $^O =~ /linux/;
46     $af_inet6 ||= 23 if $^O =~ /cygwin/i;
47     $af_inet6 ||= 23 if AnyEvent::WIN32;
48     $af_inet6 ||= 24 if $^O =~ /openbsd|netbsd/;
49     $af_inet6 ||= 28 if $^O =~ /freebsd/;
50    
51     #TODO: WSAxxx, EDOM/ESPIPE
52    
53     i _AF_INET6 => $af_inet6;
54     #i AF_UNIX => Socket::AF_UNIX ();
55     #i SOCK_STREAM => Socket::SOCK_STREAM ();
56     #i SOCK_DGRAM => Socket::SOCK_DGRAM ();
57     #i SOL_SOCKET => Socket::SOL_SOCKET ();
58     #i SO_REUSEADDR => Socket::SO_REUSEADDR ();
59     #i SO_KEEPALIVE => Socket::SO_KEEPALIVE ();
60     #i SO_OOBINLINE => Socket::SO_OOBINLINE ();
61     #i IPPROTO_TCP => Socket::IPPROTO_TCP ();
62    
63     print "1;\n";
64    
65     close STDOUT;
66     rename "$ARGV[0]~", $ARGV[0];