Mercurial > hg > freeDiameter
view extensions/app_diameap/plugins.h @ 438:e7814e24e57b
Corrected compilation warnings on app_diameap
author | Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp> |
---|---|
date | Wed, 28 Jul 2010 15:59:39 +0900 |
parents | 0c6e50a5291d |
children |
line wrap: on
line source
/***************************************************************************************************** * Software License Agreement (BSD License) * Author : Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp> * * Copyright (c) 2009-2010, Souheil Ben Ayed, Teraoka Laboratory of Keio University, and the WIDE Project * All rights reserved. * * Redistribution and use of this software in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>. * * 4. Neither the name of Souheil Ben Ayed, Teraoka Laboratory of Keio University or the WIDE Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************************************/ #ifndef _PLUGINS_H #define _PLUGINS_H #include "libdiameap.h" #include "libcrypt.h" /* Macro that define the register functions of an EAP method */ #define REGISTER_METHOD(_methodName, _configFunction, _initFunction, _initPickUpFunction, _buildReqFunction, _getTimeoutFunction, _checkFunction, _processFunction, _isDoneFunction, _getKeyFunction, _unregisterFunction, _datafreeFunction ) \ static struct register_plugin *registerplugin = NULL; \ static int isregistered = 0; \ int diameap_plugin_register() { \ if (!isregistered){ \ registerplugin = malloc (sizeof(struct register_plugin)); \ if(registerplugin==NULL) \ fprintf(stderr,"[DiamEAP extension] Error in registering plug-in\t%s\n",strerror(errno)); \ memset(registerplugin, 0, sizeof(struct register_plugin)); \ if(_configFunction) registerplugin->configure=_configFunction; \ if(_initFunction) registerplugin->init=_initFunction; \ if(_initPickUpFunction) registerplugin->initPickUp=_initPickUpFunction; \ if(_buildReqFunction) registerplugin->buildReq=_buildReqFunction; \ if(_getTimeoutFunction) registerplugin->getTimeout=_getTimeoutFunction; \ if(_checkFunction) registerplugin->check=_checkFunction; \ if(_processFunction) registerplugin->process=_processFunction; \ if(_isDoneFunction) registerplugin->isDone=_isDoneFunction; \ if(_getKeyFunction) registerplugin->getKey=_getKeyFunction; \ if(_unregisterFunction) registerplugin->unregister=_unregisterFunction; \ if(_datafreeFunction) registerplugin->datafree=_datafreeFunction; \ isregistered++; \ }else{ \ fprintf(stderr, "Cannot register the " _methodName " plugin twice\n"); \ return EINVAL; \ } \ return 0; \ } \ int diameap_plugin_objects(struct register_plugin ** rplugin){ \ *rplugin=registerplugin; \ return 0; \ } \ #endif /*_PLUGINS_H*/