"Fossies" - the Fresh Open Source Software Archive

Member "krb5-1.18/src/lib/krb5/krb/addr_srch.c" (12 Feb 2020, 2233 Bytes) of package /linux/misc/krb5-1.18.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "addr_srch.c" see the Fossies "Dox" file reference documentation.

    1 /* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
    2 /* lib/krb5/krb/addr_srch.c */
    3 /*
    4  * Copyright 1990 by the Massachusetts Institute of Technology.
    5  * All Rights Reserved.
    6  *
    7  * Export of this software from the United States of America may
    8  *   require a specific license from the United States Government.
    9  *   It is the responsibility of any person or organization contemplating
   10  *   export to obtain such a license before exporting.
   11  *
   12  * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
   13  * distribute this software and its documentation for any purpose and
   14  * without fee is hereby granted, provided that the above copyright
   15  * notice appear in all copies and that both that copyright notice and
   16  * this permission notice appear in supporting documentation, and that
   17  * the name of M.I.T. not be used in advertising or publicity pertaining
   18  * to distribution of the software without specific, written prior
   19  * permission.  Furthermore if you modify this software you must label
   20  * your software as modified software and not distribute it in such a
   21  * fashion that it might be confused with the original M.I.T. software.
   22  * M.I.T. makes no representations about the suitability of
   23  * this software for any purpose.  It is provided "as is" without express
   24  * or implied warranty.
   25  */
   26 
   27 #include "k5-int.h"
   28 
   29 static unsigned int
   30 address_count(krb5_address *const *addrlist)
   31 {
   32     unsigned int i;
   33 
   34     if (addrlist == NULL)
   35         return 0;
   36 
   37     for (i = 0; addrlist[i]; i++)
   38         ;
   39 
   40     return i;
   41 }
   42 
   43 /*
   44  * if addr is listed in addrlist, or addrlist is null, return TRUE.
   45  * if not listed, return FALSE
   46  */
   47 krb5_boolean
   48 krb5_address_search(krb5_context context, const krb5_address *addr, krb5_address *const *addrlist)
   49 {
   50     /*
   51      * Treat an address list containing only a NetBIOS address
   52      * as empty, because we presently have no way of associating
   53      * a client with its NetBIOS address.
   54      */
   55     if (address_count(addrlist) == 1 &&
   56         addrlist[0]->addrtype == ADDRTYPE_NETBIOS)
   57         return TRUE;
   58     if (!addrlist)
   59         return TRUE;
   60     for (; *addrlist; addrlist++) {
   61         if (krb5_address_compare(context, addr, *addrlist))
   62             return TRUE;
   63     }
   64     return FALSE;
   65 }