1*b7579f77SDag-Erling Smørgrav /* 2*b7579f77SDag-Erling Smørgrav * util/module.c - module interface 3*b7579f77SDag-Erling Smørgrav * 4*b7579f77SDag-Erling Smørgrav * Copyright (c) 2007, NLnet Labs. All rights reserved. 5*b7579f77SDag-Erling Smørgrav * 6*b7579f77SDag-Erling Smørgrav * This software is open source. 7*b7579f77SDag-Erling Smørgrav * 8*b7579f77SDag-Erling Smørgrav * Redistribution and use in source and binary forms, with or without 9*b7579f77SDag-Erling Smørgrav * modification, are permitted provided that the following conditions 10*b7579f77SDag-Erling Smørgrav * are met: 11*b7579f77SDag-Erling Smørgrav * 12*b7579f77SDag-Erling Smørgrav * Redistributions of source code must retain the above copyright notice, 13*b7579f77SDag-Erling Smørgrav * this list of conditions and the following disclaimer. 14*b7579f77SDag-Erling Smørgrav * 15*b7579f77SDag-Erling Smørgrav * Redistributions in binary form must reproduce the above copyright notice, 16*b7579f77SDag-Erling Smørgrav * this list of conditions and the following disclaimer in the documentation 17*b7579f77SDag-Erling Smørgrav * and/or other materials provided with the distribution. 18*b7579f77SDag-Erling Smørgrav * 19*b7579f77SDag-Erling Smørgrav * Neither the name of the NLNET LABS nor the names of its contributors may 20*b7579f77SDag-Erling Smørgrav * be used to endorse or promote products derived from this software without 21*b7579f77SDag-Erling Smørgrav * specific prior written permission. 22*b7579f77SDag-Erling Smørgrav * 23*b7579f77SDag-Erling Smørgrav * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24*b7579f77SDag-Erling Smørgrav * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 25*b7579f77SDag-Erling Smørgrav * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 26*b7579f77SDag-Erling Smørgrav * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE 27*b7579f77SDag-Erling Smørgrav * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 28*b7579f77SDag-Erling Smørgrav * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 29*b7579f77SDag-Erling Smørgrav * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 30*b7579f77SDag-Erling Smørgrav * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 31*b7579f77SDag-Erling Smørgrav * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 32*b7579f77SDag-Erling Smørgrav * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33*b7579f77SDag-Erling Smørgrav * POSSIBILITY OF SUCH DAMAGE. 34*b7579f77SDag-Erling Smørgrav */ 35*b7579f77SDag-Erling Smørgrav /** 36*b7579f77SDag-Erling Smørgrav * \file 37*b7579f77SDag-Erling Smørgrav * Implementation of module.h. 38*b7579f77SDag-Erling Smørgrav */ 39*b7579f77SDag-Erling Smørgrav 40*b7579f77SDag-Erling Smørgrav #include "config.h" 41*b7579f77SDag-Erling Smørgrav #include "util/module.h" 42*b7579f77SDag-Erling Smørgrav 43*b7579f77SDag-Erling Smørgrav const char* 44*b7579f77SDag-Erling Smørgrav strextstate(enum module_ext_state s) 45*b7579f77SDag-Erling Smørgrav { 46*b7579f77SDag-Erling Smørgrav switch(s) { 47*b7579f77SDag-Erling Smørgrav case module_state_initial: return "module_state_initial"; 48*b7579f77SDag-Erling Smørgrav case module_wait_reply: return "module_wait_reply"; 49*b7579f77SDag-Erling Smørgrav case module_wait_module: return "module_wait_module"; 50*b7579f77SDag-Erling Smørgrav case module_restart_next: return "module_restart_next"; 51*b7579f77SDag-Erling Smørgrav case module_wait_subquery: return "module_wait_subquery"; 52*b7579f77SDag-Erling Smørgrav case module_error: return "module_error"; 53*b7579f77SDag-Erling Smørgrav case module_finished: return "module_finished"; 54*b7579f77SDag-Erling Smørgrav } 55*b7579f77SDag-Erling Smørgrav return "bad_extstate_value"; 56*b7579f77SDag-Erling Smørgrav } 57*b7579f77SDag-Erling Smørgrav 58*b7579f77SDag-Erling Smørgrav const char* 59*b7579f77SDag-Erling Smørgrav strmodulevent(enum module_ev e) 60*b7579f77SDag-Erling Smørgrav { 61*b7579f77SDag-Erling Smørgrav switch(e) { 62*b7579f77SDag-Erling Smørgrav case module_event_new: return "module_event_new"; 63*b7579f77SDag-Erling Smørgrav case module_event_pass: return "module_event_pass"; 64*b7579f77SDag-Erling Smørgrav case module_event_reply: return "module_event_reply"; 65*b7579f77SDag-Erling Smørgrav case module_event_noreply: return "module_event_noreply"; 66*b7579f77SDag-Erling Smørgrav case module_event_capsfail: return "module_event_capsfail"; 67*b7579f77SDag-Erling Smørgrav case module_event_moddone: return "module_event_moddone"; 68*b7579f77SDag-Erling Smørgrav case module_event_error: return "module_event_error"; 69*b7579f77SDag-Erling Smørgrav } 70*b7579f77SDag-Erling Smørgrav return "bad_event_value"; 71*b7579f77SDag-Erling Smørgrav } 72