Add IP_OPTIONS and the multicast-related setsockopts to the

list of IP setsockopts the Linux emulator recognizes.

Explicitly disallow IP_HDRINCL since Linux's handling of
raw output is different than BSD's.

Closes PR#kern/2111.

Submitted by:	y-nakaga@ccs.mt.nec.co.jp (Yoshihisa NAKAGAWA)
This commit is contained in:
Bill Fenner 1996-12-03 02:52:29 +00:00
parent 4c69e7b9d5
commit 66ff6a3c1b
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=20101
4 changed files with 46 additions and 4 deletions

View file

@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: linux.h,v 1.10 1996/10/25 16:20:22 bde Exp $
* $Id: linux.h,v 1.11 1996/11/05 02:04:37 smpatel Exp $
*/
#ifndef _I386_LINUX_LINUX_H_
@ -465,6 +465,14 @@ struct trapframe;
#define LINUX_IP_TOS 1
#define LINUX_IP_TTL 2
#define LINUX_IP_HDRINCL 3
#define LINUX_IP_OPTIONS 4
#define LINUX_IP_MULTICAST_IF 32
#define LINUX_IP_MULTICAST_TTL 33
#define LINUX_IP_MULTICAST_LOOP 34
#define LINUX_IP_ADD_MEMBERSHIP 35
#define LINUX_IP_DROP_MEMBERSHIP 36
/* Sound system defines */
#define LINUX_SNDCTL_DSP_RESET 0x5000

View file

@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: linux_socket.c,v 1.3 1995/12/15 03:06:57 peter Exp $
* $Id: linux_socket.c,v 1.4 1996/03/02 19:37:59 peter Exp $
*/
/* XXX we use functions that might not exist. */
@ -82,6 +82,19 @@ static int linux_to_bsd_ip_sockopt(int opt)
return IP_TOS;
case LINUX_IP_TTL:
return IP_TTL;
case LINUX_IP_OPTIONS:
return IP_OPTIONS;
case LINUX_IP_MULTICAST_IF:
return IP_MULTICAST_IF;
case LINUX_IP_MULTICAST_TTL:
return IP_MULTICAST_TTL;
case LINUX_IP_MULTICAST_LOOP:
return IP_MULTICAST_LOOP;
case LINUX_IP_ADD_MEMBERSHIP:
return IP_ADD_MEMBERSHIP;
case LINUX_IP_DROP_MEMBERSHIP:
return IP_DROP_MEMBERSHIP;
case LINUX_IP_HDRINCL:
default:
return -1;
}

View file

@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: linux.h,v 1.10 1996/10/25 16:20:22 bde Exp $
* $Id: linux.h,v 1.11 1996/11/05 02:04:37 smpatel Exp $
*/
#ifndef _I386_LINUX_LINUX_H_
@ -465,6 +465,14 @@ struct trapframe;
#define LINUX_IP_TOS 1
#define LINUX_IP_TTL 2
#define LINUX_IP_HDRINCL 3
#define LINUX_IP_OPTIONS 4
#define LINUX_IP_MULTICAST_IF 32
#define LINUX_IP_MULTICAST_TTL 33
#define LINUX_IP_MULTICAST_LOOP 34
#define LINUX_IP_ADD_MEMBERSHIP 35
#define LINUX_IP_DROP_MEMBERSHIP 36
/* Sound system defines */
#define LINUX_SNDCTL_DSP_RESET 0x5000

View file

@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: linux_socket.c,v 1.3 1995/12/15 03:06:57 peter Exp $
* $Id: linux_socket.c,v 1.4 1996/03/02 19:37:59 peter Exp $
*/
/* XXX we use functions that might not exist. */
@ -82,6 +82,19 @@ static int linux_to_bsd_ip_sockopt(int opt)
return IP_TOS;
case LINUX_IP_TTL:
return IP_TTL;
case LINUX_IP_OPTIONS:
return IP_OPTIONS;
case LINUX_IP_MULTICAST_IF:
return IP_MULTICAST_IF;
case LINUX_IP_MULTICAST_TTL:
return IP_MULTICAST_TTL;
case LINUX_IP_MULTICAST_LOOP:
return IP_MULTICAST_LOOP;
case LINUX_IP_ADD_MEMBERSHIP:
return IP_ADD_MEMBERSHIP;
case LINUX_IP_DROP_MEMBERSHIP:
return IP_DROP_MEMBERSHIP;
case LINUX_IP_HDRINCL:
default:
return -1;
}