Commit graph

124 commits

Author SHA1 Message Date
Daniel Danzberger
a377f7dfd2 tr181: Remove unused functions
This fixes 'defined but not used' compiler warnings

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-03-10 13:36:37 +01:00
Daniel Danzberger
0460307fb4 Only export symbols to the library that belong to the API interface
This commit makes all symbols that are not part of the API Interface,
or used only in the object files where they are defined, static.

Causing the following benefits:
 - The compiler can resolve functions for better performance
 - The library size is decreased

NOTE: Spec file generators need to be adjusted for newer spec's to not do the same mistakes again

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-03-09 21:23:57 +01:00
Daniel Danzberger
9b8a2de146 Add --enable-generic-openwrt configure option
This option allows selecting between a build with IOPSYS WRT features,
like the "router.*" ubus objects and a generic OpenWrt.

When GENERIC_OPENWRT is defined, only features that are available on a
generic openwrt build should be used.

This option is disabled by default.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-03-09 12:53:02 +01:00
Daniel Danzberger
43b4cff541 Don't define _XOPEN_SOURCE when compiling with _GNU_SOURCE
_XOPEN_SOURCE is included by _GNU_SOURCE.
This fixes redefinition errors of _XOPEN_SOURCE when the libc
implementations define it because of _GNU_SOURCE.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-03-09 12:25:13 +01:00
Omar Kallel
fbedd21f07 Ticket refs #1835: Device.Security. object (code style review) 2020-03-04 12:06:11 +01:00
Omar Kallel
5b0bc22622 Ticket Refs #1835: TR-181: Device.Security object 2020-03-03 15:30:08 +01:00
Amin Ben Ramdhane
2b7ead2d60 Improvement of the excel generator 2020-03-03 00:01:23 +01:00
Amin Ben Ramdhane
e15bb5d2c9 Update DeviceInfo.ProcessStatus.Process. object 2020-03-02 19:31:26 +01:00
Amin Ben Ramdhane
862c54780e Update WiFi object with new ubus calls: wifi, wifi.radio, wifi.ap 2020-03-02 19:28:07 +01:00
Amin Ben Ramdhane
1cc121df01 Excel generator: add new column for protocols 2020-03-02 11:17:32 +01:00
Amin Ben Ramdhane
fa7642d9cd Ticket refs #1845: bbf-tools: generate supported USP operate commands 2020-02-27 17:13:39 +01:00
Amin Ben Ramdhane
be7204e16e Update json file + upnp: add mapping parameters 2020-02-21 18:49:28 +01:00
Amin Ben Ramdhane
29b85e3edd Add a comment for unsupported parameters 2020-02-21 18:48:27 +01:00
Amin Ben Ramdhane
d80716634a Ticket refs #1254: validation parameters: add the missing objects 2020-02-21 11:47:42 +01:00
Amin Ben Ramdhane
905d78844c Ticket refs #1254: TR-x69: add support for parameter validation 2020-02-20 23:25:49 +01:00
Amin Ben Ramdhane
3848bac3aa WiFi Object: use new wifi.radio and wifi.ap ubus objects
- read WiFi.Radio and WiFi.SSID from iopsys wifi.radio and wifi.ap ubus objects instead of reading them from sysfs or ifconfig
2020-02-20 10:13:10 +01:00
Daniel Danzberger
1ea3b384d6 tr181: dynamicdns: fix invalid call to snprintf
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
dd31072c40 dmubus: remove deprectated is_error macro
This fixes undefined reference erros when linking against newer
libjson-c versions.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
84f3354f5c tr181: dhcpv4: Use uint64_t for lease timestamp
The timestamp written by dnsmasq in the dhcp.leases file has 64 bit.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
234ab4e70d Add missing library libdl when linking
This fixes undefined reference errors for libdl functions
when linking against -libbbfdm

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
c0f6b6d08a Add libbbf_api includes to automake
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
2351a47144 dmbbf: don't call undefined functions
The function enabled_notify_check_value_change_param() calls these 2
functions that have no definition or decleration:

- add_list_value_change()
- send_active_value_change()

This commit comments them out.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
fe370c6ae5 dmcommon: avoid memory duplication when fusion dup_list
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
c0729c7e2d tr181: dhcpv4: fix invalid bit shift when calculating netmask
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
eee74363db tr181: fix segfault on random stack value
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
bae3028d48 tr181: dhcpv4: fix segfault on interface_get_ipv4
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
4ebedcf707 tr181: dhcpv4: fixes and improvements
- don't export symbols that are not used ouside of dhcpv4.c
- make read only values const
- remove uneceessary memory allocations and duplications
- avoid "router.network" calls for compatibitliy with generic openwrt builds
- move redundand code to functions
- remove tab indents on empty lines
- avoid opening and parsing DHCP_LEASE_FILE multiple times

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
7779fc6928 dmubus: improve chache handling
- use less memory
- decrease lookup time
- make read only variables const
- remove unused variables / macros

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
588db7e54f dmubus: fixes and improvements
- use libubus instead of fork and exec ubus program
- move redundant code to static functions
- don't export ubus_ctx. It's only used in dmubus.c
- mark static gobals static
- remove unecessary json to blobmsg conversions/allocations when preparing parameters for ubus_invoke
- fix memleaks on not freeing ubus_ctx from ubus_connect
- fix invoking requests on random stack value id when ubus_lookup_id failed
- don't connect/disconnect on every request
- don't reallocate blob_buf on every request

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
ef30a322a0 Fix invalid logic when checking datamodel type
This fixes BBFDM_CWMP values not shown when BBFDM_BOTH is set as bbfdatamodel_type.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
ff77bdaebc tr181: wifi: remove invalid Radio statistics
There are no radio device (phy) statistic counters in linux.
To implement this, it would be necessary to collect stats from all
wirless interfaces on this phy.
Maybe this can be implemented in the future.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
cda2d2a61c tr181: wifi: fix invalid SSID stats
There is not always an "ifname" option in the wifi-iface section.
This commit uses ubus to resolve the right interface for the SSID.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
b135d0b5ae Remove get_stats_from_ifconfig_command function
This function was only used to query interface statistics,
which are now read direclty from sysfs.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
a3f395926f tr181: ppp: read stats from sysfs instead of ubus
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
405a55318d tr181: wifi: read stats from sysfs instead of ubus
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
ba1ab53f9f tr181: bridging: read statistics from sysfs
NOTE:
Current ifname resolution for the bridge port isn't working.
Hence Ports stats are not getting set.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
2a34538a94 tr181: usb: read usb net stats from sysfs
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
3e903fc731 tr181: ethernet: Fixes and cleanups
- use sysfs instread of ubus and ifconfig command execution for Inteface stats.
  This reduces uneccessary memory and cpu overhead and speeds up the query time for
  IP.Interface queries by a multiple.

- move redundant code to static functions
- fix rx/tx multicast/broadcast stats can never be obtained from ifconfig
- fix invalid stats for unknownprotopackets.
- fix stats not correclty reported when counters exceed 32bit int values.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:53:48 +01:00
Daniel Danzberger
219d9b4984 tr181: ip: Fixes and cleanups
- use sysfs instread of ubus and ifconfig command execution for Inteface stats.
  This reduces uneccessary memory and cpu overhead and speeds up the query time for
  IP.Interface queries by a multiple.

- move redundant code to static functions
- fix rx/tx multicast/broadcast stats can never be obtained from ifconfig
- fix invalid stats for unknownprotopackets.
- fix stats not correclty reported when counters exceed 32bit int values.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:51:28 +01:00
Daniel Danzberger
8708940709 Read mac address from sysfs instead of ubus
This is much faster

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:51:28 +01:00
Daniel Danzberger
7ce4410723 dmuci: fix some const compiler warnings
Read-only values should be marked with const to help the compiler
optimize code. But this would requrire a bigger rewirte of all the code,
hence the original code did not use const at all.

This should be done in the future to ensure good code quality
and performance.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:51:28 +01:00
Daniel Danzberger
994897a70d dmcommon.c: use const on read only value
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:51:28 +01:00
Daniel Danzberger
d744cc4832 tr181: bridge: Fix use of uninitalized meomory
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:51:28 +01:00
Daniel Danzberger
345c466875 tr181: USB: Fixes and cleanups
- avoid uneccessary memory allocations
- move {read,write}FileContent functions to usb source file where they are used exclusively and make them static
- fix bad logic in readFileContent
- move redundant code to static functions
- fix get_USBUSBHostsHostDevice_MaxChildren never returning any value
- fix no interface instances being created
- make some functions that are not exported static
- fix segfault on get_USBInterface_Enable when the interface is down
- fix segfault on get_USBInterface_Status when the interface is down.
- fix segfault on missing format character in get_USBInterface_LowerLayers.
- fix segfault and double frees on recrusive browseUSBUSBHostsHostInst() calls.
- reduce overall memory usage
- use const on read-only values
- fix invalid comparision on strstr return value

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:51:28 +01:00
Daniel Danzberger
fb12136904 dmuci: fix returning of invalid pointers
This fixes segfaults and pointers with invalid strings for:
 - dmuci_add_section
 - dmuci_set_value_by_section
 - dmuci_set_value

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:51:28 +01:00
Daniel Danzberger
1cec0190fd tr181: fix return of uninitalized pointer
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:51:28 +01:00
Daniel Danzberger
f9a9896005 dmentryjson.c: Fix use of uninitialized memory
next_obj wasn't initialized when the object number was zero.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:51:28 +01:00
Daniel Danzberger
033380161d Fix memleak from not freed uci_list_configs pointers
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:51:28 +01:00
Daniel Danzberger
95e1f34a7f Fix memleaks from unclosed opendir calls
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:51:28 +01:00
Daniel Danzberger
258331fdd5 Fix memleaks from not freed regcomp allocations
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2020-02-19 11:51:28 +01:00