
KRB5_ACL_MATCH_FILE(3)     UNIX Programmer's Manual     KRB5_ACL_MATCH_FILE(3)

NNAAMMEE
     kkrrbb55__aaccll__mmaattcchh__ffiillee, kkrrbb55__aaccll__mmaattcchh__ssttrriinngg - ACL matching functions .

LLIIBBRRAARRYY
     Kerberos 5 Library (libkrb5, -lkrb5)

SSYYNNOOPPSSIISS
     _k_r_b_5___e_r_r_o_r___c_o_d_e
     kkrrbb55__aaccll__mmaattcchh__ffiillee(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t, _c_o_n_s_t _c_h_a_r _*_f_i_l_e,
             _c_o_n_s_t _c_h_a_r _*_f_o_r_m_a_t, _._._.)

     _k_r_b_5___e_r_r_o_r___c_o_d_e
     kkrrbb55__aaccll__mmaattcchh__ssttrriinngg(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t, _c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g,
             _c_o_n_s_t _c_h_a_r _*_f_o_r_m_a_t, _._._.)

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

     kkrrbb55__aaccll__mmaattcchh__ssttrriinngg matches ACL format against a string.

     The ACL format have tree format specifiers, s, f, r.  Each specifier will
     pull of one argument from the varable arguments for ether maching or
     storing data.  The input string is split up using " " and "" as delim-
     iter, multiple " " and "" in a row are considered to be the same.

           s
             matches a string using strcmp (case sensetive).

           f
             matches the string with fnmatch(3).  The _f_l_a_g_s argument (the last
             argument) passed to the fnmatch function is 0.

           r
             returns a copy 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 causes an error.

EEXXAAMMPPLLEESS
         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);

SSEEEE AALLSSOO
     krb5(3)

 HEIMDAL                        March 20, 2004                               1
