plugin: dot_draw: readme: make it clear, that it only opens an IPv4-socket, so a...
[olsrd.git] / src / olsrd_plugin.h
1
2 /*
3  * Copyright (c) 2005, Bruno Randolf <bruno.randolf@4g-systems.biz>
4  * Copyright (c) 2004, Andreas Tonnesen(andreto-at-olsr.org)
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * * Redistributions of source code must retain the above copyright notice,
12  *   this list of conditions and the following disclaimer.
13  * * Redistributions in binary form must reproduce the above copyright notice,
14  *   this list of conditions and the following disclaimer in the documentation
15  *   and/or other materials provided with the distribution.
16  * * Neither the name of the UniK olsr daemon nor the names of its contributors
17  *   may be used to endorse or promote products derived from this software
18  *   without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
22  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
23  * IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
24  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
25  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
27  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
28  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
29  * OF THE POSSIBILITY OF SUCH DAMAGE.
30  *
31  */
32
33 /*
34  * Example plugin for olsrd.org OLSR daemon
35  * Only the bare minimum
36  */
37
38 #ifndef _OLSRD_PLUGIN
39 #define _OLSRD_PLUGIN
40
41 /* Define the most recent version */
42 #define MOST_RECENT_PLUGIN_INTERFACE_VERSION            5
43 #define LAST_SUPPORTED_PLUGIN_INTERFACE_VERSION         4
44
45 /****************************************************************************
46  *                Functions that the plugin MUST provide                    *
47  ****************************************************************************/
48
49 /**
50  * Plugin interface version
51  * Used by main olsrd to check plugin interface version
52  */
53 int olsrd_plugin_interface_version(void);
54
55 /**
56  * Initialize plugin
57  * Called after all parameters are passed
58  */
59 int olsrd_plugin_init(void);
60
61 /* Interface version 4 */
62
63 /**
64  * Register parameters from config file
65  * Called for all plugin parameters
66  */
67 int olsrd_plugin_register_param(char *key, char *value);
68
69 /* Interface version 5 */
70
71 typedef union {
72   unsigned int ui;
73   char *pc;
74 } set_plugin_parameter_addon;
75
76 typedef int set_plugin_parameter(const char *value, void *data, set_plugin_parameter_addon addon);
77
78 struct olsrd_plugin_parameters {
79   const char *name;
80   set_plugin_parameter *set_plugin_parameter;
81   void *data;
82   set_plugin_parameter_addon addon;
83 };
84
85 /**
86  * Delivers the (address of the) table and the size of the parameter description
87  */
88 void olsrd_get_plugin_parameters(const struct olsrd_plugin_parameters **params, int *size);
89
90 #endif /* _OLSRD_PLUGIN */
91
92 /*
93  * Local Variables:
94  * mode: c
95  * style: linux
96  * c-basic-offset: 4
97  * indent-tabs-mode: nil
98  * End:
99  */