quagga: show plugin name and Git SHA in plugin constructor
[olsrd.git] / lib / quagga / src / olsrd_plugin.c
1 /*
2  * OLSRd Quagga plugin
3  *
4  * Copyright (C) 2006-2008 Immo 'FaUl' Wehrenberg <immo@chaostreff-dortmund.de>
5  * Copyright (C) 2007-2010 Vasilis Tsiligiannis <acinonyxs@yahoo.gr>
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 2 as
9  * published by the Free Software Foundation or - at your option - under
10  * the terms of the GNU General Public Licence version 2 but can be
11  * linked to any BSD-Licenced Software with public available sourcecode
12  *
13  */
14
15 /* -------------------------------------------------------------------------
16  * File               : olsrd_plugin.c
17  * Description        : functions to setup plugin
18  * ------------------------------------------------------------------------- */
19
20 #include "olsrd_plugin.h"
21 #include "scheduler.h"
22 #include "defs.h"
23 #include "olsr.h"
24 #include "builddata.h"
25
26 #include "quagga.h"
27 #include "plugin.h"
28 #include "parse.h"
29
30 #define PLUGIN_NAME              "OLSRD quagga plugin"
31 #define PLUGIN_INTERFACE_VERSION 5
32
33 static void __attribute__ ((constructor)) my_init(void);
34 static void __attribute__ ((destructor)) my_fini(void);
35
36 int
37 olsrd_plugin_interface_version(void)
38 {
39
40   return PLUGIN_INTERFACE_VERSION;
41 }
42
43 static const struct olsrd_plugin_parameters plugin_parameters[] = {
44   {.name = "Redistribute",.set_plugin_parameter = &zplugin_redistribute,},
45   {.name = "ExportRoutes",.set_plugin_parameter = &zplugin_exportroutes,},
46   {.name = "Distance",.set_plugin_parameter = &zplugin_distance,},
47   {.name = "LocalPref",.set_plugin_parameter = &zplugin_localpref,},
48   {.name = "SockPath",.set_plugin_parameter = &zplugin_sockpath,.addon = {PATH_MAX},},
49   {.name = "Port",.set_plugin_parameter = &zplugin_port,},
50   {.name = "Version",.set_plugin_parameter = &zplugin_version,},
51 };
52
53 void
54 olsrd_get_plugin_parameters(const struct olsrd_plugin_parameters **params, int *size)
55 {
56
57   *params = plugin_parameters;
58   *size = ARRAYSIZE(plugin_parameters);
59
60 }
61
62 int
63 olsrd_plugin_init(void)
64 {
65
66   olsr_start_timer(1 * MSEC_PER_SEC, 0, OLSR_TIMER_PERIODIC, &zparse, NULL, 0);
67
68   return 0;
69 }
70
71 static void
72 my_init(void)
73 {
74   /* Print plugin info to stdout */
75   olsr_printf(0, "%s (%s)\n", PLUGIN_NAME, git_descriptor);
76
77   zebra_init();
78
79 }
80
81 static void
82 my_fini(void)
83 {
84
85   zebra_fini();
86
87 }
88
89 /*
90  * Local Variables:
91  * c-basic-offset: 2
92  * indent-tabs-mode: nil
93  * End:
94  */