linux compat: add SO_PASSCRED option with basic handling
This seems to have been a part of a bigger patch by dchagin that either haven't been committed or committed partially. Submitted by: dchagin, nox MFC after: 2 weeks
This commit is contained in:
parent
605da56bc3
commit
01a9e1a11b
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=220032
@ -695,6 +695,7 @@ union l_semun {
|
||||
#define LINUX_SO_NO_CHECK 11
|
||||
#define LINUX_SO_PRIORITY 12
|
||||
#define LINUX_SO_LINGER 13
|
||||
#define LINUX_SO_PASSCRED 16
|
||||
#define LINUX_SO_PEERCRED 17
|
||||
#define LINUX_SO_RCVLOWAT 18
|
||||
#define LINUX_SO_SNDLOWAT 19
|
||||
|
@ -300,6 +300,8 @@ linux_to_bsd_so_sockopt(int opt)
|
||||
return (SO_OOBINLINE);
|
||||
case LINUX_SO_LINGER:
|
||||
return (SO_LINGER);
|
||||
case LINUX_SO_PASSCRED:
|
||||
return (LOCAL_CREDS);
|
||||
case LINUX_SO_PEERCRED:
|
||||
return (LOCAL_PEERCRED);
|
||||
case LINUX_SO_RCVLOWAT:
|
||||
@ -1467,6 +1469,12 @@ linux_setsockopt(struct thread *td, struct linux_setsockopt_args *args)
|
||||
switch (bsd_args.level) {
|
||||
case SOL_SOCKET:
|
||||
name = linux_to_bsd_so_sockopt(args->optname);
|
||||
switch (args->optname) {
|
||||
case LINUX_SO_PASSCRED:
|
||||
/* FreeBSD bug? socket level opts at non socket level */
|
||||
bsd_args.level = 0;
|
||||
break;
|
||||
}
|
||||
switch (name) {
|
||||
case SO_RCVTIMEO:
|
||||
/* FALLTHROUGH */
|
||||
@ -1544,6 +1552,12 @@ linux_getsockopt(struct thread *td, struct linux_getsockopt_args *args)
|
||||
switch (bsd_args.level) {
|
||||
case SOL_SOCKET:
|
||||
name = linux_to_bsd_so_sockopt(args->optname);
|
||||
switch (args->optname) {
|
||||
case LINUX_SO_PASSCRED:
|
||||
/* FreeBSD bug? socket level opts at non socket level */
|
||||
bsd_args.level = 0;
|
||||
break;
|
||||
}
|
||||
switch (name) {
|
||||
case SO_RCVTIMEO:
|
||||
/* FALLTHROUGH */
|
||||
|
@ -671,6 +671,7 @@ union l_semun {
|
||||
#define LINUX_SO_NO_CHECK 11
|
||||
#define LINUX_SO_PRIORITY 12
|
||||
#define LINUX_SO_LINGER 13
|
||||
#define LINUX_SO_PASSCRED 16
|
||||
#define LINUX_SO_PEERCRED 17
|
||||
#define LINUX_SO_RCVLOWAT 18
|
||||
#define LINUX_SO_SNDLOWAT 19
|
||||
|
Loading…
Reference in New Issue
Block a user