[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