Man page - krb5_acl_match_file(3)

Packages contains this manual

Manual


KRB5_ACL_MATCH_FILE (3) Library Functions Manual KRB5_ACL_MATCH_FILE (3)

NAME

krb5_acl_match_file, krb5_acl_match_string — ACL matching functions

LIBRARY

Kerberos 5 Library (libkrb5, -lkrb5)

SYNOPSIS

krb5_error_code

krb5_acl_match_file ( krb5_context context , const char *file , const char *format , ... );

krb5_error_code

krb5_acl_match_string ( krb5_context context , const char *string , const char *format , ... );

DESCRIPTION

krb5_acl_match_file matches ACL format against each line in a file. Lines starting with # are treated like comments and ignored.

krb5_acl_match_string matches ACL format against a string.

The ACL format has three format specifiers: s, f, and r. Each specifier will retrieve one argument from the variable arguments for either matching or storing data. The input string is split up using " " and "\t" as a delimiter; multiple " " and "\t" in a row are considered to be the same.

s

Matches a string using strcmp (3) (case sensitive).

f

Matches the string with fnmatch (3). The flags argument (the last argument) passed to the fnmatch function is 0.

r

Returns a copy of the string in the char ** passed in; the copy must be freed with free (3). There is no need to free (3) the string on error: the function will clean up and set the pointer to NULL.

All unknown format specifiers cause an error.

EXAMPLES

char *s;

ret = krb5_acl_match_string(context, "foo", "s", "foo");
if (ret)
krb5_errx(context, 1, "acl didn’t match");
ret = krb5_acl_match_string(context, "foo foo baz/kaka",
"ss", "foo", &s, "foo/*");
if (ret) {
/* no need to free(s) on error */
assert(s == NULL);
krb5_errx(context, 1, "acl didn’t match");
}
free(s);

SEE ALSO

krb5 (3) HEIMDAL May 12, 2006 KRB5_ACL_MATCH_FILE (3)