summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-06-29Merge pull request #292 from Stunkymonkey/format_qualityIngo Bürk
add format_quality option in wireless
2018-06-29add format_quality option in wirelessFelix Buehler
2018-06-25Stop requiring CAP_NET_ADMINOlivier Gayot
Since the following commit in the Linux kernel tree 0fdc100bdc4b ethtool: allow non-netadmin to query settings it is no longer necessary to have the CAP_NET_ADMIN capability to query a device speed using ioctl(..., SIOCETHTOOL) in conjonction with the ETHTOOL_GSET ethtool command. The mentioned commit landed first in the 2.6.37 version of the Kernel. This version is no longer maintained nowdays. Since it is not necessary anymore, it is strongly prefered from a security standpoint to drop the CAP_NET_ADMIN capability from the binary. Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20Prevent potential crash if glob() failsOlivier Gayot
Calling globfree(NULL) is undefined behaviour. In Linux (glibc), it results in a segmentation fault. It is also undefined behaviour to call globfree(&pglob) if a previous call to glob(&pglob) returned an error. Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20Fix potential memory leak on LinuxOlivier Gayot
The function slurp_all_batteries(), on Linux, allocates memory dynamically Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20Fix invalid handling of glob() errors on LinuxOlivier Gayot
The manual of glob(3) says that the function returns 0 on successful completion. Any other integer value should be considered an error, not only negative integers. In practice, *BSD systems use negative values but Linux uses positive integers. Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20Fix use of undefined macro __OpenBSD__Olivier Gayot
Compiling on Linux with -Wundef produces the following warning: warning: "__OpenBSD__" is not defined, evaluates to 0 [-Wundef] Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20Avoid assigning a new value to a var before using the old valueOlivier Gayot
Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20Make sure the arguments passed to printf/die(...) match the formatOlivier Gayot
Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20No longer use a temporary buffer in the die() functionOlivier Gayot
Before the following change f947d0a Breaks configfiles! Major refactoring of i3status, see below The die(fmt, ...) function was outputting the reason to the status bar in addition to stderr. For this reason, it was meaningful to create a temporary string according to the format string and then passing it around to the different functions. Nowadays, we only display the error message to stderr so calling fprintf(stderr, ...) is much simpler. Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-11Fix shown IP address belonging to wrong interfaceOlivier Gayot
The following commit: 6a75ea9 Show IP address when address has a label introduced a way to show the IP address of an interface when a label is associated to the IP. When a label is associated to an IP, the structure returned by getifaddrs() has the label concatenated to the interface name in the .ifa_name field as in the following example: struct ifaddrs ifaddr = { .ifa_name = "eth0:mylabel", }; As a consequence, using a strict comparison between the interface name and the .ifa_name field yields a falsy result. However, checking if the .ifa_name starts with the interface name (e.g. eth0) does not work either because other network interfaces can have a name which starts with eth0. This commit solves the issue by stripping out the optional label from the .ifa_name field before making a strict comparison with the interface name. Fix #283 Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-04Simplify the algorithm used to determine the IP addressOlivier Gayot
Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-05-19Merge pull request #270 from Stunkymonkey/mem-supportIngo Bürk
initial support of memory-usage for linux
2018-05-15Fix MacOS buildeplanet
2018-05-04Simplify the memory thresholdsBenedikt Heine
2018-05-04Rename ram variables consistentlyBenedikt Heine
2018-04-11Implement support for memory-usage on LinuxFelix Buehler
2018-04-08Merge pull request #275 from winks/patch-2Ingo Bürk
Fix NULL value on OpenBSD when there is no acpitz0
2018-04-06Fix NULL value on OpenBSD when there is no acpitz0Florian Anderiasch
Using %degrees on OpenBSD resulted in garbage values if sysctl doesn't know about any cpu temperature sensors.
2018-03-29Show IP address when address has a labelDan Robertson
If an address has been added with a label, ensure the correct address is shown.
2018-03-27Read multiple batteries on DragonFly BSD.Øyvin Halfdan Thuv
Using ACPI to read individual battery information instead of just accumulations from sysctl.
2018-03-27Merge branch 'master' into masterIngo Bürk
2018-03-27Merge pull request #243 from jasperla/fei_errorIngo Bürk
Remove overly aggressive #error
2018-02-13OpenBSD: fix volume display on some hardwareCarlin Bingham
On some hardware the AUDIO_MIXER_READ ioctl requires the current number of channels to be set, and the mute device found needs to be checked if it belongs to the master output device.
2018-02-07Make iface_type() work on FreeBSDGerome Fournier
2018-01-28Treat zero battery capacity as "not available" (#259)johcgt
`print_battery_info` computes `batt_info.percentage_remaining` by dividing batt_info.remaining by `full`. If `full` is `0` then the battery remaining will be reported as "inf". Before this, it tries to set `full` to either the design capacity or to the last known good charge. It determines if these values are available by checking whether their fields in `batt_info` are non-negative. As it initialized `batt_info` with values of `-1`, a non-negative value implies that something has provided a value. `slurp_all_batteries` and `add_battery_info` however initialize these fields to zero, so if these functions are called then `batt_info.full_design` will always be used. This means that on systems that don't provide a value for design capacity the percentage remaining will be reported as "inf", unless the user has set `last_full_capacity` to `true` in their `i3status.conf`. This patch changes `print_battery_info` to expect values for the battery capacity to be strictly greater than zero. This seems reasonable as a battery with a capacity of zero isn't useful. An alternative solution would be to change `slurp_all_batteries` and `add_battery_info` to initialize `batt_info` with `-1`, as `print_battery_info` does. This is less appealing as `add_battery_info` is accumulating the values, so using `-1` would introduce off-by-one errors without additional code to avoid them.
2017-12-11Update comment as in #247 (#254)Emeric Planet
2017-12-11Add IPv6 address when IPv4 isn't available (#247)Emeric Planet
2017-12-09Call tzset at each time printeplanet
2017-09-04Remove overly aggressive #errorJasper Lievisse Adriaanse
Change-Id: I8c20606d386d713cac51b620d1fcdb479a3622fe
2017-08-24Be more cautious about handling invalid battery measurements.kousu
2017-08-19Use local timezone for battery %emptytime (#236)Emeric Planet
2017-04-16Merge pull request #219 from flammi/masterIngo Bürk
Add check for virtual ethernet devices
2017-04-13Add battery capacity parsing (#216)Emeric Planet
The Linux power supply class defines three entries to provide battery status. One of them wasn't used: POWER_SUPPLY_CAPACITY. https://www.kernel.org/doc/Documentation/power/power_supply_class.txt
2017-04-13Added bracesFabian Franzen
Added braces to the if-statement as requested.
2017-04-12Fix memory leak/Use BEGINS_WITH macroFabian Franzen
The orignal proposed code had a memory leak when returning true. Furthermore I included the handy BEGINS_WITH macro of i3 which makes the code (IMHO) a lot more readable.
2017-04-12Add check for virtual ethernet devicesFabian Franzen
The _first_ option for ethernet devices now uses the link in sysfs to determine if it's a real device or just a virtual one (i.e veth** devices created by docker).
2017-03-26Multiple CPU support for cpu_usage (#209)eplanet
This change addresses the issue #199 asking for multiple CPU support. It takes an arbitrary CPU number and outputs its usage using the same arithmetics as for CPU aggregation. It currently doesn't support FreeBSD.
2017-03-10disk: don't remove trailing slash if path is a single characterKenneth Lyons
2017-03-08Merge pull request #208 from stapelberg/warningIngo Bürk
remove useless checks (we use char, not unsigned char)
2017-03-08remove useless checks (we use char, not unsigned char)Michael Stapelberg
fixes compilation warnings
2017-03-08disk: sanitize trailing slashesMichael Stapelberg
fixes #200
2017-02-07Merge pull request #202 from jasperla/openbsd_fdleakIngo Bürk
Plug an fd leak in the OpenBSD-specific code for _first_
2017-02-07Plug an fd leak in the OpenBSD-specific code for _first_Jasper Lievisse Adriaanse
2017-02-07Suppress printing :00 seconds of remaining battery lifetime, as apm(4)'sJasper Lievisse Adriaanse
estimate only has a granularity of minutes. From tb@openbsd.org
2017-02-01Fix the deciKelvin to Celsius conversion on FreeBSD (#195)Baptiste Daroussin
Change from ceiled value to floored value to be consistent with the FreeBSD kernel https://svnweb.freebsd.org/base?view=revision&revision=300421
2017-01-31Make first_eth_interface() work on OpenBSD: (#197)Jasper Lievisse Adriaanse
- use a define for loopback interface device - use an approach similar to ifconfig(8) for determining device type
2017-01-31Include sys/select.h on OpenBSD (#198)Jasper Lievisse Adriaanse
Fixes a compilation error: /usr/include/net80211/ieee80211_ioctl.h:339: warning: implicit declaration of function 'howmany' /usr/include/net80211/ieee80211_ioctl.h:339: error: 'NBBY' undeclared here (not in a function) /usr/include/net80211/ieee80211_ioctl.h:339: error: variably modified 'nr_rxmcs' at file scope
2016-11-15Add 'format_below_threshold' option for 'disk' moduleMihai Coman
Add 'format_above_threshold' option for 'cpu_temperature' module Add 'format_above_threshold' option for 'cpu_usage' module Add 'format_above_threshold' option for 'load' module
2016-11-12Use blank padding for wireless quality (#166) (#167)Jon Bernard