Author: cem
Date: Tue Nov  3 01:19:13 2020
New Revision: 367288
URL: https://svnweb.freebsd.org/changeset/base/367288

Log:
  linux(4): Emulate Linux SOL_SOCKET:SO_PASSCRED
  
  This is required by some major linux applications, such as Chrome and
  Firefox.  (As well as Electron-using applications, which are essentially
  a bundled version of Chrome.)
  
  Reviewed by:  markj
  Differential Revision:        https://reviews.freebsd.org/D27012

Modified:
  head/sys/compat/linux/linux_socket.c

Modified: head/sys/compat/linux/linux_socket.c
==============================================================================
--- head/sys/compat/linux/linux_socket.c        Tue Nov  3 01:17:45 2020        
(r367287)
+++ head/sys/compat/linux/linux_socket.c        Tue Nov  3 01:19:13 2020        
(r367288)
@@ -222,6 +222,8 @@ linux_to_bsd_so_sockopt(int opt)
                return (SO_LINGER);
        case LINUX_SO_REUSEPORT:
                return (SO_REUSEPORT_LB);
+       case LINUX_SO_PASSCRED:
+               return (LOCAL_CREDS_PERSISTENT);
        case LINUX_SO_PEERCRED:
                return (LOCAL_PEERCRED);
        case LINUX_SO_RCVLOWAT:
@@ -1445,6 +1447,9 @@ linux_setsockopt(struct thread *td, struct linux_setso
        case SOL_SOCKET:
                name = linux_to_bsd_so_sockopt(args->optname);
                switch (name) {
+               case LOCAL_CREDS_PERSISTENT:
+                       level = SOL_LOCAL;
+                       break;
                case SO_RCVTIMEO:
                        /* FALLTHROUGH */
                case SO_SNDTIMEO:
@@ -1522,6 +1527,9 @@ linux_getsockopt(struct thread *td, struct linux_getso
        case SOL_SOCKET:
                name = linux_to_bsd_so_sockopt(args->optname);
                switch (name) {
+               case LOCAL_CREDS_PERSISTENT:
+                       level = SOL_LOCAL;
+                       break;
                case SO_RCVTIMEO:
                        /* FALLTHROUGH */
                case SO_SNDTIMEO:
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to