From: Gaurav.Jain_at_[hidden]
Date: 2007-02-08 08:39:07


<Oliver.Kowalke <at> qimonda.com> writes:
>
> >This
> > structure is defined in <sys/socket.h> and includes the fol-
> > lowing members:
> > 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;
>
> This is the same behaviour on HP/UX. Without _XOPEN_SOURCE_EXTENDED
(on
> HP/UX) you get the old HP/UX specific socket api (-> different
structes
> like struct msghdr). The same seams to apply to Solaris 10. Maybe you
> can find an hint in the documention for a special compiler flag in
order
> to get X/Open compliant functions and structures as Christopher uses
in
> its code. It would be cumbersome to manage each special UNIX flaviour
> socket api in you code. Using an standardized api would be better for
> future investments and because the UNIX supplier can deprecate its old
> socket api too in future.
>
> Oliver
 msghdr structure used by asio would require "_XOPEN_SOURCE_EXTENDED" or
"_XOPEN_SOURCE=500/600" to be defined since it is compliant with X/Open
Networking Services Library Functions and also would require to be
linked against -libxnet at least on Solaris.
 No particular compiler flags are mentioned in man pages. However,
standards man page suggests that
"-D_XOPEN_SOURCE=500" or "-D_XOPEN_SOURCE=600" be passed to compiler.
 It would be helpful if the asio library takes care of this in the
header file.

Regards,
Gaurav Jain