Commit Graph

477 Commits

Author SHA1 Message Date
Adrian Schmutzler 662bec1a16 Change GWinfo to store vpnmac instead of vpnif
This is required to uniquely find the relation between VPN and
bat after change of MAC adresses.

This requires changes to the MySQL database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-02-02 01:09:49 +01:00
Adrian Schmutzler 0dea6339e2 api/gwinfo: Stop filtering br-* interfaces
Keep br-* interfaces, throw away l2tp.
Seems like batctl gwl only shows br-* or fff*, but never l2tp*.

Seems to be required to support V1 gateways with L2TP.

The main impact on table size is done by l2tp*.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-02-02 01:04:49 +01:00
Adrian Schmutzler 9da232ac50 router.html: Fix code flow to provide JSON without reading stats
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-02-02 01:02:22 +01:00
Adrian Schmutzler 05c6af708f statistics.html: Replace clients per GW column by unknown routers
The clients per GW cannot by determined reliably in the
Monitoring. Thus, we remove the column and readd the previously
removed "unknown" column.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-02-02 01:02:00 +01:00
Adrian Schmutzler c71849efe4 router.html: /mac/<routermac> now supports GET parameters
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-02-02 01:01:03 +01:00
Adrian Schmutzler 58cc2e167f scripts/deletestats: Do not evaluate status in stats deletion
Previously, old stats had been only deleted if the router was
online. This required a join with the router table, which caused
locking issues when writing to this table by alfred request.

Now, we just delete old stats ignoring the router state, except
for the router_stats table, which is smaller and thus remains
as before.

In addition, this patch logs the number of rows affected.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-02-02 01:00:44 +01:00
Adrian Schmutzler 804ce80472 scripts/deletestats.py: Delete netif stats after 21 days
This adds an additional config value to set the deletion threshold
for netif data.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:09 +01:00
Adrian Schmutzler 59fcf2fa8f Changelog: Update
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:09 +01:00
Adrian Schmutzler 823858d981 scripts: Add deleteunlinked.py
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:09 +01:00
Adrian Schmutzler c605ffe2f0 statistics.html: Show MAC addresses for known gateways in list
This shows the VPN and batX addresses.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:09 +01:00
Adrian Schmutzler 0a2b8b9a8b statistics.html: Remove "unknown" column from gateway list
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:09 +01:00
Adrian Schmutzler a9912dccd2 statistics.html: Show details about selected gateway
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:09 +01:00
Adrian Schmutzler 452aa5a009 statistics.html: Provide sorted list of gateways
Gateways are listed alphabetically based on their name, then all
without name based on their MAC address.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:09 +01:00
Adrian Schmutzler ff0aeca1aa helpers: Enable search for gateways based on batX interface MACs
Introduces two new query parameters:
bat:<mac> looks for routers being aware of the specified gateway
batselected:<mac> looks for routers CONNECTED to the specified gw

Both variants support regex.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:09 +01:00
Adrian Schmutzler 669895cd7b router.html/statistics.html: Display gateway/batX where available
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:08 +01:00
Adrian Schmutzler 1d64dc3e25 statistics.html: Add logging of 500 errors
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:08 +01:00
Adrian Schmutzler 4f4452e06f db/*: Add missing commit to database
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:08 +01:00
Adrian Schmutzler 898c06d8c6 Introduce infrastructure to receive and process gateway information
This requires changes to the MySQL database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:08 +01:00
Adrian Schmutzler 516eb07924 stattools: Improve code for calculation of global/hood/gw stats
This replaces UPDATE IF SELECT ELSE INSERT by ON DUPLICATE KEY
UPDATE. In addition, queries have been consolidated by ordering
data in advance and then using executemany.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:08 +01:00
Adrian Schmutzler 2a515b94c7 config/routertools: Set minimum distance for data in router stats
This implement to different minimum distances in seconds for the
router stats in general and the netif stats in particular.

The values are chosen so that they are 30 secs. shorter than the
desired timespans of 5 and 10 minutes, to allow for fluctuation
in when data arrives.

This fixes the data density increase caused by V2 Hoods with two
gateways.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:08 +01:00
Adrian Schmutzler 70f2f0a8a3 statistics.html: Change link label for hood statistics
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:30:08 +01:00
Adrian Schmutzler ceddd7f636 Add gateway-specific statistics
This adds gateway stats which work similar to the detailed hood
statistics.

This requires changes to the MySQL database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:29:55 +01:00
Adrian Schmutzler 34a7c4c58e statistics.html: Add gateway overview
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:27:15 +01:00
Adrian Schmutzler d567dfd56d router.html: Add gateway links
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 12:27:07 +01:00
Adrian Schmutzler d7bdca4797 helpers: Enable search for gateways
Introduces two new query parameters:
gw:<mac> looks for routers being aware of the specified gateway
selected:<mac> looks for routers CONNECTED to the specified gw

Both variants support regex.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 00:21:17 +01:00
Adrian Schmutzler 386384212e statistics.html: Fix layout of upper right divs
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 00:21:17 +01:00
Adrian Schmutzler 0af1c76254 statistics.html: Consolidate code
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 00:21:11 +01:00
Adrian Schmutzler f12a3f5a3e api/alfred and router.html: Collect and show gateway information
This requires changes to the MySQL database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-15 00:10:29 +01:00
Adrian Schmutzler c3adf5fd68 api/alfred: Only log reboot if uptime difference greater than 5 min
If we have two gateways per hood, uptime may vary and cause
frequent logged reboots.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-13 16:46:45 +01:00
Adrian Schmutzler de7c5b2874 router.html: Highlight WiFi interfaces details
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-13 16:45:16 +01:00
Adrian Schmutzler 232e8fe6f0 scripts/calcglobalstats: Add marker at the end of logged durations
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2018-01-13 16:45:03 +01:00
Adrian Schmutzler 01e38d84ab Changelog: Update
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:21:08 +01:00
Adrian Schmutzler 03ef1a8f70 router.html: Make events scrollable to show more than five
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:21:08 +01:00
Adrian Schmutzler 9375c2f891 statistics.html: Adjust design of pie charts
Minimum percentage for firmware increased to 2 per cent, for
routers increased to 3 per cent.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:21:08 +01:00
Adrian Schmutzler d8db4b2f9d router.html: Clarify Report Router button text
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:21:08 +01:00
Adrian Schmutzler 55dc7b4ad5 Rename net_if from router_neighbor table to netif
This includes various changes throughout the code. Additionally,
some fields are reordered.

This requires a change of the MySQL table router_neighbor!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:21:08 +01:00
Adrian Schmutzler 39d9ddc9d0 api/alfred: Update router data instead of DELETE/INSERT
Previously, I just deleted all entries and recreated them again
with INSERT. Although this is simple to write and actually includes
less queries, it causes a lot more write IO. Since most of the
neighbors and interfaces do NOT change frequently, it is worth the
extra effort to delete only those really gone since the last
update.

Only br-mesh will normally have assigned IPv6 addresses, thus
we just delete all IPv6 adresses of the other ones.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:21:08 +01:00
Adrian Schmutzler 55f81c4295 api/alfred: Change calculation of rx/tx after reboot
Previously, on restart the traffic of the last period before
the restart was reused.

Now, we use the logged traffic divided by the uptime.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:19:24 +01:00
Adrian Schmutzler effcdf0a39 MySQL: Reduce field size for rx/tx in router_netif to uint32
This is just a change of the database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:18:26 +01:00
Adrian Schmutzler 858f419e54 api/alfred and router.html: Show WiFi data for netifs
This shows information about WiFi parameters (e.g. channel).

Except the Tx-Power, data is only available if a firmware with
a corresponding nodewatcher update is present (version 44).

This requires a change of the MySQL table router_netif!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:08:41 +01:00
Adrian Schmutzler ebe9c3afa1 MySQL: Remove net_if from router_neighbor primary key
Since all meshing interface have different MAC adresses, the
mac itself should be unique.

This is just a change of the database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:08:41 +01:00
Adrian Schmutzler 22be8633c5 MySQL: Make rx_bytes/tx_bytes in router_netif UNSIGNED
This is just a change of the database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:08:28 +01:00
Adrian Schmutzler 7ef6f47c4e routertools: Reorder fields in INSERT queries for router stats
This is a cosmetic change to realign the INSERTs to the database.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:04:12 +01:00
Adrian Schmutzler 82118eed92 MySQL: Reorder fields in stats_hood table
This is meant to reflect the order of the primary key.

This is just a change of the database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:04:12 +01:00
Adrian Schmutzler 069da3aac4 MySQL: Reorder fields in router stats tables
This is meant to reflect the order of the primary key.

This is just a change of the database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:04:12 +01:00
Adrian Schmutzler 47f43eab0d global/hood stats: Include orphaned routers in statistics
This requires a change of the database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:04:12 +01:00
Adrian Schmutzler 92bd81f56d MySQL: Change size of MAC address fields to CHAR(17)
This is just a change of the database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:04:12 +01:00
Adrian Schmutzler 58a3747be8 MySQL: Reduce field size for hood to VARCHAR(30)
This is just a change of the database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:04:12 +01:00
Adrian Schmutzler a44970425e MySQL: Reduce size of counters for global/hood stats
This is just a change of the database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:04:12 +01:00
Adrian Schmutzler 8b4ef93a17 MySQL: Change loadavg field size to float
This is just a change of the database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:04:12 +01:00
Adrian Schmutzler 3eb172bb70 MySQL: Reduce field size for router ID in all tables
This is just a change of the database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:04:12 +01:00
Adrian Schmutzler 87d7e345c8 MySQL: Reduce field size for rx/tx in router_stats_netif to uint32
This is just a change of the database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 18:04:00 +01:00
Adrian Schmutzler 58ce32e322 Change router_stats_netif to use ids for netifs
This introduces a serious of changes to code and database.

This patch requires changes to the MySQL database.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 17:18:22 +01:00
Adrian Schmutzler ec66c05361 api/nodelist: Fix condition for coordinates
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 17:15:54 +01:00
Adrian Schmutzler 60b6ada1f2 index.html: Fix HTML validity
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 17:15:38 +01:00
Adrian Schmutzler 23dd78d1da router.html: Fix HTML validity issue
Fixes #67.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 17:15:32 +01:00
Adrian Schmutzler 43280caee1 user.html: Fix HTML validity
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 17:15:18 +01:00
Adrian Schmutzler a6ecfae9b6 map: Show Coordinates if not clicking on router icon
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 17:14:19 +01:00
Adrian Schmutzler 71bb5a3a68 map: Show router popup only for selected layer
If KeyXchange v1 routers are not shown, their popup windows are
now also disabled (as the user would expect); same for v2.

Fixes #95.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-30 17:12:12 +01:00
Adrian Schmutzler 0f163c87ee MySQL: Add index for deletebit in router_stats_netif
This index drastically reduces the time required for the DELETE
commands, while the other commands are not affected to strongly.

This is mainly a change to the database.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:07:54 +01:00
Adrian Schmutzler 0052b87a0c config: 30 Events per router are stored instead of 20
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:07:36 +01:00
Adrian Schmutzler 9c900e2552 config: Router stats are stored for 30 days instead of 14
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:07:29 +01:00
Adrian Schmutzler 8c46e93ddd Changelog: Update
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:07:23 +01:00
Adrian Schmutzler bf4ea20c2e index.html: Update github link
Fixes #106

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:07:17 +01:00
Adrian Schmutzler 5e8e399a70 statistics.html: Filter hood when clicking sectors in pie charts
Fixes #107

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:07:07 +01:00
Adrian Schmutzler a3ee0edead routertools/alfred: Replace empty hostname
Fixes #109

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:06:59 +01:00
Adrian Schmutzler b5a33f6e70 resetpw: Fix variable name and tidy up
Fixes HTTP 500 error.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:06:53 +01:00
Adrian Schmutzler d26dda7044 MySQL: Re-add keys for router/hood in stats
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:06:42 +01:00
Adrian Schmutzler 8d9f14b954 MySQL: Reorder primary key fields for stats
Use time for first indexed field so it is indexed individually

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:06:37 +01:00
Adrian Schmutzler 032b7ce15e MySQL: Reduce size of netif fields to 15 (Linux limit)
This is mainly a change to the database

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:06:31 +01:00
Adrian Schmutzler c55b1d259d MySQL: Reduce size of MAC address fields to 20
This is mainly a change to the database

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:06:25 +01:00
Adrian Schmutzler 9ab707a214 MySQL: Apply changes leftover from modifications to db init files
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:06:16 +01:00
Adrian Schmutzler 6a6a2806f6 logout: Remove admin from session
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler 4f1bda0e83 user_info: Rearrange POST block
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler 63316c7046 user.html: Users should have the right to delete their own account
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler cf3d3eb790 user.html: Only show authorized options in pulldown
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler 4d3736b7aa user_info: Fix data reload from DB after changes
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler cea5c191a6 user.html: Display abuse properties and add ability to change it
Every user having abuse enabled will receive e-mails if routers
are reported.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler 85a6c49574 register: Block registration with empty fields
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler 083f3c3534 login: Allow e-mail address instead of user name
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler 782d4b4065 db/users: Make nickname and email UNIQUE
This is mainly a change to the database

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler 559ced0520 router.html: Only show authorized options in pulldown
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler 899061b6ce router.html: Use url_for also for domain name
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler 4389f4f11a router_info: Remove redundant user evaluation
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler ab400e1f01 Provide possibility to report routers
ATTENTION: Requires change in users database!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler 20e71afeb0 Provide possibility to ban routers
If routers are supposed to be removed from the Monitoring
permanently, they can now be banned based on their MAC address.

All admins can do that via the web interface.

ATTENTION: This requires a database update!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 17:03:27 +01:00
Adrian Schmutzler 818dc79b7d api/alfred: Remove old comments
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 16:44:07 +01:00
Adrian Schmutzler ae3b065f63 api/alfred: Fix alignment of mysql.close()
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 16:43:52 +01:00
Adrian Schmutzler 672b8d55fc Changelog: Update
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-21 16:42:58 +01:00
Adrian Schmutzler 41ef7f281a api.py/application.py: Write extended information to full log
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 20:25:16 +01:00
Adrian Schmutzler 636a8d3baa routertools: Use custom file for full log, do not write to syslog
It is easier to evaluate a specific log which is not crowded with
messages from other programs

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 20:25:16 +01:00
Adrian Schmutzler 1c80bafc10 routertools/alfred: New routers are always 'online'
Since other states are only evaluated correctly on a CHANGE, we
set status to 'online' for new routers, so that the second call
can log unknown events.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 20:25:16 +01:00
Adrian Schmutzler 69fbcd3181 routertools/alfred: Catch malformatted coordinates
The puts a router with malformatted coordinates into the default
hood.

Note:
For a comma instead of dot (lat=48,3), the Monitoring will assign
default, while the keyserver will use floor(), resulting in
lat=48.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 20:25:16 +01:00
Adrian Schmutzler 53c9dc11fd routertools/alfred: Improve exception logging
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 20:25:16 +01:00
Adrian Schmutzler 7a678a73c6 routertools/alfred: Set status earlier
This prevent a variable-not-found error when status is not set
in except statement.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 20:25:16 +01:00
Adrian Schmutzler 48bf9c008b calcglobalstats/deletestats: Improve duration logging and output
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 20:25:00 +01:00
Adrian Schmutzler 80f20f4d0c routertools/deletestats: Split and improve netif stats deletion
This patch reorganizes the deletion of old stats:
- Commits are done after each step
- Netif stats deletion is split into UPDATE and DELETE
- Delays are added, to reduce locking

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 20:04:10 +01:00
Adrian Schmutzler 7e821b2ae7 config: Global/hood stats are stored for an entire year
Database demand for those stats is relatively low, so they can be
stored excessively.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:52:14 +01:00
Adrian Schmutzler 20eedde52e config.py: Add explanation for options
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:52:08 +01:00
Adrian Schmutzler f52af65c1c routertools/config: Add minimum time difference for router stats
This prevents errors due to the same router being sent twice in
the same second.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:52:02 +01:00
Adrian Schmutzler 9e6e3c8dbf routertools/alfred: Minimize time without router_netif data
Rearrange queries to have a minimum time where netifs for router
are not present.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:51:49 +01:00
Adrian Schmutzler a994ec114a MySQL stats: Convert from datetime to int
DB scripts still need to be updated.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:49:46 +01:00
Adrian Schmutzler ce4193556a router.html: Add permalink
This is fixed to the br-mesh address. If a router has no br-mesh,
no perma-link is displayed.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:46:46 +01:00
Adrian Schmutzler f56d70ea55 application.py: Introduce /mac/<routermac> URL for shorter links
The behavior is equivalent to get_router_by_mac, just shorter.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:46:06 +01:00
Adrian Schmutzler e37214eb91 helpers: Enable search for routers by neighbors
If neighbor:<mac-address> or neighbour:<mac-address> is searched,
the routers having this neighbor are returned.

Regex is enabled.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:45:46 +01:00
Adrian Schmutzler 42a0a016a6 bootstrap.html: Add meta-tag google notranslate
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:45:32 +01:00
Adrian Schmutzler 8b81445991 bootstrap.html: Add content language
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:45:26 +01:00
Adrian Schmutzler 8d8436c7f7 mysqltools: Use UTF8 in mysqldb module
The MySQLdb python module needs this explicitly, otherwise it
defaults to latin-1.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:45:03 +01:00
Adrian Schmutzler a1024baea0 routertools/alfred: Recognize MySQL lock as specific exception
This will not change the router status to unknown

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:44:33 +01:00
Adrian Schmutzler 4fa16a738a api/alfred: Get IP address of alfred senders
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:41:59 +01:00
Adrian Schmutzler e4c1b17801 maptools.py: Only show best connection based on quality in map
Fixes #92

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:41:07 +01:00
Adrian Schmutzler d5043afb71 user.html: Replace spaces in user name to support query string
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:40:24 +01:00
Adrian Schmutzler 6b24fc89fd helpers: Enable regex for user nickname
Fixes link from user detail page already containing regex

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-12-10 19:40:16 +01:00
Adrian Schmutzler d2789a51df statistics.html: Increase y-limit for online/offline graph
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-23 22:12:03 +01:00
Adrian Schmutzler bd4495e660 statistics.html: Add total value to routers graph
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-23 22:12:03 +01:00
Adrian Schmutzler 7b4aaa2b50 statistics.html: Display less new routers and realign stats
This moves the online/offline and client stats to the right side.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-23 22:11:42 +01:00
Adrian Schmutzler d0d173d935 Introduce debugging function
This adds a timestamp to all debug outputs

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-23 22:02:27 +01:00
Adrian Schmutzler d71d35af10 query string: Use beginning and end markers
Since we use regex for the query string, we have to set markers
for beginning and end when we want to match only the whole field.

Fixes #85

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-23 22:02:16 +01:00
Adrian Schmutzler 17ea9274bb config: Router stats are stored for 14 days instead of 7
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-23 22:01:51 +01:00
Adrian Schmutzler 846f66281e routertools: Don't delete old stats of offline routers
With this patch, router stats are only deleted if the router
is online or missing in the router table.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-23 22:01:44 +01:00
Adrian Schmutzler 42c78f1079 routertools: Remove commented old code
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-23 22:01:29 +01:00
Adrian Schmutzler cf8b841c6a router_list.html/user.html: Show router reset in list
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-23 22:00:36 +01:00
Adrian Schmutzler 8f04e13c24 routertools/router.html: Display warning for lost coordinates
Warning: This requires a change of the MySQL table 'router'

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-23 21:59:30 +01:00
Adrian Schmutzler ebb4589301 routertools: Remember settings after router reset
This restores the behavior before the MySQL conversion: If a
router is reset, the new (empty) values are not written to
the variables, instead the old ones are kept.

In contrast to the old setting, however, we still do reset the
hood.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-23 21:56:35 +01:00
Adrian Schmutzler 7f81bff24b routertools: Don't use old coordinates for hood assignment
If no lat/lng or hood is sent, the device should go to Default.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-23 21:56:18 +01:00
Adrian Schmutzler 07208b6f5c routertools: Reorganize parsed data from router XML
Since we do not use MongoDB anymore, the structure of the parsed
data in router_update can be simplified to a less nested scheme.

In addition to that, directory keys have been adjusted to those
in MySQL. This prevents typos and errors.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-23 21:48:48 +01:00
Adrian Schmutzler 6984848203 helpers: Reenable search for community
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-20 11:49:01 +01:00
Adrian Schmutzler e20d37edf9 routertools: Write exceptions for parsing routers to file
Since exceptions during parsing a router's alfred data are
caught, you do not learn about the reasons.

Thus, this writes some information to a file.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-20 11:48:55 +01:00
Adrian Schmutzler 8ff508f211 routertools: Remove leftover from debugging
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-20 11:48:49 +01:00
Adrian Schmutzler 7eed4a257c apidoc.html: Add documentation of remaining APIs
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-20 11:45:44 +01:00
Adrian Schmutzler 58b6bc34f9 helpers/api: Fix MAC search
This fixes searching for MAC addresses in the router list and
via api/get_router_by_mac/

Additionally, regex is enabled for MAC addresses.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-19 15:41:19 +01:00
Adrian Schmutzler b2541fe40e api/alfred: Write time and duration of alfred calls to file
Attention: This contains a hardcoded path!

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-19 15:40:08 +01:00
Adrian Schmutzler af545d8194 config: Introduce path for debug output
Includes update of file names for debug files.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-19 15:36:43 +01:00
Adrian Schmutzler 5e75f9cad0 config: Move config to a single, separate file
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-19 15:30:39 +01:00
Adrian Schmutzler 5d8e1f9fce Changelog: Update
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-19 15:26:46 +01:00
Adrian Schmutzler 595810150c routertools: Reduce offline delay to 15 minutes
This is possible due to the optimized alfred proxy cron
triggers.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-19 15:26:35 +01:00
Adrian Schmutzler 9fc96ea103 filters.py: Change blue color for L3-Links and neighbors
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-19 15:24:52 +01:00
Adrian Schmutzler cc61b43316 router.html: Sort neighbors by quality
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-19 15:24:39 +01:00
Adrian Schmutzler 4f4afeb69f router.html: Show neighbors without associated router
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-19 15:24:30 +01:00
Adrian Schmutzler 8f0ac9520e application.py: Remove debug output for user page
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-19 15:21:20 +01:00
Adrian Schmutzler 3604b4f9b8 Changelog: Introduce changelog
This feature is planned to be permanent and updated.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 20:43:35 +01:00
Adrian Schmutzler 46266c9cb5 Show orphans in statistics
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 20:43:08 +01:00
Adrian Schmutzler 5be67936d6 Use different colors for router dots of v1 and v2
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 20:42:07 +01:00
Adrian Schmutzler 9e5965054d Remove mapnik/mkcsv.py
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 20:42:00 +01:00
Adrian Schmutzler f2f8538500 Rename hoodsv2 to hoods_v2 for consistency
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 20:41:52 +01:00
Adrian Schmutzler 73895af3d9 Separate hoods into layers
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 20:41:46 +01:00
Adrian Schmutzler 3fd731a5a2 Introduced orphaned state between offline and deletion
After 7 days of being offline, a router enters the orphaned
state with a grey icon. It is only deleted after a longer period
of 180 days.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 20:41:38 +01:00
Adrian Schmutzler 6f61cc6fdc Optimize MySQL commit for /api/alfred plus some debugging
Signed-off-by: Adrian Schmutzler <adsc@monitoring.freifunk-franken.de>
2017-11-16 20:40:45 +01:00
Adrian Schmutzler 39bf2032f4 routertools: Aggregate INSERT commands using executemany
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 20:37:26 +01:00
Adrian Schmutzler 39ab0b1f7c application.py: Fix left-over cur reference
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 20:35:49 +01:00
Adrian Schmutzler 8dc3633246 Fix missing timezone awareness of immutable data types
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 15:05:24 +01:00
Adrian Schmutzler a65873c2ee Global stats put into separate scripts and run by cron
Most of the processes is executed every five minutes, but
deleting can be done only once per day ...

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 15:00:12 +01:00
Adrian Schmutzler ece82c44f4 routertools: Remove direct references to mysql cursor
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 14:50:16 +01:00
Adrian Schmutzler bf1d1b8b2a router.html: Fix long loading times
The mysql queries had been executed in a for loop, this is
moved to a single query now.

Side effect may be a little more JavaScript execution time.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 14:44:28 +01:00
Adrian Schmutzler 60501ac775 router.html: Fix omitting coordinates if not set
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 00:07:31 +01:00
Adrian Schmutzler 9d167bdb86 Respect case in database and code
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 00:06:25 +01:00
Adrian Schmutzler 003fcbcebe routertools/stattools: Implement default hood as str "Default"
If the default is NULL (as previously), we have ugly problems
with indexing and queries. To circumvent this, the hood is
set to "Default" right at the beginning.

For old data, we add an if to the hood stats calculation.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 00:05:48 +01:00
Adrian Schmutzler 48cb9f0033 routertools: Remove lower() for hood name
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 00:04:47 +01:00
Adrian Schmutzler 3be0cd12b3 helpers: Treat spaces in query string more correctly
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 00:04:09 +01:00
Adrian Schmutzler a16c50124c Reintroduce regex for search strings in router list
Includes tidying-up query string helpers

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 00:03:40 +01:00
Adrian Schmutzler 92cd0e00a8 routertools: Treat missing XML elements better
This particularly fixes the case of missing coordinates.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 00:02:03 +01:00
Adrian Schmutzler e34daa118d Migrate TileStache to python3
Requires TileStache to be in absolute path

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 00:01:49 +01:00
Adrian Schmutzler 9a32c7bffd Delete old router events
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 00:01:26 +01:00
Adrian Schmutzler 5262a4e14f Provide fffconfig output option for routers
If ?fffconfig is specified after a routers ID, a config file
with the router's data is return. This can directly be copied
to /etc/config/fff on the device and thus easily recover a
lost configuration.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 00:01:18 +01:00
Adrian Schmutzler 412203a946 api: Add wifianalall (all hoods)
Puts reused code into a helper function

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 00:01:01 +01:00
Adrian Schmutzler 87093a9066 Add hood-specific statistics
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 00:00:48 +01:00
Adrian Schmutzler e3fe995407 MySQL: alpha3
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-11-16 00:00:07 +01:00
Dominik Heidler 1b4ae0fe51 Merge pull request #75 from adridolf/mapv2
fff-map: Add layer for KeyExchange v2
2017-10-16 12:10:00 +02:00
Adrian Schmutzler 78a8a1b65e fff-map: Add layer for KeyExchange v2
Draft version. On my local setup, I had to create CSVs manually
with mkcsv.py and copy them to /var/...

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-10-16 12:07:34 +02:00
Dominik Heidler 870785ede8 Merge pull request #74 from adridolf/ulalink
Use ULA for WebUI link
2017-10-14 16:47:04 +02:00
Adrian Schmutzler 3d4d005a17 Use ULA for WebUI link
For v2-hoods, the ULA should be used, which enables routing across
hoods.

Fixes #72

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-10-14 15:11:56 +02:00
Adrian Schmutzler 88e040af00 No legacy anymore: Fix missing firmware
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-10-14 14:59:37 +02:00
Dominik Heidler 547416ae9c No legacy anymore 2017-10-07 23:07:04 +02:00
Dominik Heidler 058bed9a2e Implement loadavg graph data collection for #55 2017-09-11 16:31:57 +02:00
Adrian Schmutzler fc4e4f3026 Add loadavg graph for routers
Fixes #55

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-09-10 12:24:36 +02:00
Dominik Heidler f51d0ae5fd Add index for "created" routerdb field (fixes #65) 2017-08-31 13:16:56 +02:00
Dominik Heidler f8c5913ad1 Commit unstaged changes from production instance 2017-08-21 11:49:26 +02:00
Adrian Schmutzler bd855abd0d Add explanation page for API functions
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-08-19 02:52:10 +02:00
Adrian Schmutzler b013533dfe Add API script to output JSON list of routers with MAC address
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-08-18 14:38:57 +02:00
Dominik Heidler 8f7a55042a Fix code style 2017-08-18 14:24:20 +02:00
Adrian Schmutzler 5f65d38908 Add WifiAnalyzer alias file output
Syntax: /api/wifianal/<hood>

This returns raw text.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-08-18 13:20:47 +02:00
Adrian Schmutzler 2a3cd94619 Harmonize tab style in api.py
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-08-17 23:36:06 +02:00
Dominik Heidler 96a8466e7a Merge pull request #58 from adridolf/consistent_hoodnames
Make capitalization and spelling of hoods consistent
2017-07-25 10:51:19 +02:00
Christian Dresel 216b0ec801 Projekt Hoodteilung extremo #9
Add Hood Erlenbach
2017-07-25 09:20:24 +02:00
Adrian Schmutzler 46dbde5c72 Make capitalization and spelling of hoods consistent
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-07-24 23:49:07 +02:00
Christian Dresel a3115c54d0 Projekt Hoodteilung extremo #8
Add Hood Coburg
2017-07-20 18:16:03 +02:00
Christian Dresel db4cd7d57f Projekt Hoodteilung extremo #7
Add Hood Lauf
2017-07-20 15:16:38 +02:00
Christian Dresel a1e7cf2650 Projekt Hoodteilung extremo #6
Add Hood Ebern
Re-positioned Hood Aschaffenburg
2017-07-19 17:10:17 +02:00
Christian Dresel 3e567ba07a Projekt Hoodteilung extremo #5
Add Hood Ebern
HoodID 25 is reserved for Coburg, it is created in the next steps
2017-07-17 20:31:34 +02:00
Christian Dresel 096c3a48fa Projekt Hoodteilung extremo #4
Re-positioned Hood Markredwitz
Re-positioned Hood Hof
Add Hood Fichtelberg
Add Hood Rehau
2017-07-17 16:20:19 +02:00
Christian Dresel 12384f2f5a Projekt Hoodteilung extremo #3
Add Hood Bayreuth
HoodID 21 is reserved for Lauf, it is created in the next steps
2017-07-17 10:56:43 +02:00
Christian Dresel e15c8908bf Projekt Hoodteilung extremo #2
Add Hood Ebermannstadt
2017-07-16 22:34:32 +02:00
Christian Dresel d9e70533ca Projekt Hoodteilung extremo #1
Re-positioned Hood Adelsdorf
Re-positioned Hood Forchheim
Add Hood ErlangenWest
2017-07-16 11:55:10 +02:00
Adrian Schmutzler 0ac862411a Set WAN uplink based on new nodewatcher xml entry and for L2TP
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2017-06-17 21:48:08 +02:00
Steffen Pankratz 93d0ab13c7 Added FFF link to nav bar (fixes #44)
Signed-off-by: Steffen Pankratz <kratz00@gmx.de>
2017-06-12 19:29:42 +02:00
moexe 576c8dd0c0 adding hood Schweinfurt to hoods.py 2017-05-19 22:56:07 +02:00
Steffen Pankratz b1b6ed540f Fixed map display in Internet Explorer 11
Signed-off-by: Steffen Pankratz <kratz00@gmx.de>
2017-05-09 21:35:28 +02:00
Steffen Pankratz 37f47eabdb Removed padding for link local addresses
See https://mantis.freifunk-franken.de/view.php?id=42 for more information.

Signed-off-by: Steffen Pankratz <kratz00@gmx.de>
2017-05-08 19:02:57 +02:00
Steffen Pankratz 3318794d0f Added support for layer 3 links (fixes #38)
Signed-off-by: Steffen Pankratz <kratz00@gmx.de>
2017-04-17 13:31:31 +02:00
Steffen Pankratz 138c8c81b8 Added hood Adelsdorf.
Signed-off-by: Steffen Pankratz <kratz00@gmx.de>
2017-03-23 19:24:49 +01:00