gsasl  1.8.0
supportp.c
Go to the documentation of this file.
00001 /* supportp.c --- Tell if a specific mechanism is supported.
00002  * Copyright (C) 2002-2012 Simon Josefsson
00003  *
00004  * This file is part of GNU SASL Library.
00005  *
00006  * GNU SASL Library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public License
00008  * as published by the Free Software Foundation; either version 2.1 of
00009  * the License, or (at your option) any later version.
00010  *
00011  * GNU SASL Library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License License along with GNU SASL Library; if not, write to the
00018  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00019  * Boston, MA 02110-1301, USA.
00020  *
00021  */
00022 
00023 #include "internal.h"
00024 
00025 static int
00026 _gsasl_support_p (Gsasl_mechanism * mechs, size_t n_mechs, const char *name)
00027 {
00028   size_t i;
00029 
00030   for (i = 0; i < n_mechs; i++)
00031     if (name && strcmp (name, mechs[i].name) == 0)
00032       return 1;
00033 
00034   return 0;
00035 }
00036 
00048 int
00049 gsasl_client_support_p (Gsasl * ctx, const char *name)
00050 {
00051   return _gsasl_support_p (ctx->client_mechs, ctx->n_client_mechs, name);
00052 }
00053 
00065 int
00066 gsasl_server_support_p (Gsasl * ctx, const char *name)
00067 {
00068   return _gsasl_support_p (ctx->server_mechs, ctx->n_server_mechs, name);
00069 }