[Glibc-bsd-commits] r5259 - in trunk/freebsd-glue: debian include src/freebsd-glue

rmh at alioth.debian.org rmh at alioth.debian.org
Wed Dec 25 23:52:35 UTC 2013


Author: rmh
Date: 2013-12-25 23:52:35 +0000 (Wed, 25 Dec 2013)
New Revision: 5259

Added:
   trunk/freebsd-glue/src/freebsd-glue/getpeereid.c
Modified:
   trunk/freebsd-glue/debian/changelog
   trunk/freebsd-glue/debian/copyright
   trunk/freebsd-glue/debian/libfreebsd-glue-0.symbols
   trunk/freebsd-glue/include/unistd.h
   trunk/freebsd-glue/src/freebsd-glue/Makefile
Log:
Add getpeereid().

Modified: trunk/freebsd-glue/debian/changelog
===================================================================
--- trunk/freebsd-glue/debian/changelog	2013-12-25 21:25:17 UTC (rev 5258)
+++ trunk/freebsd-glue/debian/changelog	2013-12-25 23:52:35 UTC (rev 5259)
@@ -8,6 +8,7 @@
   * Convert cget* family of functions into dummy stubs. This gets rid of
     -ldb dependency, which isn't permissible outside of /usr.
     (Closes: #732617)
+  * Add getpeereid().
 
  -- Robert Millan <rmh at debian.org>  Wed, 25 Dec 2013 12:43:23 +0100
 

Modified: trunk/freebsd-glue/debian/copyright
===================================================================
--- trunk/freebsd-glue/debian/copyright	2013-12-25 21:25:17 UTC (rev 5258)
+++ trunk/freebsd-glue/debian/copyright	2013-12-25 23:52:35 UTC (rev 5259)
@@ -43,6 +43,10 @@
 Copyright: 1990, 1993, 2001, Mike Barcroft <mike at FreeBSD.org>
 License: BSD (3 clause)
 
+Files: src/freebsd-glue/getpeereid.c
+Copyright: 2001, Dima Dorfman
+License: BSD (2 clause)
+
 Files: include/sys/param.h
 Copyright: 1982, 1986, 1989, 1993
   UNIX System Laboratories, Inc

Modified: trunk/freebsd-glue/debian/libfreebsd-glue-0.symbols
===================================================================
--- trunk/freebsd-glue/debian/libfreebsd-glue-0.symbols	2013-12-25 21:25:17 UTC (rev 5258)
+++ trunk/freebsd-glue/debian/libfreebsd-glue-0.symbols	2013-12-25 23:52:35 UTC (rev 5259)
@@ -25,6 +25,7 @@
  getfstab at Base 0.1.15
  (arch=kfreebsd-any)getloginclass at Base 0.1.15
  getosreldate at Base 0.1.15
+ (arch=kfreebsd-any)getpeereid at Base 0.2.6
  (arch=kfreebsd-any)link_addr at Base 0.1.15
  (arch=kfreebsd-any)link_ntoa at Base 0.1.15
  (arch=kfreebsd-any)mac_free at Base 0.1.15

Modified: trunk/freebsd-glue/include/unistd.h
===================================================================
--- trunk/freebsd-glue/include/unistd.h	2013-12-25 21:25:17 UTC (rev 5258)
+++ trunk/freebsd-glue/include/unistd.h	2013-12-25 23:52:35 UTC (rev 5259)
@@ -56,6 +56,8 @@
 int getloginclass (char *name, size_t len);
 int setloginclass (const char *name);
 
+int getpeereid (int, uid_t *, gid_t *);
+
 #endif /* __FreeBSD_kernel__ */
 
 void setproctitle(const char *fmt, ...);

Modified: trunk/freebsd-glue/src/freebsd-glue/Makefile
===================================================================
--- trunk/freebsd-glue/src/freebsd-glue/Makefile	2013-12-25 21:25:17 UTC (rev 5258)
+++ trunk/freebsd-glue/src/freebsd-glue/Makefile	2013-12-25 23:52:35 UTC (rev 5259)
@@ -19,6 +19,7 @@
 	cpuset.c \
 	disklabel.c \
 	getbootfile.c \
+	getpeereid.c \
 	linkaddr.c \
 	login_class.c \
 	mac.c \

Added: trunk/freebsd-glue/src/freebsd-glue/getpeereid.c
===================================================================
--- trunk/freebsd-glue/src/freebsd-glue/getpeereid.c	                        (rev 0)
+++ trunk/freebsd-glue/src/freebsd-glue/getpeereid.c	2013-12-25 23:52:35 UTC (rev 5259)
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2001 Dima Dorfman.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/socket.h>
+#include <sys/ucred.h>
+#include <sys/un.h>
+
+#include <errno.h>
+#include <unistd.h>
+
+int
+getpeereid(int s, uid_t *euid, gid_t *egid)
+{
+	struct xucred xuc;
+	socklen_t xuclen;
+	int error;
+
+	xuclen = sizeof(xuc);
+	error = getsockopt(s, 0, LOCAL_PEERCRED, &xuc, &xuclen);
+	if (error != 0)
+		return (error);
+	if (xuc.cr_version != XUCRED_VERSION)
+		return (EINVAL);
+	*euid = xuc.cr_uid;
+	*egid = xuc.cr_gid;
+	return (0);
+}




More information about the Glibc-bsd-commits mailing list