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>
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>
_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>
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>
- 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>
- use less memory
- decrease lookup time
- make read only variables const
- remove unused variables / macros
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
- 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>
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>
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>
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>
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>
- 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>
- 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>
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>
- 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>
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>