Forum: Ruby-core [ruby-trunk - Bug #7476][Open] missing "IP_TRANSPARENT" constant for IP sockets.

Posted by elico (Eliezer Croitoru) (Guest)
on 2012-11-30 07:25
(Received via mailing list)
Issue #7476 has been reported by elico (Eliezer Croitoru).

----------------------------------------
Bug #7476: missing "IP_TRANSPARENT" constant for IP sockets.
https://bugs.ruby-lang.org/issues/7476

Author: elico (Eliezer Croitoru)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: 1.9.3


There is a missing constant for IP_TRANSPARENT on linux.
to set the TPROXY on a socket I use:
s.setsockopt(Socket::SOL_IP, 19, 1)
The 19 suppose to be as a constant named: IP_TRANSPARENT or 
Socket::IP_TRANSPARENT.
Posted by ko1 (Koichi Sasada) (Guest)
on 2013-02-24 13:26
(Received via mailing list)
Issue #7476 has been updated by ko1 (Koichi Sasada).

Target version changed from 2.0.0 to 2.1.0

ping -> akr
----------------------------------------
Feature #7476: missing "IP_TRANSPARENT" constant for IP sockets.
https://bugs.ruby-lang.org/issues/7476#change-36913

Author: elico (Eliezer Croitoru)
Status: Assigned
Priority: Normal
Assignee: akr (Akira Tanaka)
Category: ext
Target version: 2.1.0


There is a missing constant for IP_TRANSPARENT on linux.
to set the TPROXY on a socket I use:
s.setsockopt(Socket::SOL_IP, 19, 1)
The 19 suppose to be as a constant named: IP_TRANSPARENT or 
Socket::IP_TRANSPARENT.
Posted by Tanaka Akira (Guest)
on 2013-04-02 08:29
(Received via mailing list)
2013/2/24 ko1 (Koichi Sasada) <redmine@ruby-lang.org>:

> Feature #7476: missing "IP_TRANSPARENT" constant for IP sockets.
> https://bugs.ruby-lang.org/issues/7476#change-36913

> There is a missing constant for IP_TRANSPARENT on linux.
> to set the TPROXY on a socket I use:
> s.setsockopt(Socket::SOL_IP, 19, 1)
> The 19 suppose to be as a constant named: IP_TRANSPARENT or 
Socket::IP_TRANSPARENT.

This is Linux-specific and only defined in linux headers
such as /usr/include/linux/in.h.

I'm not sure applications can safely use such headers.
Posted by Eric Wong (Guest)
on 2013-04-03 19:34
(Received via mailing list)
Tanaka Akira <akr@fsij.org> wrote:
> This is Linux-specific and only defined in linux headers
> such as /usr/include/linux/in.h.
>
> I'm not sure applications can safely use such headers.

We already have Linux-specific constants (e.g. TCP_CORK) and
*BSD-specific constants (e.g. TCP_NOPUSH), so I don't think we should
make it hard for users to take advantage of non-portable features on
their favorite OS.

I vote for adding IP_TRANSPARENT (and any other OS-specific constants
users request).
Posted by Tanaka Akira (Guest)
on 2013-04-03 20:16
(Received via mailing list)
2013/4/3 Eric Wong <normalperson@yhbt.net>:

>> This is Linux-specific and only defined in linux headers
>> such as /usr/include/linux/in.h.
>>
>> I'm not sure applications can safely use such headers.
>
> We already have Linux-specific constants (e.g. TCP_CORK) and
> *BSD-specific constants (e.g. TCP_NOPUSH), so I don't think we should
> make it hard for users to take advantage of non-portable features on
> their favorite OS.

It is not my concern.
TCP_CORK is defined in /usr/include/netinet/tcp.h which is a glibc 
header.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.