Deleted Added
full compact
getpeereid.c (90050) getpeereid.c (91354)
1/*
2 * Copyright (c) 2001 Dima Dorfman.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
1/*
2 * Copyright (c) 2001 Dima Dorfman.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/lib/libc/gen/getpeereid.c 90050 2002-02-01 07:26:00Z obrien $");
28__FBSDID("$FreeBSD: head/lib/libc/gen/getpeereid.c 91354 2002-02-27 04:45:37Z dd $");
29
30#include <sys/param.h>
31#include <sys/socket.h>
32#include <sys/ucred.h>
33#include <sys/un.h>
34
29
30#include <sys/param.h>
31#include <sys/socket.h>
32#include <sys/ucred.h>
33#include <sys/un.h>
34
35#include <errno.h>
35#include <unistd.h>
36
37int
38getpeereid(int s, uid_t *euid, gid_t *egid)
39{
40 struct xucred xuc;
41 socklen_t xuclen;
42 int error;
43
44 xuclen = sizeof(xuc);
45 error = getsockopt(s, LOCAL_PEERCRED, 1, &xuc, &xuclen);
46 if (error != 0)
47 return (error);
36#include <unistd.h>
37
38int
39getpeereid(int s, uid_t *euid, gid_t *egid)
40{
41 struct xucred xuc;
42 socklen_t xuclen;
43 int error;
44
45 xuclen = sizeof(xuc);
46 error = getsockopt(s, LOCAL_PEERCRED, 1, &xuc, &xuclen);
47 if (error != 0)
48 return (error);
49 if (xuc.cr_version != XUCRED_VERSION)
50 return (EINVAL);
48 *euid = xuc.cr_uid;
49 *egid = xuc.cr_gid;
50 return (0);
51}
51 *euid = xuc.cr_uid;
52 *egid = xuc.cr_gid;
53 return (0);
54}