[#72642] Advantages of Symbols over constants — Marek Janukowicz <childNOSPAM@...17.ds.pwr.wroc.pl>

11 messages 2003/06/01

[#72732] case of sub! not working — Ian Macdonald <ian@...>

Hi,

27 messages 2003/06/03
[#72734] Re: case of sub! not working — Joel VanderWerf <vjoel@...> 2003/06/03

Ian Macdonald wrote:

[#72744] Re: case of sub! not working — Ian Macdonald <ian@...> 2003/06/03

On Tue 03 Jun 2003 at 10:21:43 +0900, Joel VanderWerf wrote:

[#72769] Re: case of sub! not working — Michael Campbell <michael_s_campbell@...> 2003/06/03

[#72907] Syck 0.35 + YAML.rb 0.60 -- the 1st stable release — why the lucky stiff <ruby-talk@...>

Pleased to announce:

18 messages 2003/06/05
[#75182] Re: Syck 0.35 + YAML.rb 0.60 -- the 1st stable release — Richard Zidlicky <rz@...68k.org> 2003/07/04

On Fri, Jun 06, 2003 at 06:15:58AM +0900, why the lucky stiff wrote:

[#72908] Problem with "require" stmt in "test-first " tutorial — RLMuller@... (Richard)

Hi All,

27 messages 2003/06/05

[#72940] VAPOR 0.06, Transparent Persistence to PostgreSQL — "Oliver M. Bolzer" <oliver@...>

Hi!

22 messages 2003/06/06

[#72975] join block — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

29 messages 2003/06/06

[#72986] multiple blocks or proc arguments to method — itsme213@... (you CAN teach an old dog ...)

I was trying to write a collect_if method:

11 messages 2003/06/07

[#73081] requiring standard libs with save level 1 — Eugene Scripnik <Eugene.Scripnik@...>

I've set up new version of Ruby from CVS and my programs failed to work.

13 messages 2003/06/09
[#73114] Re: requiring standard libs with save level 1 — matz@... (Yukihiro Matsumoto) 2003/06/09

Hi,

[#73134] tcltklib does not get compiled. — John Fletcher <J.P.Fletcher@...>

I have installed ruby 1.6.7 on two computers using Red Hat 8.0 Linux.

14 messages 2003/06/10

[#73148] OT: Regexp question — Dominik Werder <dwerder@...>

Hi all,

25 messages 2003/06/10

[#73215] Rubyx (provisionally named) linux distro. Made by and run by Ruby — Andrew Walrond <andrew@...>

I have developed a little script which creates a simple linux distro

38 messages 2003/06/11

[#73260] Multiple Initialize methods? — "Nick" <nick.robinson@...>

Hi,

21 messages 2003/06/11

[#73283] Ruby advantages over Perl — Marek Janukowicz <childNOSPAM@...17.ds.pwr.wroc.pl>

68 messages 2003/06/11
[#73374] Re: Ruby advantages over Perl — Jason Creighton <androflux@...> 2003/06/12

On Thu, 12 Jun 2003 17:56:02 +0900

[#73356] does each work on a copy? — Rasputin <rasputin@...>

17 messages 2003/06/12

[#73372] Reason for implicit block syntax ? — itsme213@... (you CAN teach an old dog ...)

What is the reason for the implicit block in Ruby invocations?

13 messages 2003/06/12

[#73463] Hispeed String concat — Dominik Werder <dwerder@...>

What is the fastest way to add many small Strings to a big buffer?

17 messages 2003/06/13

[#73503] RaaInstallInRuby petition — ptkwt@...1.aracnet.com (Phil Tomson)

18 messages 2003/06/13

[#73555] I need a code beautifier or formatter — joaopedrosa@... (Joao Pedrosa)

Hello,

13 messages 2003/06/14

[#73600] Get songtitle from Winamp — calvin8@... (Andi Scharfstein)

Hi,

26 messages 2003/06/15
[#73601] Re: Get songtitle from Winamp — Daniel Carrera <dcarrera@...> 2003/06/15

-----BEGIN PGP SIGNED MESSAGE-----

[#73602] Re: Get songtitle from Winamp — Chad Fowler <chadfowler@...> 2003/06/15

It's a Win32API convention meaning "Window Handle".

[#73603] Re: Get songtitle from Winamp — Daniel Carrera <dcarrera@...> 2003/06/15

-----BEGIN PGP SIGNED MESSAGE-----

[#73605] Re: Get songtitle from Winamp — Wesley J Landaker <wjl@...> 2003/06/15

On Sunday 15 June 2003 9:34 am, Daniel Carrera wrote:

[#73609] Re: Get songtitle from Winamp — Daniel Carrera <dcarrera@...> 2003/06/15

-----BEGIN PGP SIGNED MESSAGE-----

[#73640] Standardizing Installers — Tom Clarke <tom@...2i.com>

I was thinking about some of the issues raised involving ruby libraries

16 messages 2003/06/16

[#73663] /BEGIN/ .. /END/ file reading — Wild Karl-Heinz <kh.wild@...>

hello

15 messages 2003/06/16
[#73674] Re: /BEGIN/ .. /END/ file reading — "Robert Klemme" <bob.news@...> 2003/06/16

[#73677] Re: /BEGIN/ .. /END/ file reading — Michael Campbell <michael_s_campbell@...> 2003/06/16

> A range operator with a regexp works like a flip flop (bistable

[#73680] Multiline comments? — "Christoph Tapler" <christoph.tapler@...>

I'm new to Ruby and I'm wondering that there is no possibility to write

38 messages 2003/06/16

[#73781] editor / ide recommentation on Windows — itsme213@... (you CAN teach an old dog ...)

What editor / ide would you recommend for serious Ruby work on

20 messages 2003/06/17

[#73787] Array#push(empty array expanded) => no exception — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

This strange behavier really surprised me..

13 messages 2003/06/17

[#73821] European Ruby Conference — "Hal E. Fulton" <hal9000@...>

I don't think I've mentioned this before, but I

15 messages 2003/06/17

[#73924] Re: TCP/IP protocol and Net::HTTP — "J.Hawkesworth" <J.Hawkesworth@...>

Works for me too.

13 messages 2003/06/19
[#73931] Re: TCP/IP protocol and Net::HTTP — Nigel Gilbert <n.gilbert@...> 2003/06/19

I am beginning to wonder if this problem arises from the MacOS X

[#73943] collect info about ruby-api — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

I have long been longing for a good description of ruby C api.

35 messages 2003/06/19

[#74039] WxRuby status? — ptkwt@...1.aracnet.com (Phil Tomson)

14 messages 2003/06/20
[#74507] Re: WxRuby status? — Richard Kilmer <rich@...> 2003/06/26

Things are progressing great. Kevin Smith has taken the development

[#74070] How to test if a file exists? — Daniel Carrera <dcarrera@...>

-----BEGIN PGP SIGNED MESSAGE-----

12 messages 2003/06/21

[#74096] Exasperated with ruby/tk - anybody successfully using it? — "Richard Browne" <richb@...>

General question: Is ruby/tk still being maintained in 1.7/1.8 or is it

10 messages 2003/06/22

[#74104] String#decorate — martindemello@... (Martin DeMello)

When chaining methods, it'd be neat to have something that was passed

17 messages 2003/06/22

[#74156] Marshal bug? — Anders Borch <spam@...>

Hi!

15 messages 2003/06/23
[#74161] Re: Marshal bug? — Dave Thomas <dave@...> 2003/06/23

Anders Borch wrote:

[#74205] can't find appropriate regexp — "Patrick Zesar" <jonnypichler@...>

spamassassin blocked my previous post :-((((

17 messages 2003/06/23

[#74279] Ruby Developer's Guide - hurt book sale — dennis@... (Dennis Sutch)

Syngress Publishing is having a hurt book sale. Per Syngress

11 messages 2003/06/24

[#74379] protect parents from children — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

I fell into these pitfalls yesterday.. that a child was modifying a parent!

27 messages 2003/06/25

[#74413] Ruby/Java integration through JNI: working implementation — Mauricio Fern疣dez <batsman.geo@...>

14 messages 2003/06/25
[#74436] Re: Ruby/Java integration through JNI: working implementation — D T <tran55555@...> 2003/06/25

Yet An other JRuby ?? :-)

[#74465] DBD for Oracle9i — Jim Cain <list@...>

Hi all. I was looking for a Ruby interface to 9i that would handle all

25 messages 2003/06/25

[#74478] RPM for 1.8.0 — John Carter <john.carter@...>

I would like to get / build a Mandrake 9.1 RPM for Ruby-1.8.0 Preview 3

17 messages 2003/06/26

[#74506] String#split(' ') and whitespace (perl user's surprise) — mike@... (Mike Stok)

I have to confess that I use a lot of Perl, and some of its idioms are

15 messages 2003/06/26

[#74573] Using & for arrays of objects — "Krishna Dole" <kpdole@...>

Hi,

39 messages 2003/06/27

[#74579] why can't I use $3somevar for global variable in ruby 1.8.0? — Donglai Gong <donglai@...>

Hi, I'm new to Ruby programming and I just upgraded from 1.6.8 to 1.8.0

10 messages 2003/06/27

[#74702] Slides from my talk are up on rubyhacker.com — "Hal E. Fulton" <hal9000@...>

I was pleased to attend the European Ruby Conference

25 messages 2003/06/29

[#74706] Help with UnboundMethod#bind error — gabriele renzi <surrender_it@...1.vip.lng.yahoo.com>

Hi gurus and nubys,

16 messages 2003/06/29
[#74708] Re: Help with UnboundMethod#bind error — nobu.nokada@... 2003/06/29

Hi,

[#74732] Re: Help with UnboundMethod#bind error — matz@... (Yukihiro Matsumoto) 2003/06/30

Hi,

[#74919] Re: Help with UnboundMethod#bind error — "Pit Capitain" <pit@...> 2003/07/02

On 30 Jun 2003 at 17:18, Yukihiro Matsumoto wrote:

[#74717] Re: Message catalogs (I18N) overnight hack... — "Hal E. Fulton" <hal9000@...>

----- Original Message -----

17 messages 2003/06/29

[#74747] Editor like Textpad on Linux? — Dominik Werder <dwerder@...>

Hello,

13 messages 2003/06/30

[#74768] dynamic object creation — Aryeh Friedman <aryeh@...>

If I have something like this:

15 messages 2003/06/30

Re: ruby-1.8.0 (cvs) build failed on HP-UX 11.11

From: Wai-Sun Chia <waisun.chia@...>
Date: 2003-06-04 10:05:51 UTC
List: ruby-talk #72828
Here you go..


Yukihiro Matsumoto wrote:
> Hello,
> 
> In message "Re: ruby-1.8.0 (cvs) build failed on HP-UX 11.11"
>     on 03/06/04, Wai-Sun Chia <waisun.chia@hp.com> writes:
> 
> |> Could you show us ext/socket/mkmf.log ?
> 
> In addition, show us lines from 484 to 490 of
> </usr/include/sys/socket.h>?
> 
> 							matz.
> 

-- 
           a8888b.
          d888888b.
          8P"YP"Y88       Wai-Sun "Squidster" Chia
          8|o||o|88       Sr. Technical Consultant (RHCE)
          8'    .88       OpenSource Development
          8`._.' Y8.      Consulting & Integration
         d/      `8b.     HP Services Malaysia
        dP   .    Y8b.
       d8:'  "  `::88b
      d8"         'Y88b
     :8P    '      :888
      8a.   :     _a88P
    ._/"Yaa_:   .| 88P|
    \    YP"    `| 8P  `.
    /     \.___.d|    .'
    `--..__)8888P`._.'

    "Fear the Penguins!"



					
					
					

Attachments (1)

socket.h (19 KB, text/x-c++hdr)
/* @(#) socket.h $Date: 2001/04/16 11:56:07 $Revision: r11.11/2 PATCH_11.11 (PHNE_23645) */
/*
 * BEGIN_DESC
 * 
 *  File:     socket.h                       Date: 12/2/1998
 *  @(#)
 * 
 *  Purpose:
 *	Definitions related to sockets: types, address families, options.
 * 
 *  Classification:			Release to Release Consistency Req:
 *		<<please select one of the following:>>
 * 	kernel subsystem private		none
 * 	kernel private				none
 * 	kernel 3rd party private		limited source
 * 	public					binary & source
 * 
 *  BE header:  yes
 *
 *  Shipped:  yes
 *	/usr/include/sys/socket.h
 *	/usr/conf/sys/socket.h
 *
 *  <<please delete the following note if this is a "public" header>>
 *  NOTE:
 *	This header file contains information specific to the internals
 *	of the HP-UX implementation.  The contents of this header file
 *	are subject to change without notice.  Such changes may affect
 *	source code, object code, or binary compatibility between
 *	releases of HP-UX.  Code which uses the symbols contained within
 *	this header file is inherently non-portable (even between HP-UX
 *	implementations).
 * 
 * END_DESC  
*/


#ifndef _SYS_SOCKET_INCLUDED    /* allow multiple includes of this file */
#define _SYS_SOCKET_INCLUDED    /* without causing compilation errors */

/*
 * Copyright (c) 1982, 1985, 1986 Regents of the University of California.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms are permitted
 * provided that the above copyright notice and this paragraph are
 * duplicated in all such forms and that any documentation,
 * advertising materials, and other materials related to such
 * distribution and use acknowledge that the software was developed
 * by the University of California, Berkeley.  The name of the
 * University may not be used to endorse or promote products derived
 * from this software without specific prior written permission.
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 *
 *	socket.h	7.3 (Berkeley) 6/27/88
 */

#include <sys/stdsyms.h>

#ifdef _INCLUDE_XOPEN_SOURCE_EXTENDED

#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/uio.h>

/*
 * Types
 */

#ifndef _CADDR_T
#  define _CADDR_T
   typedef char *caddr_t;
#endif /* _CADDR_T */

#ifndef	_SA_FAMILY_T
#define	_SA_FAMILY_T
typedef unsigned short	sa_family_t;
#endif /* ! _SA_FAMILY_T */

/*
 * Types of sockets
 */
#define	SOCK_STREAM	1		/* stream socket */
#define	SOCK_DGRAM	2		/* datagram socket */
#define	SOCK_RAW	3		/* raw-protocol interface */
#define	SOCK_RDM	4		/* reliably-delivered message */
#define	SOCK_SEQPACKET	5		/* sequenced packet stream */

/*
 * Option flags per-socket.
 */
#define	SO_DEBUG	0x0001		/* turn on debugging info recording */
#define	SO_ACCEPTCONN	0x0002		/* socket has had listen() */
#define	SO_REUSEADDR	0x0004		/* allow local address reuse */
#define	SO_KEEPALIVE	0x0008		/* keep connections alive */
#define	SO_DONTROUTE	0x0010		/* just use interface addresses */
#define	SO_BROADCAST	0x0020		/* permit sending of broadcast msgs */
#define	SO_USELOOPBACK	0x0040		/* bypass hardware when possible */
#define	SO_LINGER	0x0080		/* linger on close if data present */
#define	SO_OOBINLINE	0x0100		/* leave received OOB data in line */
#define SO_REUSEPORT 	0x0200          /* allow local address & port reuse */
#define SO_GETIFADDR	0x0400		/* HP: save the loc IP addr for inb UDP packets */
#define SO_PMTU         0x0800          /* HP: advise to use PMTU discovery */
#define SO_INPCB_COPY   0x1000          /* HP: local copy of inpcb          */

/*
 * Additional options, not kept in so_options.
 */
#define SO_SNDBUF	0x1001		/* send buffer size */
#define SO_RCVBUF	0x1002		/* receive buffer size */
#define SO_SNDLOWAT	0x1003		/* send low-water mark */
#define SO_RCVLOWAT	0x1004		/* receive low-water mark */
#define SO_SNDTIMEO	0x1005		/* send timeout */
#define SO_RCVTIMEO	0x1006		/* receive timeout */
#define	SO_ERROR	0x1007		/* get error status and clear */
#define	SO_TYPE		0x1008		/* get socket type */
#define	SO_SND_COPYAVOID	0x1009		/* avoid copy on send*/
#define	SO_RCV_COPYAVOID	0x100a		/* avoid copy on rcv */
#define	SO_PROTOTYPE	0x100b		/* assign protocol for RAW sockets */
#define SO_DISTRIBUTE   0x100c          /* distribute UDP datagrams to     */
					/* multiple streams - internal use */
					/* only                            */


#define SO_GET  1       /* Get socket option for Streams TCP/IP */
#define SO_SET  2       /* Set socket option for Streams TCP/IP */

/*
 * Structure used for manipulating linger option.
 *
 * if l_onoff == 0:
 *    close(2) returns immediately; any buffered data is sent later
 *    (default)
 * 
 * if l_onoff != 0:
 *    if l_linger == 0, close(2) returns after discarding any unsent data
 *    if l_linger != 0, close(2) does not return until buffered data is sent
 */

struct	linger {
	int	l_onoff;		/* 0 = do not wait to send data */
					/* non-0 = see l_linger         */
	int	l_linger;		/* 0 = discard unsent data      */
					/* non-0 = wait to send data    */
};

/*
 * Level number for (get/set)sockopt() to apply to socket itself.
 */
#define	SOL_SOCKET	0xffff		/* options for socket level */

/*
 * Address families.
 */
#define	AF_UNSPEC	0		/* unspecified */
#define	AF_UNIX		1		/* local to host (pipes, portals) */
#define	AF_INET		2		/* internetwork: UDP, TCP, etc. */
#define	AF_IMPLINK	3		/* arpanet imp addresses */
#define	AF_PUP		4		/* pup protocols: e.g. BSP */
#define	AF_CHAOS	5		/* mit CHAOS protocols */
#define	AF_NS		6		/* XEROX NS protocols */
#define	AF_NBS		7		/* nbs protocols */
#define	AF_ECMA		8		/* european computer manufacturers */
#define	AF_DATAKIT	9		/* datakit protocols */
#define	AF_CCITT	10		/* CCITT protocols, X.25 etc */
#define	AF_SNA		11		/* IBM SNA */
#define AF_DECnet	12		/* DECnet */
#define AF_DLI		13		/* Direct data link interface */
#define AF_LAT		14		/* LAT */
#define	AF_HYLINK	15		/* NSC Hyperchannel */
#define	AF_APPLETALK	16		/* Apple Talk */
#define AF_OTS		17		/* Used for OSI in the ifnets */
#define	AF_NIT		18		/* NIT */
#define AF_VME_LINK	19		/* VME backplane protocols */
#define AF_KEY          20              /* IPSec PF_KEY protocol */
#define AF_POLICY       21              /* IPSec PF_POLICY protocol */
#define AF_INET6        22              /* IPv6 protocol */
#define	AF_MAX		23

/* Valid values for the "how" argument in the shutdown() function.
 */
#define SHUT_RD		0		/* Disables further receive operations*/
#define SHUT_WR		1		/* Disables further send operations   */
#define SHUT_RDWR	2		/* Disables further send and receive
					 * operations
					 */
/*
 * Unix98 type used for certain objects in X/Open sockets APIs
 * whose size will not grow with the architecture, for example
 * socket address length.
 *
 * We choose a definition that is consistent with the Unix95
 * profile.  However, in future implementations, we may choose
 * to limit the size to 32 bits in both 32-bit and 64-bit data
 * models.
 */
typedef size_t socklen_t;


#ifndef	_XOPEN_SOURCE_EXTENDED 
/* 
 * Valid values for the "flags" argument in sendfile()/sendpath().
 */
#define SF_DISCONNECT	1	/* Disables further sends and receives */
#endif /* !_XOPEN_SOURCE_EXTENDED */

#if defined(_XOPEN_SOURCE_EXTENDED) && !defined(_KERNEL)
/*
 * Structure used by kernel to store most
 * addresses (CASPEC/1170). 
 */

struct sockaddr {
	sa_family_t	sa_family;      /* address family */
	char           	sa_data[14];	/* up to 14 bytes of direct address */
};

#else
/*
 * Structure used by kernel to store most
 * addresses. 
 */
struct sockaddr {
	unsigned short sa_family;	/* address family */
	char           sa_data[14];	/* up to 14 bytes of direct address */
};

#endif /* _XOPEN_SOURCE_EXTENDED */

#if defined(_HPUX_SOURCE) || defined(_INCLUDE_XOPEN_SOURCE_520)
struct sockaddr_ext {
        sa_family_t     sa_family;      /* address family */
        char            sa_data[26];    /* up to 26 bytes of direct address */
};

/* sockaddr_storage: 
 *  - It is large enough to accomodate sockaddr_in and sockaddr_in6 and
 *    possibly other protocol specific socket addresses.  
 *  - The sockaddr_storage structure will align on a 64 bit boundary on
 *    HP-UX as the "_ss_align" field is defined as "double" which is 
 *    8 byte (64 bit) on ILP32 and LP64. 
 *  - "uint64_t" is not a valid type for strict ANSI C compilation for ILP32.
 *  - If "double" ever becomes larger than 64 bit in the future, these
 *    defines need to be updated.
 */

#define _SS_MAXSIZE 	256	/* Implementation specific max size */

#define _SS_ALIGNSIZE	(sizeof(double))  /* force the structure up to 64bit 
                                             aligned */

/*
 * Definitions used for sockaddr_storage structure paddings design.
 */

#define _SS_PAD1SIZE    (_SS_ALIGNSIZE - sizeof (sa_family_t))


#define _SS_PAD2SIZE    (_SS_MAXSIZE - (sizeof (sa_family_t) + _SS_PAD1SIZE + \
                          _SS_ALIGNSIZE))


struct sockaddr_storage {
	sa_family_t   ss_family;		/* address family */
        /* Following fields are implementation specific */
	char          _ss_pad1[_SS_PAD1SIZE];    /* 6 bytes of padding */
	double	      _ss_align;    /* field to force desired 64bit structure */
        char          _ss_pad2[_SS_PAD2SIZE];	 
};

#endif /* HP_UX SOURCE || INCLUDE_XOPEN_SOURCE_520  */

#ifndef	_XOPEN_SOURCE_EXTENDED 
/*
 * Structure used by kernel to pass protocol
 * information in raw sockets.
 */
struct sockproto {
	unsigned short	sp_family;	/* address family */
	unsigned short	sp_protocol;	/* protocol */
};
#endif /* !_XOPEN_SOURCE_EXTENDED */

/*
 * Protocol families, same as address families for now.
 */
#define	PF_UNSPEC	AF_UNSPEC
#define	PF_UNIX		AF_UNIX
#define	PF_INET		AF_INET
#define	PF_IMPLINK	AF_IMPLINK
#define	PF_PUP		AF_PUP
#define	PF_CHAOS	AF_CHAOS
#define	PF_NS		AF_NS
#define	PF_NBS		AF_NBS
#define	PF_ECMA		AF_ECMA
#define	PF_DATAKIT	AF_DATAKIT
#define	PF_CCITT	AF_CCITT
#define	PF_SNA		AF_SNA
#define PF_DECnet	AF_DECnet
#define PF_DLI		AF_DLI
#define PF_LAT		AF_LAT
#define	PF_HYLINK	AF_HYLINK
#define	PF_APPLETALK	AF_APPLETALK
#define PF_OTS		AF_OTS
#define PF_NIT		AF_NIT
#define PF_VME_LINK	AF_VME_LINK
#define PF_KEY          AF_KEY
#define PF_POLICY       AF_POLICY
#define PF_INET6        AF_INET6

#define	PF_MAX		AF_MAX

/*
 * Maximum queue length specifiable by listen.
 */
#define	SOMAXCONN	4096

#if defined(_XOPEN_SOURCE_EXTENDED) && !defined(_KERNEL)
/*
 * Message header for recvmsg and sendmsg calls.
 * Used value-result for recvmsg, value only for sendmsg.
 */
struct msghdr {
	void	*msg_name;		/* optional address */
	socklen_t msg_namelen;		/* size of address */
	struct	iovec *msg_iov;		/* scatter/gather array */
	int	msg_iovlen;		/* # elements in msg_iov */
	void	*msg_control;		/* ancillary data, see below */
	socklen_t msg_controllen;	/* ancillary data buffer len */
	int	msg_flags;		/* flags on received message */
};
#else
/*
 * Message header for recvmsg and sendmsg calls.
 */
struct msghdr {
	caddr_t	msg_name;		/* optional address */
	int	msg_namelen;		/* size of address */
	struct	iovec *msg_iov;		/* scatter/gather array */
	int	msg_iovlen;		/* # elements in msg_iov */
	caddr_t	msg_accrights;		/* access rights sent/received */
	int	msg_accrightslen;
};

/*
 * Message header for recvmsg and sendmsg calls.
 * Used value-result for recvmsg, value only for sendmsg.
 */
struct msghdr2 {
	caddr_t	msg_name;		/* optional address */
	socklen_t msg_namelen;		/* size of address */
	struct	iovec *msg_iov;		/* scatter/gather array */
	u_int	msg_iovlen;		/* # elements in msg_iov */
	caddr_t	msg_control;		/* ancillary data, see below */
	socklen_t msg_controllen;	/* ancillary data buffer_ len */
	int	msg_flags;		/* flags on received message */
};
#endif /* _XOPEN_SOURCE_EXTENDED */

#define	MSG_OOB		0x1		/* process out-of-band data */
#define	MSG_PEEK	0x2		/* peek at incoming message */
#define	MSG_DONTROUTE	0x4		/* send without using routing tables */

#ifdef _XOPEN_SOURCE_EXTENDED
#define MSG_EOR         0x8             /* data completes record */
#define MSG_TRUNC       0x10            /* data discarded before delivery */
#define MSG_CTRUNC      0x20            /* control data lost before delivery */
#define MSG_WAITALL     0x40            /* wait for full request or error */
#else
#ifdef _KERNEL
#define MSG_EOR         0x8             /* data completes record */
#define MSG_TRUNC       0x10            /* data discarded before delivery */
#define MSG_CTRUNC      0x20            /* control data lost before delivery */
#define MSG_WAITALL     0x40            /* wait for full request or error */
#endif /* _KERNEL */
#endif /* _XOPEN_SOURCE_EXTENDED */

#ifdef _KERNEL
/* Following used within kernel */
#define MSG_MBUF        0x1000          /* data in kernel, skip uiomove */
#define MSG_NONBLOCK    0x4000          /* nonblocking request */
#define MSG_COMPAT      0x8000          /* 4.3-format sockaddr */
#endif  /* _KERNEL */

#define	MSG_MAXIOVLEN	16

#if defined(_XOPEN_SOURCE_EXTENDED) || defined(_KERNEL)
/*
 * Given a byte length, align it to word boundary, aligned for cmsghdr.
 */
#define _CMSG_ALIGN(p)	(((p) + (int)sizeof(socklen_t) - 1) & ~((int)sizeof(socklen_t) - 1))

/*
 * Header for ancillary data objects in msg_control buffer.
 * Used for additional information with/about a datagram
 * not expressible by flags.  The format is a sequence
 * of message elements headed by cmsghdr structures.
 */
struct cmsghdr {
	socklen_t cmsg_len;		/* data byte count, including hdr */
	int	cmsg_level;		/* originating protocol */
	int	cmsg_type;		/* protocol-specific type */
/* followed by	u_char  cmsg_data[]; */
};

/* given pointer to struct cmsghdr, return pointer to data */
#define	CMSG_DATA(cmsg)		((unsigned char *)((cmsg) + 1))


#define	CMSG_FIRSTHDR(mhdr)	((struct cmsghdr *)(mhdr)->msg_control)

/* given pointer to struct cmsghdr, return pointer to next cmsghdr */
#define	CMSG_NXTHDR(mhdr, cmsg)	\
	(((cmsg) == (struct cmsghdr *)0) ? CMSG_FIRSTHDR(mhdr) : \
	 (((caddr_t)(cmsg) + ((struct cmsghdr *)(cmsg))->cmsg_len + (int)sizeof(struct cmsghdr) > \
	    (caddr_t)((mhdr)->msg_control) + (mhdr)->msg_controllen) ? \
	    (struct cmsghdr *)0 : \
	    (struct cmsghdr *)((caddr_t)(cmsg) + _CMSG_ALIGN(((struct cmsghdr *)(cmsg))->cmsg_len))))

#define CMSG_SPACE(length)	(sizeof(struct cmsghdr) + \
				_CMSG_ALIGN(length))

#define CMSG_LEN(length)	(sizeof(struct cmsghdr) + length)

/* "Socket"-level control message types: */
#define	SCM_RIGHTS	0x01		/* access rights (array of int) */

#endif /* _XOPEN_SOURCE_EXTENDED || _KERNEL */

/* BSDIPC system calls */

#ifndef _KERNEL

#if defined(_XOPEN_SOURCE_EXTENDED) && !defined(_KERNEL)
#ifdef __cplusplus
  extern "C" {
#endif /* __cplusplus */
   extern int accept __((int, struct sockaddr *, socklen_t *));
   extern int bind __((int, const struct sockaddr *, socklen_t));
   extern int connect __((int, const struct sockaddr *, socklen_t));
   extern int getpeername __((int, struct sockaddr *, socklen_t *));
   extern int getsockname __((int, struct sockaddr *, socklen_t *));
   extern int getsockopt __((int, int, int, void *, socklen_t *));
   extern int listen __((int, int));
   extern ssize_t recv __((int, void *, size_t, int));
   extern ssize_t recvfrom __((int, void *, size_t, int,
                               struct sockaddr *, socklen_t *));
   extern ssize_t recvmsg __((int, struct msghdr *, int));
   extern ssize_t send __((int, const void *, size_t, int));
   extern ssize_t sendmsg __((int, const struct msghdr *, int));
   extern ssize_t sendto __((int, const void *, size_t, int,
                             const struct sockaddr *, socklen_t));
   extern int setsockopt __((int, int, int, const void *, socklen_t));
   extern int shutdown __((int, int));
   extern int socket __((int, int, int));
   extern int socketpair __((int, int, int, int[2]));
#ifdef __cplusplus
   }
#endif /* __cplusplus */

#else  /* !_XOPEN_SOURCE_EXTENDED*/
#ifdef __cplusplus
  extern "C" {
#endif /* __cplusplus */
   extern int accept __((int, void *, int *));
   extern int bind __((int, const void *, int));
   extern int connect __((int, const void *, int));
   extern int getpeername __((int, void *, int *));
   extern int getsockname __((int, void *, int *));
   extern int getsockopt __((int, int, int, void *, int *));
   extern int listen __((int, int));
   extern int recv __((int, void *, int, int));
   extern int recvfrom __((int, void *, int, int, void *, int *));
   extern int recvmsg __((int, struct msghdr msg[], int));
   extern int send __((int, const void *, int, int));
   extern int sendto __((int, const void *, int, int, const void *, int));
   extern int sendmsg __((int, const struct msghdr msg[], int));
   extern int setsockopt __((int, int, int, const void *, int));
   extern int shutdown __((int, int));
   extern int socket __((int, int, int));
   extern int socketpair __((int, int, int, int[2]));
   extern sbsize_t sendfile __((int, int, off_t, bsize_t,
				const struct iovec *, int));
   extern sbsize_t sendpath __((int, char *, off_t, bsize_t,
				const struct iovec *, int));
#if defined(_LARGEFILE64_SOURCE)
#ifdef __LP64__
#define sendfile64 sendfile
#define sendpath64 sendpath
#else /* __LP64__ */
extern sbsize64_t sendfile64 __((int, int, off64_t, bsize64_t,
		     const struct iovec *, int)); 
extern sbsize64_t sendpath64 __((int, char *, off64_t, bsize64_t, 
		     const struct iovec *, int)); 
#endif /* __LP64 */
#endif /* _LARGEFILE64_SOURCE */

#ifdef _APP32_64BIT_OFF_T
extern sbsize64_t __sendfile64 __((int,int,off_t,bsize_t, const struct iovec *, int));
extern sbsize64_t __sendpath64 __((int,char *,off_t,bsize_t,const struct iovec *,int));
#ifndef __cplusplus
static sbsize_t sendfile(a,b,c,d,e,f) int a,b,f; off_t c; bsize_t d; __const struct iovec * e; { return __sendfile64(a,b,c,d,e,f); }
static sbsize_t sendpath(a,b,c,d,e,f) int a,f; char *b; off_t c; bsize_t d; __const struct iovec * e; { return __sendpath64(a,b,c,d,e,f); }
#endif /* __cplusplus */
#endif /* _APP32_64BIT_OFF_T */
#ifdef __cplusplus
   }
#endif /* __cplusplus */

#if defined(__cplusplus) && defined(_APP32_64BIT_OFF_T)
inline sbsize_t sendfile __((int,int,off_t,bsize_t,const struct iovec *,int));
inline sbsize_t sendpath __((int,char *,off_t,bsize_t, const struct iovec *,int));
inline sbsize_t sendfile(int a, int b, off_t c, bsize_t d, const struct iovec *
e, int f) { return __sendfile64(a,b,c,d,e,f); }
inline sbsize_t sendpath(int a, char *b, off_t c, bsize_t d, const struct iovec
* e, int f) { return __sendpath64(a,b,c,d,e,f); }
#endif /* __cplusplus && _APP32_64BIT_OFF_T */

#endif  /* !_XOPEN_SOURCE_EXTENDED*/

#ifndef _XOPEN_SOURCE_EXTENDED
#ifdef __cplusplus
  extern "C" {
#endif /* __cplusplus */
   extern int rcmd __((char **, int, const char *,
                       const char *, const char *, int *));
   extern int rexec __((char **, int, const char *,
                        const char *, const char *, int *));
   extern int rresvport __((int *));
   extern int ruserok __((const char *, int, const char *, const char *));
#ifdef __cplusplus
   }
#endif /* __cplusplus */
#endif /* !_XOPEN_SOURCE_EXTENDED */

#endif /* not _KERNEL */

#endif /* _INCLUDE_XOPEN_SOURCE_EXTENDED */

#endif	/* not _SYS_SOCKET_INCLUDED */

In This Thread