diff options
author | rwatson <rwatson@FreeBSD.org> | 2001-11-16 05:09:45 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2001-11-16 05:09:45 +0000 |
commit | a86bfc340fa6d59d378406c9073ccc9979d64df3 (patch) | |
tree | da5a6e1b6de0b5a89bdfdc3d19709e956fa1ca1f /lib | |
parent | 25d4f2e1accc74ecf87422a64407d091b2c5fc9f (diff) | |
download | FreeBSD-src-a86bfc340fa6d59d378406c9073ccc9979d64df3.zip FreeBSD-src-a86bfc340fa6d59d378406c9073ccc9979d64df3.tar.gz |
o Reflect repo-copy of extattr.[c3] from libutil to libc, moving
extattr namespace routines to the libc/posix1e directory. While
the extattr calls are not strictly POSIX.1e, POSIX.1e wasn't
strictly ever approved, so I think that's OK.
Obtained from: TrustedBSD Project
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/posix1e/Makefile.inc | 8 | ||||
-rw-r--r-- | lib/libutil/Makefile | 5 | ||||
-rw-r--r-- | lib/libutil/extattr.3 | 100 | ||||
-rw-r--r-- | lib/libutil/extattr.c | 77 |
4 files changed, 7 insertions, 183 deletions
diff --git a/lib/libc/posix1e/Makefile.inc b/lib/libc/posix1e/Makefile.inc index 7bdc2a2..8ef2e27 100644 --- a/lib/libc/posix1e/Makefile.inc +++ b/lib/libc/posix1e/Makefile.inc @@ -32,7 +32,8 @@ SRCS+= acl_calc_mask.c \ cap_set_file.c \ cap_set_flag.c \ cap_set_proc.c \ - cap_text.c + cap_text.c \ + extattr.c .if ${LIB} == "c" @@ -74,6 +75,7 @@ MAN+= acl.3 \ cap_set_flag.3 \ cap_set_proc.3 \ cap_to_text.3 \ + extattr.3 \ posix1e.3 MLINKS+=acl_delete.3 acl_delete_def_file.3 \ @@ -87,6 +89,8 @@ MLINKS+=acl_delete.3 acl_delete_def_file.3 \ acl_set.3 acl_set_fd_np.3 \ acl_valid.3 acl_valid_file_np.3 \ acl_valid.3 acl_valid_fd_np.3 \ - cap_copy_ext.3 cap_size.3 + cap_copy_ext.3 cap_size.3 \ + extattr.3 extattr_namespace_to_string.3 \ + extattr.3 extattr_string_to_namespace.3 .endif diff --git a/lib/libutil/Makefile b/lib/libutil/Makefile index 13c54d6..03f732a 100644 --- a/lib/libutil/Makefile +++ b/lib/libutil/Makefile @@ -6,20 +6,17 @@ SHLIB_MAJOR= 3 SHLIB_MINOR= 0 CFLAGS+=-Wall -DLIBC_SCCS -I${.CURDIR} CFLAGS+=-DINET6 -SRCS= _secure_path.c auth.c extattr.c fparseln.c login.c login_auth.c \ +SRCS= _secure_path.c auth.c fparseln.c login.c login_auth.c \ login_cap.c login_class.c login_crypt.c login_ok.c login_times.c \ login_tty.c logout.c logwtmp.c property.c pty.c realhostname.c stub.c \ trimdomain.c uucplock.c INCS= libutil.h login_cap.h -MAN+= extattr.3 MAN+= login.3 login_auth.3 login_tty.3 logout.3 logwtmp.3 pty.3 \ login_cap.3 login_class.3 login_times.3 login_ok.3 \ _secure_path.3 uucplock.3 property.3 auth.3 realhostname.3 \ realhostname_sa.3 trimdomain.3 fparseln.3 MAN+= login.conf.5 auth.conf.5 -MLINKS+= extattr.3 extattr_namespace_to_string.3 \ - extattr.3 extattr_string_to_namespace.3 MLINKS+= property.3 properties_read.3 property.3 properties_free.3 MLINKS+= property.3 property_find.3 MLINKS+= auth.3 auth_getval.3 diff --git a/lib/libutil/extattr.3 b/lib/libutil/extattr.3 deleted file mode 100644 index 998ddaa..0000000 --- a/lib/libutil/extattr.3 +++ /dev/null @@ -1,100 +0,0 @@ -.\" -.\" Copyright (c) 2001 Dima Dorfman <dd@FreeBSD.org> -.\" 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. -.\" -.\" $FreeBSD$ -.\" -.Dd June 24, 2001 -.Dt EXTATTR 3 -.Os -.Sh NAME -.Nm extattr_namespace_to_string , -.Nm extattr_string_to_namespace -.Nd convert an extended attribute namespace identifier to a string and -vice versa -.Sh LIBRARY -.Lb libutil -.Sh SYNOPSIS -.In sys/extattr.h -.In libutil.h -.Ft int -.Fn extattr_namespace_to_string "int attrnamespace" "char **string" -.Ft int -.Fn extattr_string_to_namespace "const char *string" "int *attrnamespace" -.Sh DESCRIPTION -The -.Fn extattr_namespace_to_string -function converts a VFS extended attribute identifier to a human-readable -string; -the -.Fn extattr_string_to_namespace -function undoes the aforementioned operation, -and converts a human-readable string representing a namespace to a -namespace identifier. -Although a filesystem may implement arbitrary namespaces, -these functions only support the -.Dv EXTATTR_NAMESPACE_USER -.Pq Dq user -and -.Dv EXTATTR_NAMESPACE_SYSTEM -.Pq Dq system -namespaces, -which are defined in -.Xr extattr 9 . -.Pp -These functions are meant to be used in error reporting and other -interactive tasks. -For example, -instead of printing the integer identifying an extended attribute in -an error message, -a program might use -.Fn extattr_namespace_to_string -to obtain a human-readable representation. -Likewise, -instead of requiring a user to enter the integer representing a namespace, -an interactive program might ask for a name and use -.Fn extattr_string_to_namespace -to get the desired identifier. -.Sh RETURN VALUES -If any of the calls are unsuccessful, the value \-1 is returned -and the global variable -.Va errno -is set to indicate the error. -.Sh ERRORS -.Bl -tag -width Er -.It Bq Er EINVAL -The requested namespace could not be identified. -.El -.Sh SEE ALSO -.Xr extattr 2 , -.Xr getextattr 8 , -.Xr setextattr 8 , -.Xr extattr 9 -.Sh HISTORY -Extended attribute support was developed as part of the -.Tn TrustedBSD -Project, and introduced in -.Fx 5.0 . -It was developed to support security extensions requiring additional labels -to be associated with each file or directory. diff --git a/lib/libutil/extattr.c b/lib/libutil/extattr.c deleted file mode 100644 index eb27bb7..0000000 --- a/lib/libutil/extattr.c +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * Copyright (c) 2001 Robert N. M. Watson - * 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$"); - -/* - * TrustedBSD: Utility functions for extended attributes. - */ - -#include <sys/types.h> -#include <sys/extattr.h> - -#include <errno.h> -#include <string.h> - -int -extattr_namespace_to_string(int attrnamespace, char **string) -{ - - switch(attrnamespace) { - case EXTATTR_NAMESPACE_USER: - if (*string != NULL) - *string = strdup(EXTATTR_NAMESPACE_USER_STRING); - return (0); - - case EXTATTR_NAMESPACE_SYSTEM: - if (*string != NULL) - *string = strdup(EXTATTR_NAMESPACE_SYSTEM_STRING); - return (0); - - default: - errno = EINVAL; - return (-1); - } -} - -int -extattr_string_to_namespace(const char *string, int *attrnamespace) -{ - - if (!strcmp(string, EXTATTR_NAMESPACE_USER_STRING)) { - if (attrnamespace != NULL) - *attrnamespace = EXTATTR_NAMESPACE_USER; - return (0); - } else if (!strcmp(string, EXTATTR_NAMESPACE_SYSTEM_STRING)) { - if (attrnamespace != NULL) - *attrnamespace = EXTATTR_NAMESPACE_SYSTEM; - return (0); - } else { - errno = EINVAL; - return (-1); - } -} |