ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/constants.pl.PL
(Generate patch)

Comparing AnyEvent/constants.pl.PL (file contents):
Revision 1.3 by root, Sat Mar 13 00:08:08 2010 UTC vs.
Revision 1.6 by root, Mon Oct 11 03:41:39 2010 UTC

1#! perl 1#! perl
2
3# this file is unfortunately only executed at Makefile.PL time
4
5use Socket;
2 6
3open my $fh, ">lib/AnyEvent/constants.pl" 7open my $fh, ">lib/AnyEvent/constants.pl"
4 or die "lib/AnyEvent/constants.pl: $_[0]\n"; 8 or die "lib/AnyEvent/constants.pl: $_[0]\n";
5 9
6my $oldstdout = select $fh; 10my $oldstdout = select $fh;
7 11
8sub i($$) { 12sub i($$) {
9 print "sub $_[0] () { ", $_[1]*1, " }\n"; 13 print "sub $_[0] () { ", $_[1]*1, " }\n";
10} 14}
11 15
16sub n($$) {
17 print "sub $_[0] () { ", (defined $_[1] ? $_[1]*1 : "undef"), " }\n";
18}
19
12print "package AnyEvent;\n"; 20print "package AnyEvent;\n";
13 21
14our $WIN32 = $^O =~ /mswin32/i; 22our $WIN32 = $^O =~ /mswin32/i;
15
16 23
17i CYGWIN => $^O =~ /cygwin/i; 24i CYGWIN => $^O =~ /cygwin/i;
18i WIN32 => $WIN32; 25i WIN32 => $WIN32;
19 26
20use Fcntl (); 27use Fcntl ();
38 i WSAEINPROGRESS => -1e99; 45 i WSAEINPROGRESS => -1e99;
39} 46}
40 47
41my $af_inet6; 48my $af_inet6;
42 49
43$af_inet6 ||= eval { require Socket ; Socket::AF_INET6 () }; 50$af_inet6 ||= eval { Socket::AF_INET6 () };
44$af_ine6t ||= eval { require Socket6; Socket6::AF_INET6() }; 51$af_inet6 ||= eval { require Socket6; Socket6::AF_INET6() };
45 52
46# uhoh 53# uhoh
47$af_inet6 ||= 10 if $^O =~ /linux/; 54$af_inet6 ||= 10 if $^O =~ /linux/;
48$af_inet6 ||= 23 if $^O =~ /cygwin/i; 55$af_inet6 ||= 23 if $^O =~ /cygwin/i;
49$af_inet6 ||= 23 if AnyEvent::WIN32; 56$af_inet6 ||= 23 if AnyEvent::WIN32;
60#i SO_REUSEADDR => Socket::SO_REUSEADDR (); 67#i SO_REUSEADDR => Socket::SO_REUSEADDR ();
61#i SO_KEEPALIVE => Socket::SO_KEEPALIVE (); 68#i SO_KEEPALIVE => Socket::SO_KEEPALIVE ();
62#i SO_OOBINLINE => Socket::SO_OOBINLINE (); 69#i SO_OOBINLINE => Socket::SO_OOBINLINE ();
63#i IPPROTO_TCP => Socket::IPPROTO_TCP (); 70#i IPPROTO_TCP => Socket::IPPROTO_TCP ();
64 71
72# more hardcoded os-specific constants - none
73# of these are available via any known module, but we
74# are forward-looking and try Socket:: anyways.
75my %const;
76
77while (<DATA>) {
78 my ($os, $name, $default) = split /\s+/;
79
80 $const{$name} ||= undef; # make sure it exists
81
82 next unless $os eq $^O;
83
84 my $value = eval "Socket::$name ()";
85 $value = eval $default unless defined $value;
86
87 $const{$name} = $value;
88}
89
90for my $k (sort keys %const) {
91 n $k, $const{$k};
92}
93
65print "1;\n"; 94print "1;\n";
66 95
67close $fh; 96close $fh;
68select $oldstdout; 97select $oldstdout;
69 98
70rename "$ARGV[0]~", $ARGV[0]; 991
71 100
721 101__DATA__
102linux TCP_MAXSEG 2
103linux TCP_CORK 3
104linux TCP_KEEPIDLE 4
105linux TCP_KEEPINTVL 5
106linux TCP_KEEPCNT 6
107linux TCP_SYNCNT 7
108linux TCP_LINGER2 8
109linux TCP_DEFER_ACCEPT 9
110linux TCP_WINDOW_CLAMP 10
111linux TCP_INFO 11
112linux TCP_QUICKACK 12
113linux TCP_CONGESTION 13
114linux TCP_MD5SIG 14
115netbsd TCP_MAXSEG 2
116netbsd TCP_KEEPIDLE 3
117netbsd TCP_NOPUSH 4
118netbsd TCP_KEEPINTVL 5
119netbsd TCP_KEEPCNT 6
120netbsd TCP_KEEPINIT 7
121netbsd TCP_NOOPT 8
122netbsd TCP_MD5SIG 0x10
123netbsd TCP_CONGESTION 0x20
124cygwin TCP_MAXSEG 0x02
125cygwin TCP_NOPUSH 0x04
126cygwin TCP_NOOPT 0x08
127freebsd TCP_MAXSEG 0x02
128freebsd TCP_NOPUSH 0x04
129freebsd TCP_NOOPT 0x08
130freebsd TCP_MD5SIG 0x10
131freebsd TCP_INFO 0x20
132freebsd TCP_CONGESTION 0x40
133solaris TCP_CORK 0x18
134solaris TCP_LINGER2 0x1C
135solaris TCP_INIT_CWND 0x15
136solaris TCP_KEEPALIVE 0x8
137solaris TCP_MAXSEG 0x02
138openbsd TCP_MAXSEG 0x02
139openbsd TCP_MD5SIG 0x04
140openbsd TCP_SACK_ENABLE 0x08
141darwin TCP_MAXSEG 0x02
142darwin TCP_NOPUSH 0x04
143darwin TCP_NOOPT 0x08
144darwin TCP_KEEPALIVE 0x10
145darwin TCP_CONNECTIONTIMEOUT 0x20

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines