1.\" $NetBSD: krb5_acl_match_file.3,v 1.1.1.2 2011/04/14 14:09:22 elric Exp $ 2.\" 3.\" Copyright (c) 2004, 2006 Kungliga Tekniska Högskolan 4.\" (Royal Institute of Technology, Stockholm, Sweden). 5.\" All rights reserved. 6.\" 7.\" Redistribution and use in source and binary forms, with or without 8.\" modification, are permitted provided that the following conditions 9.\" are met: 10.\" 11.\" 1. Redistributions of source code must retain the above copyright 12.\" notice, this list of conditions and the following disclaimer. 13.\" 14.\" 2. Redistributions in binary form must reproduce the above copyright 15.\" notice, this list of conditions and the following disclaimer in the 16.\" documentation and/or other materials provided with the distribution. 17.\" 18.\" 3. Neither the name of the Institute nor the names of its contributors 19.\" may be used to endorse or promote products derived from this software 20.\" without specific prior written permission. 21.\" 22.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 23.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 26.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32.\" SUCH DAMAGE. 33.\" 34.\" Id 35.\" 36.Dd May 12, 2006 37.Dt KRB5_ACL_MATCH_FILE 3 38.Os 39.Sh NAME 40.Nm krb5_acl_match_file , 41.Nm krb5_acl_match_string 42.Nd ACL matching functions 43.Sh LIBRARY 44Kerberos 5 Library (libkrb5, -lkrb5) 45.Sh SYNOPSIS 46.Ft krb5_error_code 47.Fo krb5_acl_match_file 48.Fa "krb5_context context" 49.Fa "const char *file" 50.Fa "const char *format" 51.Fa "..." 52.Fc 53.Ft krb5_error_code 54.Fo krb5_acl_match_string 55.Fa "krb5_context context" 56.Fa "const char *string" 57.Fa "const char *format" 58.Fa "..." 59.Fc 60.Sh DESCRIPTION 61.Nm krb5_acl_match_file 62matches ACL format against each line in a file. 63Lines starting with # are treated like comments and ignored. 64.Pp 65.Nm krb5_acl_match_string 66matches ACL format against a string. 67.Pp 68The ACL format has three format specifiers: s, f, and r. 69Each specifier will retrieve one argument from the variable arguments 70for either matching or storing data. 71The input string is split up using " " and "\et" as a delimiter; multiple 72" " and "\et" in a row are considered to be the same. 73.Pp 74.Bl -tag -width "fXX" -offset indent 75.It s 76Matches a string using 77.Xr strcmp 3 78(case sensitive). 79.It f 80Matches the string with 81.Xr fnmatch 3 . 82The 83.Fa flags 84argument (the last argument) passed to the fnmatch function is 0. 85.It r 86Returns a copy of the string in the char ** passed in; the copy must be 87freed with 88.Xr free 3 . 89There is no need to 90.Xr free 3 91the string on error: the function will clean up and set the pointer to 92.Dv NULL . 93.El 94.Pp 95All unknown format specifiers cause an error. 96.Sh EXAMPLES 97.Bd -literal -offset indent 98char *s; 99 100ret = krb5_acl_match_string(context, "foo", "s", "foo"); 101if (ret) 102 krb5_errx(context, 1, "acl didn't match"); 103ret = krb5_acl_match_string(context, "foo foo baz/kaka", 104 "ss", "foo", &s, "foo/*"); 105if (ret) { 106 /* no need to free(s) on error */ 107 assert(s == NULL); 108 krb5_errx(context, 1, "acl didn't match"); 109} 110free(s); 111.Ed 112.Sh SEE ALSO 113.Xr krb5 3 114