Message ID | 1402849113-11402-5-git-send-email-paul@archlinuxmips.org |
---|---|
State | New |
Headers | show |
On Sun, Jun 15, 2014 at 05:18:21PM +0100, Paul Burton wrote: > Translate the SO_PASSSEC option to setsockopt to the host value & > perform the syscall as expected, allowing use of the option by target > programs. Another file that is a total mess in linux-user tree.. This should be split out to arch specific header files - but that's for another patch. For this patch - the value for sparc SO_PASSEC should be set, since it's different from others: http://lxr.free-electrons.com/source/arch/sparc/include/uapi/asm/socket.h#L51 > Signed-off-by: Paul Burton <paul@archlinuxmips.org> > --- > linux-user/socket.h | 2 ++ > linux-user/syscall.c | 3 +++ > 2 files changed, 5 insertions(+) > > diff --git a/linux-user/socket.h b/linux-user/socket.h > index ae17959..289c6ac 100644 > --- a/linux-user/socket.h > +++ b/linux-user/socket.h > @@ -63,6 +63,7 @@ > #define TARGET_SO_PEERSEC 30 > #define TARGET_SO_SNDBUFFORCE 31 > #define TARGET_SO_RCVBUFFORCE 33 > + #define TARGET_SO_PASSSEC 34 > > /** sock_type - Socket types > * > @@ -298,6 +299,7 @@ > #define TARGET_SO_ACCEPTCONN 30 > > #define TARGET_SO_PEERSEC 31 > + #define TARGET_SO_PASSSEC 34 > > #endif > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index 679d165..b507f81 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -1529,6 +1529,9 @@ set_timeout: > case TARGET_SO_PASSCRED: > optname = SO_PASSCRED; > break; > + case TARGET_SO_PASSSEC: > + optname = SO_PASSSEC; > + break; > case TARGET_SO_TIMESTAMP: > optname = SO_TIMESTAMP; > break; > -- > 2.0.0 >
On Sat, Jun 21, 2014 at 01:59:33PM +0300, Riku Voipio wrote: > On Sun, Jun 15, 2014 at 05:18:21PM +0100, Paul Burton wrote: > > Translate the SO_PASSSEC option to setsockopt to the host value & > > perform the syscall as expected, allowing use of the option by target > > programs. > > Another file that is a total mess in linux-user tree.. This should be > split out to arch specific header files - but that's for another patch. > For this patch - the value for sparc SO_PASSEC should be set, since > it's different from others: > > http://lxr.free-electrons.com/source/arch/sparc/include/uapi/asm/socket.h#L51 Good catch, and it looks like the same is true of some other already incorrect options for sparc (SO_PEERSEC, SO_BINDTODEVICE at least at a glance). Paul > > > Signed-off-by: Paul Burton <paul@archlinuxmips.org> > > --- > > linux-user/socket.h | 2 ++ > > linux-user/syscall.c | 3 +++ > > 2 files changed, 5 insertions(+) > > > > diff --git a/linux-user/socket.h b/linux-user/socket.h > > index ae17959..289c6ac 100644 > > --- a/linux-user/socket.h > > +++ b/linux-user/socket.h > > @@ -63,6 +63,7 @@ > > #define TARGET_SO_PEERSEC 30 > > #define TARGET_SO_SNDBUFFORCE 31 > > #define TARGET_SO_RCVBUFFORCE 33 > > + #define TARGET_SO_PASSSEC 34 > > > > /** sock_type - Socket types > > * > > @@ -298,6 +299,7 @@ > > #define TARGET_SO_ACCEPTCONN 30 > > > > #define TARGET_SO_PEERSEC 31 > > + #define TARGET_SO_PASSSEC 34 > > > > #endif > > > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > > index 679d165..b507f81 100644 > > --- a/linux-user/syscall.c > > +++ b/linux-user/syscall.c > > @@ -1529,6 +1529,9 @@ set_timeout: > > case TARGET_SO_PASSCRED: > > optname = SO_PASSCRED; > > break; > > + case TARGET_SO_PASSSEC: > > + optname = SO_PASSSEC; > > + break; > > case TARGET_SO_TIMESTAMP: > > optname = SO_TIMESTAMP; > > break; > > -- > > 2.0.0 > >
diff --git a/linux-user/socket.h b/linux-user/socket.h index ae17959..289c6ac 100644 --- a/linux-user/socket.h +++ b/linux-user/socket.h @@ -63,6 +63,7 @@ #define TARGET_SO_PEERSEC 30 #define TARGET_SO_SNDBUFFORCE 31 #define TARGET_SO_RCVBUFFORCE 33 + #define TARGET_SO_PASSSEC 34 /** sock_type - Socket types * @@ -298,6 +299,7 @@ #define TARGET_SO_ACCEPTCONN 30 #define TARGET_SO_PEERSEC 31 + #define TARGET_SO_PASSSEC 34 #endif diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 679d165..b507f81 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -1529,6 +1529,9 @@ set_timeout: case TARGET_SO_PASSCRED: optname = SO_PASSCRED; break; + case TARGET_SO_PASSSEC: + optname = SO_PASSSEC; + break; case TARGET_SO_TIMESTAMP: optname = SO_TIMESTAMP; break;
Translate the SO_PASSSEC option to setsockopt to the host value & perform the syscall as expected, allowing use of the option by target programs. Signed-off-by: Paul Burton <paul@archlinuxmips.org> --- linux-user/socket.h | 2 ++ linux-user/syscall.c | 3 +++ 2 files changed, 5 insertions(+)