* Require at least glib-2.36 (from 03/2013) to remove deprecated g_type_init()
* Fix empty continuation line in Dockerfile
* Require at least libmicrohttpd 0.9.25 (from 09/2012) to replace deprecated MHD_create_response_from_data()
* fix versioncheck libmicrohttpd
* Missing char for null-terminator in print_v6addrs()
* safe_asprintf to fix /proc/subdir bufferoverflows
There is no max length of /proc/subdir, increasing the value of /proc/sys/kernel/pid_max is one way this can happen
* Fix conversion constant c++ string to variable char array
* Fix strncpy using unrelated MPD_BUFFER_MAX_LENGTH
* Use strncpy instead of strcpy in eve.cc
* Use strncpy instead of strcpy in libmpdclient.cc
* move safe_asprintf back and use ostreams in proc.cc to make sonarcloud happy
* Fix #190:
* Added function `is_on_battery()` to correct set update interval
* Added setting `detect_battery` to correct select one or more batteries to check
* Added `detect_battery` to doc/config_settings.xml
* cmake: Add Haiku as a supported platform
* move mixer.cc to platform-specific as Haiku doesn't use OSS
* Add haiku.h with some stubs
* Use haiku.h
* Add some Haiku stubs
* Some Haiku network workarounds
It does not define SUN_LEN, provide a default.
It doesn't name the union in struct ifreq, use ifr_addr directly.
It seems Linux also declares it so it should work without change.
We can always define it for other platforms lacking it (add a cmake test ?).
Haiku does not have IFF_RUNNING, IFF_LINK seems close in semantics, so use it.
* Haiku: Minimal implementation of update_meminfo & get_top_info
* Haiku: implement update_cpu_usage
* llabs() is included in FreeBSD since FreeBSD 5.0.
Oldest supported FreeBSD version is 9.3 now.
* stdio.h needs to be explicitly included here for FreeBSD.
I can wrap it in #ifdefs if needed, but I don't think it can hurt other OSes.
* addr config variable works fine on FreeBSD.
* FreeBSD 5.x is really an ancient version and long unsupported, so I think this check for it can be dropped.
* Fix and simplify code to get battery state and charge.
* Add required include on FreeBSD.
* Add needed include on FreeBSD.
* Also populate basename to avoid printing (null) process names.
Repored by fellow FreeBSD user Szabolcs Grof.
* Add native support for pulseaudio.
This adds ability to get Pulseaudio current volume without calling an
external program. Also it provides a few other parameters like card's
current profile similarly to pavucontrol. Currently it only queries the
default sink (and associated card).
* Switch to pulse async API.
This us by far the most efficient as conky subscribe to a few pulseaudio
notifications. Whenever pulseaudio server changes (volume or default
sink or default card), conky's callback updates the results.
* use CLOCK_MONOTONIC if supported
get_time is used to control the update interval etc. so there's
no need to query the system time
* repaint immediately when the root pixmap changed
Original patch by pweisenburger,
In addition resets the next_update_time to ensure "now"
FIXES: #48
This patch modifies logic for setting next_update_time such that the
update is done at full update_interval seconds. That is, for example
with update_interval 60.0, update is done at 00:00:00, 00:01:00,
00:02:00, etc.
This might be useful for using conky as a clock widget which only needs
to be updated once per minute, but is obliged to update exactly at
minute change.
It is implemented in a way that is (hopefully) immune to clockchanges
(as for example by NTP or DST).
e.g. in the beginning the scale is always 0, leading to NaN and a crash
fixes the "show_graph_scale" not working bug, not yet reported (even though I actually noticed that before, didn't seem to bother me)
also cpugauge works again because fo this BUILD_MATH MATH problem
Currently we set inotify_fd to the value 0 when inotify_fd hasn't been
created yet, or after we close it. But 0 is a valid fd, and we check
for the value -1 to see if it's been initialized. So, if inotify
support is compiled in, but we disable_auto_reload, we can end up
closing fd 0. This can screw up various other things in weird ways,
including that exec'd processes appear to have an invalid stdin.
So, set inotify_fd to -1 to clear all of this up.
== common.cc ==
'result' can be uninitialized.
== conky.cc ==
strcpy()'s overlap: undefined behaviour. memmove()'s one is
defined.
== eve.cc ==
Some simplifications, and there are two leaks:
1. 'mySkill' could be leaked. So, let's make 'skill' point to it instead
of strdup()'ing the buffer.
2. 'output' could be leaked at l.390.
== freebsd.cc ==
Leak of 'freq_sysctl'.
== net_stat.cc ==
free() already null-checks, so we don't need to do it again.
== proc.cc ==
Leak.
Signed-off-by: Pavel Labath <pavelo@centrum.sk>
* don't use kvm_* calls, just sysctl (so no suid perm necessary)
* sysctls calls in general aren't thread safe, collapse callbacks
using same sysctls (specifically total/running procs and proc list
ones).
Some sysctls need two calls (first to get size of obj returned,
second to get object self); if different threads use this schema
on same sysctl, weird values are returned (first/second calls
sequence should be serialized).
In general it makes not much sense too having more threads that use
the same sysctl; just get info once and populate all data.
* add DragonFly specific extended uname string ($version in conky.conf)
with git version and signature
Todo:
- top process list logic is old style, use top.cc funcs.
- find a solution for cpu freq
Signed-off-by: Pavel Labath <pavelo@centrum.sk>