Commit Graph

5 Commits

Author SHA1 Message Date
Andrea Barberio
8bd5261895 Register plugins explicitly
Fixes #45
Do not use `init()` magic to register plugins, do it explicitly. This is
done by requiring plugins to declare a populated `Plugin` symbol of type
`plugins.Plugin`.

Signed-off-by: Andrea Barberio <insomniac@slackware.it>
2020-02-07 15:58:02 +00:00
Andrea Barberio
4861d2ce08 Added license headers
Signed-off-by: Andrea Barberio <insomniac@slackware.it>
2019-09-18 13:59:16 +01:00
Andrea Barberio
b9d7c74d44 Logger: add prefix to log lines
This is useful to automatically provide context about what component of
the framework is emitting a log line.

Example output:
```
$ go build && sudo ./coredhcp
[2019-08-25T21:39:26+01:00]  INFO plugins: Registering plugin "dns"
[2019-08-25T21:39:26+01:00]  INFO plugins: Registering plugin "file"
[2019-08-25T21:39:26+01:00]  INFO plugins: Registering plugin "netmask"
[2019-08-25T21:39:26+01:00]  INFO plugins: Registering plugin "range"
[2019-08-25T21:39:26+01:00]  INFO plugins: Registering plugin "router"
[2019-08-25T21:39:26+01:00]  INFO plugins: Registering plugin "server_id"
[2019-08-25T21:39:26+01:00]  INFO config: Loading configuration
[2019-08-25T21:39:26+01:00]  INFO config: DHCPv4: found plugin `server_id` with 1 args: [10.10.10.1]
[2019-08-25T21:39:26+01:00]  INFO config: DHCPv4: found plugin `dns` with 2 args: [8.8.8.8 8.8.4.4]
[2019-08-25T21:39:26+01:00]  INFO config: DHCPv4: found plugin `router` with 1 args: [10.10.10.1]
[2019-08-25T21:39:26+01:00]  INFO config: DHCPv4: found plugin `netmask` with 1 args: [255.255.255.0]
[2019-08-25T21:39:26+01:00]  INFO config: DHCPv4: found plugin `range` with 4 args: [leases.txt 10.10.10.100 10.10.10.200 60s]
[2019-08-25T21:39:26+01:00]  INFO coredhcp: Loading plugins...
[2019-08-25T21:39:26+01:00]  INFO coredhcp: DHCPv4: loading plugin `server_id`
[2019-08-25T21:39:26+01:00]  INFO plugins/server_id: plugins/server_id: loading `server_id` plugin for DHCPv4
[2019-08-25T21:39:26+01:00]  INFO coredhcp: DHCPv4: loading plugin `dns`
[2019-08-25T21:39:26+01:00]  INFO plugins/dns: loaded plugin for DHCPv4.
[2019-08-25T21:39:26+01:00]  INFO plugins/dns: loaded 2 DNS servers.
[2019-08-25T21:39:26+01:00]  INFO coredhcp: DHCPv4: loading plugin `router`
[2019-08-25T21:39:26+01:00]  INFO plugins/router: plugins/router: loaded plugin for DHCPv4.
[2019-08-25T21:39:26+01:00]  INFO plugins/router: plugins/router: loaded 1 router IP addresses.
[2019-08-25T21:39:26+01:00]  INFO coredhcp: DHCPv4: loading plugin `netmask`
[2019-08-25T21:39:26+01:00]  INFO plugins/netmask: plugins/netmask: loaded plugin for DHCPv4.
[2019-08-25T21:39:26+01:00]  INFO plugins/netmask: plugins/netmask: loaded client netmask
[2019-08-25T21:39:26+01:00]  INFO coredhcp: DHCPv4: loading plugin `range`
[2019-08-25T21:39:26+01:00]  INFO plugins/range: plugins/range: reading leases from leases.txt
[2019-08-25T21:39:26+01:00]  INFO plugins/range: plugins/range: loaded 1 leases from leases.txt
[2019-08-25T21:39:26+01:00]  INFO coredhcp: Starting DHCPv4 listener on 0.0.0.0:67
[2019-08-25T21:39:26+01:00]  INFO coredhcp: Waiting
```

Signed-off-by: Andrea Barberio <insomniac@slackware.it>
2019-08-26 09:49:10 +02:00
Pete Birley
067bbd477f Updated example plugin to behave the same for IPv4 as IPv6
This patch updates the example plugin to behave the same for IPv4
as it does for IPv6.

Signed-off-by: Pete Birley <pete@port.direct>
2019-02-18 11:36:32 +00:00
Andrea Barberio
7f6805c719 Added example plugin 2019-01-10 12:52:14 +00:00