summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/Socket/Socket.pm11
-rw-r--r--ext/Socket/Socket.xs38
2 files changed, 47 insertions, 2 deletions
diff --git a/ext/Socket/Socket.pm b/ext/Socket/Socket.pm
index 1654b164bb..a0bb95d6e4 100644
--- a/ext/Socket/Socket.pm
+++ b/ext/Socket/Socket.pm
@@ -1,7 +1,7 @@
package Socket;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
-$VERSION = "1.7";
+$VERSION = "1.71";
=head1 NAME
@@ -272,7 +272,14 @@ require DynaLoader;
UIO_MAXIOV
);
-@EXPORT_OK = qw(CR LF CRLF $CR $LF $CRLF);
+@EXPORT_OK = qw(CR LF CRLF $CR $LF $CRLF
+
+ IPPROTO_TCP
+ TCP_KEEPALIVE
+ TCP_MAXRT
+ TCP_MAXSEG
+ TCP_NODELAY
+ TCP_STDURG);
%EXPORT_TAGS = (
crlf => [qw(CR LF CRLF $CR $LF $CRLF)],
diff --git a/ext/Socket/Socket.xs b/ext/Socket/Socket.xs
index 4a8d8765c9..51825871b7 100644
--- a/ext/Socket/Socket.xs
+++ b/ext/Socket/Socket.xs
@@ -26,6 +26,8 @@
#include "sockadapt.h"
#endif
+#include <netinet/tcp.h>
+
#ifdef I_SYSUIO
# include <sys/uio.h>
#endif
@@ -332,6 +334,12 @@ constant(char *name, int arg)
#else
goto not_there;
#endif
+ if (strEQ(name, "IPPROTO_TCP"))
+#ifdef IPPROTO_TCP
+ return IPPROTO_TCP;
+#else
+ goto not_there;
+#endif
break;
case 'J':
break;
@@ -804,6 +812,36 @@ constant(char *name, int arg)
#endif
break;
case 'T':
+ if (strEQ(name, "TCP_KEEPALIVE"))
+#ifdef TCP_KEEPALIVE
+ return TCP_KEEPALIVE;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "TCP_MAXRT"))
+#ifdef TCP_MAXRT
+ return TCP_MAXRT;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "TCP_MAXSEG"))
+#ifdef TCP_MAXSEG
+ return TCP_MAXSEG;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "TCP_NODELAY"))
+#ifdef TCP_NODELAY
+ return TCP_NODELAY;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "TCP_STDURG"))
+#ifdef TCP_STDURG
+ return TCP_STDURG;
+#else
+ goto not_there;
+#endif
break;
case 'U':
if (strEQ(name, "UIO_MAXIOV"))