Kay Sievers [Sat, 26 Jul 2014 22:11:08 +0000 (00:11 +0200)]
core: only set the kernel's timezone when the RTC runs in local time
We can not reliably manage any notion of local time. Every daylight
saving time change or time zone change by traveling will make the
time jump, and the local time might jump backwards which creates
unsolvable problems with file timestamps.
We will no longer tell the kernel our local time zone and leave
everything set to UTC. This will effectively turn FAT timestamps
into UTC timestamps.
If and only if the machine is configured to read the RTC in local
time mode, the kernel's time zone will be configured, but
systemd-timesysnc will disable the kernel's system time to RTC
syncing. In this mode, the RTC will not be managed, and external
tools like Windows bootups are expected to manage the RTC's time.
https://bugs.freedesktop.org/show_bug.cgi?id=81538
Zbigniew Jędrzejewski-Szmek [Sun, 27 Jul 2014 00:11:58 +0000 (20:11 -0400)]
bash-completion: use list-unit-files to get "all" units
I think that it is better to return good results slightly more slowly,
than partial quickly. Also reading from disk seems fast enough. Even
the delay on first try with completely cold cache is acceptable.
This is just for bash, 'cause zsh was already doing this.
https://bugzilla.redhat.com/show_bug.cgi?id=790768
Zbigniew Jędrzejewski-Szmek [Sat, 26 Jul 2014 18:59:52 +0000 (14:59 -0400)]
Print kdbus path when opening fails
This makes it easier to debug what is going on.
Zbigniew Jędrzejewski-Szmek [Sat, 26 Jul 2014 19:01:49 +0000 (15:01 -0400)]
update-done: include a short description in .updated
People might be confused where the file comes from, since the name is not
at all specific.
https://bugzilla.redhat.com/show_bug.cgi?id=1121301#c8
Zbigniew Jędrzejewski-Szmek [Sat, 26 Jul 2014 18:47:31 +0000 (14:47 -0400)]
Add utility function to append root to path
Zbigniew Jędrzejewski-Szmek [Sat, 26 Jul 2014 18:03:11 +0000 (14:03 -0400)]
systemctl: do not bother to mutate state on error
We will abort anyway.
Daniel Buch [Thu, 24 Jul 2014 21:29:40 +0000 (23:29 +0200)]
analyze: fix seg-fault with no cl-argument
We need to check if argv[1] is set before compare
Karel Zak [Fri, 25 Jul 2014 13:38:31 +0000 (15:38 +0200)]
Always check asprintf return code
There is a small number of the places in sources where we don't check
asprintf() return code and assume that after error the function
returns NULL pointer via the first argument. That's wrong, after
error the content of pointer is undefined.
Eric Cook [Sat, 26 Jul 2014 15:15:52 +0000 (11:15 -0400)]
shell-completion: prevent mangling unit names
Units with literal hex '\xFF' in their names has to be read
and printed properly.
dev-disk-byx2dlabel-root.device != dev-disk-by\x2dlabel-root.device
Tom Gundersen [Fri, 25 Jul 2014 09:08:23 +0000 (11:08 +0200)]
sysctl.d: enable promote_secondaries by default
Without this, secondary addresses would get deleted when the primary one is. This is not
the desired behavior when one would like to transition from one address to another in the
same subnet (such as when a new IP address is given over DHCP).
In networkd, when given a new IP over DHCP we will add it, without explicitly removing the
old one first (and hence never have a window without an IP address configured). Assuming the
addresses are in the same subnet, that means that the old address is the primary and the new
address is the secondary one. Once the old address expires, the kernel will drop it. With the
old behavior this means that both addresses would be lost, which is clearly not what we want.
With the new behavior, only the old address is lost, and the new one is promoted to primary.
Reported by Michael Olbrich <m.olbrich@pengutronix.de>
Lukas Nykryn [Fri, 25 Jul 2014 08:44:27 +0000 (10:44 +0200)]
busname: CLD_KILLED was used twice
Lukas Nykryn [Fri, 25 Jul 2014 08:25:06 +0000 (10:25 +0200)]
bus-proxyd: fix incorrect comparison
We should be interested in k variable.
Lukas Nykryn [Fri, 25 Jul 2014 07:58:52 +0000 (09:58 +0200)]
bus-proxyd: fix incorrect comparison
Err can't be bigger then zero. Rest of the code uses negative Exxxx values.
Tom Gundersen [Fri, 25 Jul 2014 00:09:29 +0000 (02:09 +0200)]
networkd: ipv4ll - default to setting up ipv4ll routes
This is necessary for non-ipv4ll hosts to communicate with ipv4ll-only hosts on the same link. Defaults
to being enabled, but can be opted out.
See: <http://avahi.org/wiki/AvahiAutoipd#Routes>
Tom Gundersen [Thu, 24 Jul 2014 23:28:39 +0000 (01:28 +0200)]
networkd: ipv4ll - drop unnecessary get_address()
Kay Sievers [Thu, 24 Jul 2014 21:37:35 +0000 (23:37 +0200)]
udev: exclude MD from block device ownership event locking
MD instantiates devices at open(). This is incomptible with the
locking logic, as the "change" event emitted when stopping a
device will bring it back.
Tom Gundersen [Thu, 24 Jul 2014 16:53:01 +0000 (18:53 +0200)]
libsystemd-network: use CLOCK_BOOTTIME instead of CLOCK_MONOTONIC where possible
The timeouts in the networking library (DHCP lease timeouts and similar) should not be affected
by suspend. In the cases where CLOCK_BOOTTIME is not implemented, it is still safe to fallback to
CLOCK_MONOTONIC, as the consumers of the library (i.e., networkd) _should_ renew the leases when
coming out of suspend.
Tom Gundersen [Thu, 24 Jul 2014 16:36:37 +0000 (18:36 +0200)]
time-util: add clock_boottime_or_monotonic
CLOCK_BOOTTIME is not supported by timerfd on older kernels, so for the time beeing,
use this helper instead which will fallback to CLOCK_MONOTONIC if CLOCK_BOOTTIME is
not supported.
Tom Gundersen [Thu, 24 Jul 2014 14:08:07 +0000 (16:08 +0200)]
sd-event: add support for CLOCK_BOOTTIME
This requires a very recent kernel (3.15), so care should be taken
when using this functionality.
Tom Gundersen [Wed, 23 Jul 2014 21:03:50 +0000 (23:03 +0200)]
sd-network: expose DNS/NTP servers as strings
This avoids having to distinguish between IPv4 and IPv6, allowing us
to keep their internal orderings. The consumers now has to turn the
strings into addresses.
Tom Gundersen [Wed, 23 Jul 2014 21:10:00 +0000 (23:10 +0200)]
resolved: don't read DHCP leases
networkd will expose both statically configured DNS servers and servers
receieved over DHCP in sd_network_get_dns(), so no need to keep
the distinction in resolved.
Tom Gundersen [Wed, 23 Jul 2014 11:48:18 +0000 (13:48 +0200)]
networkd: merge DNS and NTP entries when exporting
In the state files, do not distinguish where the various entries came from
(static or DHCP), but include them all in the same list.
Michael Biebl [Wed, 23 Jul 2014 21:35:22 +0000 (23:35 +0200)]
man: fix path for system-sleep hook directory
Karel Zak [Wed, 23 Jul 2014 10:40:07 +0000 (12:40 +0200)]
docs: remove repeating words from man/*xml
Dan Williams [Tue, 22 Jul 2014 22:18:14 +0000 (17:18 -0500)]
dhcp-network: remove unused DHCP6_STATE_RS
Probably a left-over from when router solicitations were
requested in the DHCP6 code. But since they are now separate,
this state is no longer needed.
Dan Williams [Tue, 22 Jul 2014 21:54:47 +0000 (16:54 -0500)]
networkd: set route protocol
All routes added by networkd are currently set RTPROT_BOOT, which according
to the kernel means "Route installed during boot" (rtnetlink.h). But this
is not always the case as networkd changes routing after boot too. Since
the kernel gives more detailed protocols, use them.
With this patch, user-configured static routes now use RTPROT_STATIC (which
they are) and DHCP routes use RTPROT_DHCP. There is no define for IPv4LL
yet, so those are installed as RTPROT_STATIC (though perhaps RTPROT_RA is
better?).
[tomegun: fixup
src/network/networkd-link.c:972:33: error: too few arguments to function 'route_new_dynamic']
Lennart Poettering [Wed, 23 Jul 2014 00:00:32 +0000 (02:00 +0200)]
update TODO
Lennart Poettering [Tue, 22 Jul 2014 23:59:36 +0000 (01:59 +0200)]
resolved: most DNS servers can't handle more than one question per packet, hence let's not generate that
Lennart Poettering [Tue, 22 Jul 2014 22:57:25 +0000 (00:57 +0200)]
resolved: implement negative caching
Lennart Poettering [Tue, 22 Jul 2014 19:48:41 +0000 (21:48 +0200)]
resolved: rework logic so that we can share transactions between queries of different clients
Lennart Poettering [Mon, 21 Jul 2014 22:36:01 +0000 (00:36 +0200)]
nss-myhostname: don't include assert.h twice
Zbigniew Jędrzejewski-Szmek [Tue, 22 Jul 2014 01:14:08 +0000 (21:14 -0400)]
man: merge systemd-verify with systemd-analyze
Zbigniew Jędrzejewski-Szmek [Tue, 22 Jul 2014 01:11:56 +0000 (21:11 -0400)]
shell-completion: systemd-analyze verify, systemctl link
Some zsh completion helpers were not installed, so completion
was broken.
Add systemd-analyze verify. Make systemctl link complete only
unit names.
Zbigniew Jędrzejewski-Szmek [Tue, 22 Jul 2014 01:11:54 +0000 (21:11 -0400)]
Merge systemd-verify with systemd-analyze
Zbigniew Jędrzejewski-Szmek [Tue, 22 Jul 2014 01:07:19 +0000 (21:07 -0400)]
configure: add -Wno-typedef-redefinition
Message-ID: <CAJ+BJsz9Qy-JU25dUuGT2n0LMNzcOpoJNGNtbf_boSuT_6hONw@mail.gmail.com>
Jean-André Santoni [Tue, 22 Jul 2014 01:04:44 +0000 (21:04 -0400)]
Add IFLA_VTI defines to missing.h
Zbigniew Jędrzejewski-Szmek [Tue, 22 Jul 2014 00:56:29 +0000 (20:56 -0400)]
update-done: set proper selinux context for .updated
https://bugzilla.redhat.com/show_bug.cgi?id=1121806
Zbigniew Jędrzejewski-Szmek [Tue, 22 Jul 2014 00:41:19 +0000 (20:41 -0400)]
sysusers: fix selinux context of backup files
Also, fix fopen_temporary_label to set proper context. By chance,
all users so far used the same context, so the error didn't matter.
Also, check return value from label_init().
https://bugzilla.redhat.com/show_bug.cgi?id=1121806
Tom Gundersen [Mon, 21 Jul 2014 18:54:09 +0000 (20:54 +0200)]
networkd: bridge - use USEC_PER_MSEC macros
Lennart said:
> We have these nice USEC_PER_MSEC-style macro definitions which make it a
> little bit clearer what we are converting here from what into
> what... please use that instead of writing "1000"...
>
> (we stole those from gstreamer btw)
Susant Sahani [Mon, 21 Jul 2014 13:44:48 +0000 (19:14 +0530)]
networkd: add support for bond options
The following bond options are supported by this patch.
MIIMonitorSec:
Specifies the frequency in milli-seconds that MII link
monitoring will occur.
UpDelaySec:
Specifies the delay time in milli-seconds to enable a link
after a link up status has been detected.
DownDelaySec:
Specifies the delay time in milli-seconds to disable a link
after a link failure has been detected.
changes:
1. Added gconf variables.
2. man page
conf:
[NetDev]
Name=bond1
Kind=bond
[Bond]
Mode=802.3ad
TransmitHashPolicy=layer2+3
LacpduTransmitRate=fast
MIIMonitorSec=1s
UpDelaySec=2s
DownDelaySec=8s
cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)
MII Status: up
MII Polling Interval (ms): 1000
Up Delay (ms): 2000
Down Delay (ms): 8000
802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
bond bond1 has no active aggregator
[tomegun: rephrased manpage, dropped bond_ prefix from variables]
Susant Sahani [Mon, 21 Jul 2014 13:22:14 +0000 (18:52 +0530)]
networkd: bond add support for lacp rate
LacpduTransmitRate
option specifies the rate in which link partner to transmit
LACPDU packets in 802.3ad mode. Possible values
slow : Request partner to transmit LACPDUs every 30 seconds
fast : Request partner to transmit LACPDUs every 1 second
The default is slow.
chages:
1. Added enum bond_lacp_rate_table
2. gperf LacpduTransmitRate
Test:
conf file:
[NetDev]
Name=bond1
Kind=bond
[Bond]
Mode=802.3ad
LacpduTransmitRate=fast
test:
cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
bond bond1 has no active aggregator
[tomegun: renamed from LacpduTransmitRate to LACPTransmitRate, manpage fixes and
dropped bond_ prefix from variables]
Susant Sahani [Mon, 21 Jul 2014 13:07:05 +0000 (18:37 +0530)]
networkd: add support for bond transmit hash policy
This patch adds support the transmit hash policy to use
for slave selection in balance-xor, 802.3ad, and tlb modes
layer2, layer3+4, layer2+3, encap3+4, encap3+4
Added:
1. BondXmitHashPolicy
2. conf param TransmitHashPolicy
Test conf:
[NetDev]
Name=bond1
Kind=bond
[Bond]
Mode=802.3ad
TransmitHashPolicy=layer2+3
test output:
cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
bond bond1 has no active aggregator
[tomegun: dropped bond_ prefix from new Bond variable, drop repeated man-page section]
Susant Sahani [Wed, 16 Jul 2014 08:26:24 +0000 (13:56 +0530)]
sd-rtnl: uncomment bond rtnl constants
Tom Gundersen [Wed, 16 Jul 2014 11:17:10 +0000 (13:17 +0200)]
networkd: netdev - split NetDev struct into per-kind structs
Similarly to how unit types work.
Tom Gundersen [Fri, 18 Jul 2014 23:37:22 +0000 (01:37 +0200)]
sd-network: drop get_ifindices
People should use rtnl for this, and then only query sd-network by the ifindices it finds.
Zbigniew Jędrzejewski-Szmek [Sun, 20 Jul 2014 23:28:58 +0000 (19:28 -0400)]
man: add systemd-verify(1)
Zbigniew Jędrzejewski-Szmek [Sun, 20 Jul 2014 22:23:53 +0000 (18:23 -0400)]
systemd-verify: check man pages
Zbigniew Jędrzejewski-Szmek [Sun, 20 Jul 2014 21:58:35 +0000 (17:58 -0400)]
systemd-verify: a simple tool for offline unit verification
This tool will warn about misspelt directives, unknown sections, and
non-executable commands. It will also catch the common mistake of
using Accept=yes with a non-template unit and vice versa.
https://bugs.freedesktop.org/show_bug.cgi?id=56607
Zbigniew Jędrzejewski-Szmek [Sun, 20 Jul 2014 21:56:57 +0000 (17:56 -0400)]
path-lookup: make SYSTEMD_UNIT_PATH more flexible
It can now contain more than one directory, and can be used
to only prepend, not totally override, the normal load path.
Zbigniew Jędrzejewski-Szmek [Fri, 18 Jul 2014 21:50:04 +0000 (17:50 -0400)]
test-cgroup-mask: fix masks in test and enable by default
Commit
637f421e5c6a ("cgroups: always propagate controller membership
to siblings") changed the mask propagation logic, but the test wasn't
updated.
Move to normal tests from manual tests, it should not touch the system
anymore.
Zbigniew Jędrzejewski-Szmek [Wed, 19 Feb 2014 04:28:15 +0000 (23:28 -0500)]
test-cgroup-mask: pass on kernels without memory controller
It seems that unit_get_siblings_mask returns the controllers
filtered by what is available, but get_members_mask and
get_cgroup_mask do not. This just fixes the test following the
symptoms.
Zbigniew Jędrzejewski-Szmek [Fri, 18 Jul 2014 21:05:18 +0000 (17:05 -0400)]
systemd: return the first error from manager_startup()
Zbigniew Jędrzejewski-Szmek [Tue, 7 Jan 2014 13:41:24 +0000 (08:41 -0500)]
test-engine: fix access to unit load path
Also add a bit of debugging output to help diagnose problems,
add missing units, and simplify cppflags.
Move test-engine to normal tests from manual tests, it should now
work without destroying the system.
Zbigniew Jędrzejewski-Szmek [Sun, 20 Jul 2014 23:47:42 +0000 (19:47 -0400)]
Add quotes to warning message
The message for SYSTEMD_LOG_LEVEL= looked a bit strange.
Zbigniew Jędrzejewski-Szmek [Tue, 7 Jan 2014 05:00:05 +0000 (00:00 -0500)]
systemd: use pager for --test and --help
Zbigniew Jędrzejewski-Szmek [Sun, 20 Jul 2014 01:05:07 +0000 (21:05 -0400)]
journalctl,man: allow + only between terms
https://bugzilla.redhat.com/show_bug.cgi?id=1110712
Zbigniew Jędrzejewski-Szmek [Sat, 19 Jul 2014 23:46:04 +0000 (19:46 -0400)]
bash-completion: -p option for journalctl
Michael Olbrich [Fri, 18 Jul 2014 04:33:52 +0000 (06:33 +0200)]
install: systemd-timesyncd.service is enabled by sysinit.target
systemd-timesyncd.service has a "WantedBy=sysinit.target" so the
initially generated link should match that.
Zbigniew Jędrzejewski-Szmek [Tue, 7 Jan 2014 02:26:20 +0000 (21:26 -0500)]
core: remove systemd_running_as lookup functions
They are unused and unlikely to ever be.
Zbigniew Jędrzejewski-Szmek [Sat, 19 Jul 2014 19:35:48 +0000 (15:35 -0400)]
escape: fix return code
David Herrmann [Sat, 19 Jul 2014 09:32:25 +0000 (11:32 +0200)]
barrier: suppress false-positive warning
If poll() returns, one of both revents must be set, thus "buf" is set by
either clause. This is non-obvious for code-checkers so add an "else
continue;" clause to suppress "uninitialized variable" warnings.
Zbigniew Jędrzejewski-Szmek [Fri, 27 Dec 2013 22:14:24 +0000 (17:14 -0500)]
core: show timeouts when watchdog howls
Zbigniew Jędrzejewski-Szmek [Fri, 18 Jul 2014 18:01:13 +0000 (14:01 -0400)]
Small modernizations
Zbigniew Jędrzejewski-Szmek [Tue, 4 Mar 2014 00:49:40 +0000 (19:49 -0500)]
Be more verbose when bind or listen fails
Also be more verbose in devnode_acl_all().
Zbigniew Jędrzejewski-Szmek [Sat, 19 Jul 2014 01:44:59 +0000 (21:44 -0400)]
Nuke update-kbd-map
Our version has evolved independently of the original table
in systemd-config-keyboard, so it cannot be ever regenerated from
original upstream. Remove script to avoid confusion.
Zbigniew Jędrzejewski-Szmek [Sat, 19 Jul 2014 01:44:58 +0000 (21:44 -0400)]
Makefile.am: tweaks to python commands
Zbigniew Jędrzejewski-Szmek [Sat, 19 Jul 2014 01:44:58 +0000 (21:44 -0400)]
machinectl: make sure we are not reading an unitialized variable
Zbigniew Jędrzejewski-Szmek [Sat, 19 Jul 2014 01:44:36 +0000 (21:44 -0400)]
man,journal: add note about sd_journal_get_cutoff_monotonic_usec return value
Also modify the function itself to be a bit simpler to read.
Zbigniew Jędrzejewski-Szmek [Sat, 19 Jul 2014 01:44:36 +0000 (21:44 -0400)]
compress: fix return value
Zbigniew Jędrzejewski-Szmek [Sat, 19 Jul 2014 01:44:34 +0000 (21:44 -0400)]
resolved: do not use unitialized variable
Zbigniew Jędrzejewski-Szmek [Sat, 19 Jul 2014 00:12:13 +0000 (20:12 -0400)]
barrier: initalize file descriptors with -1
Explicitly initalize descriptors using explicit assignment like
bus_error. This makes barriers follow the same conventions as
everything else and makes things a bit simpler too.
Rename barier_init to barier_create so it is obvious that it is
not about initialization.
Remove some parens, etc.
Lennart Poettering [Fri, 18 Jul 2014 19:01:22 +0000 (21:01 +0200)]
resolved: various bad memory access fixes to the cache
Lennart Poettering [Fri, 18 Jul 2014 19:01:07 +0000 (21:01 +0200)]
resolved: fix bus signatures to follow family as int change
David Herrmann [Fri, 18 Jul 2014 15:46:14 +0000 (17:46 +0200)]
terminal: suppress warning in subterm
Empty format-strings are just fine if format-functions do more than
printing. This is the case here, so suppress the "empty format-string"
warning by using "%s" with an empty argument.
David Herrmann [Fri, 18 Jul 2014 15:34:03 +0000 (17:34 +0200)]
terminal: add unifont font-handling
The unifont layer of libsystemd-terminal provides a fallback font for
situations where no system-fonts are available, or if you don't want to
deal with traditional font-formats for some reasons.
The unifont API mmaps a pre-compiled bitmap font that was generated out of
GNU-Unifont font-data. This guarantees, that all users of the font will
share the pages in memory. Furthermore, the layout of the binary file
allows accessing glyph data in O(1) without pre-rendering glyphs etc. That
is, the OS can skip loading pages for glyphs that we never access.
Note that this is currently a test-run and we want to include the binary
file in the GNU-Unifont package. However, until it was considered stable
and accepted by the maintainers, we will ship it as part of systemd. So
far it's only enabled with the experimental --enable-terminal, anyway.
David Herrmann [Fri, 18 Jul 2014 15:26:23 +0000 (17:26 +0200)]
terminal: only build if --enable-terminal was specified
Whoopsy, I totally forgot adding the "if ENABLE_TERMINAL" markers. Do that
now that we know it builds fine everywhere.
Lennart Poettering [Fri, 18 Jul 2014 14:15:12 +0000 (16:15 +0200)]
in-addr-util: remove family_to_string() API
we already have a more complete one with af_to_name(), that is generated
from the header files, no need to duplicate this.
Lennart Poettering [Fri, 18 Jul 2014 14:09:30 +0000 (16:09 +0200)]
change type for address family to "int"
Let's settle on a single type for all address family values, even if
UNIX is very inconsitent on the precise type otherwise. Given that
socket() is the primary entrypoint for the sockets API, and that uses
"int", and "int" is relatively simple and generic, we settle on "int"
for this.
Thomas Blume [Fri, 18 Jul 2014 13:13:36 +0000 (09:13 -0400)]
systemd-detect-virt: detect s390 virtualization
A system that is running on a logical partition (LPAR) provided by
PR/SM has access to physical hardware (except CPU). It is true that
PR/SM abstracts the hardware, but only for sharing purposes.
Details are statet at:
http://publib.boulder.ibm.com/infocenter/eserver/v1r2/topic/eicaz/eicazzlpar.htm
-->--
In other words, PR/SM transforms physical resources into virtual resources so
that many logical partitions can share the same physical resources.
--<--
Still, from the OS point of view, the shared virtual resource is real
hardware. ConditionVirtualization must be set to false if the OS runs
directly on PR/SM (e.g. in an LPAR).
[zj: reorder code so that variables are not allocated when #if-def is
false. Add commit message.]
Lennart Poettering [Fri, 18 Jul 2014 11:59:55 +0000 (13:59 +0200)]
update TODO
Lennart Poettering [Fri, 18 Jul 2014 11:59:49 +0000 (13:59 +0200)]
resolved: add more const
Thomas Hindoe Paaboel Andersen [Fri, 18 Jul 2014 11:50:12 +0000 (13:50 +0200)]
terminal: add format attributes
Thomas Hindoe Paaboel Andersen [Fri, 18 Jul 2014 11:32:01 +0000 (13:32 +0200)]
terminal: silence warning
Tom Gundersen [Fri, 18 Jul 2014 11:25:18 +0000 (13:25 +0200)]
networkd-wait-online: fix comilation warning
sd_rtnl_message_read_string() was changed to take a const argument, update the users.
David Herrmann [Fri, 18 Jul 2014 11:00:30 +0000 (13:00 +0200)]
autogen: add "t" switch with --enable-terminal
Just temporarily add a "t" switch to "./autogen t" runs with
--enable-terminal. Once it's compile-tested enough, we can add it to the
default flags.
David Herrmann [Fri, 18 Jul 2014 10:58:00 +0000 (12:58 +0200)]
journal: reduce test-journal-send timeout from 10s to 1s
The sleep(10) in test-journal-send is quite aggressive. We need it only
for the journal to get our cgroup information. But even that information
is not vital to the test, so a sleep(1) should be just fine.
David Herrmann [Thu, 17 Jul 2014 09:10:53 +0000 (11:10 +0200)]
terminal: add systemd-subterm example
The systemd-subterm example is a stacked terminal that shows how to
use sd-term. Instead of rendering images and displaying it via X11/etc.,
it uses its parent terminal to display the page (terminal-emulator inside
a terminal-emulator) (like GNU-screen and friends do).
This is only for testing and not installed system-wide!
David Herrmann [Tue, 8 Jul 2014 13:11:29 +0000 (15:11 +0200)]
terminal: add screen-handling
The screen-layer represents the terminal-side (compared to the host-side).
It connects term_parser with term_page and implements all the required
control sequences.
We do not implement all available control sequences. Even though our
parser recognizes them, there is no need to handle them. Most of them are
legacy or unused. We try to be as compatible to xterm, so if we missed
something, we can implement it later. However, all the VT510 / VT440 stuff
can safely be skipped (who needs terminal macros? WTF?).
The keyboard-handling is still missing. It will be added once
systemd-console is available and we pulled in the key-definitions.
David Herrmann [Sun, 15 Jun 2014 12:50:00 +0000 (14:50 +0200)]
terminal: add parser state-machine
The term-parser is used to parse any input from TTY-clients. It reads CSI,
DCS, OSC and ST control sequences and normal escape sequences. It doesn't
do anything with the parsed data besides detecting the sequence and
returning it. The caller has to react to them.
The parser also comes with its own UTF-8 helpers. The reason for that is
that we don't want to assert() or hard-fail on parsing errors. Instead,
we treat any invalid UTF-8 sequences as ISO-8859-1. This allows pasting
invalid data into a terminal (which cannot be controlled through the TTY,
anyway) and we still deal with it in a proper manner.
This is _required_ for 8-bit and 7-bit DEC modes (including the g0-g3
mappings), so it's not just an ugly fallback because we can (it's still
horribly ugly but at least we have an excuse).
David Herrmann [Fri, 13 Jun 2014 17:00:29 +0000 (19:00 +0200)]
terminal: add page handling for terminals
The page-layer is a one-dimensional array of lines. Combined with the
one-dimensional lines, you get a two-dimensional page. However, both
implementations, lines and pages only deal with their own dimension. That
means, lines don't know anything about other lines, and pages don't know
anything about cells.
Apart from pages, this also introduces history objects. A history object
is a scroll-back buffer. As some pages like alt-buffers don't have
histories, we keep them separate.
Pages itself forward all cell-related operations to the related line. Only
line-related operations are directly handled by the page. This is mostly
scrolling and history. To support proper resizing, we also keep a
fill-state just like lines do for cells.
David Herrmann [Fri, 18 Jul 2014 10:41:37 +0000 (12:41 +0200)]
terminal: extend RGB attributes
There're 3 supported color-modes: term-color-codes, 256-color-code and
rgb-color. We now use the term-color as default so zero(attr) will do what
you'd expect. Furthermore, we split rgb and 256color so users can forward
them properly without requiring an internal RGB converter.
Furthermore, a "hidden" field according to VT510rm manual is added.
Lennart Poettering [Fri, 18 Jul 2014 10:34:02 +0000 (12:34 +0200)]
resolved: add LLMNR support for looking up names
Lennart Poettering [Fri, 18 Jul 2014 00:36:10 +0000 (02:36 +0200)]
shared: rename PROTO_ADDRESS_SIZE() to FAMILY_ADDRESS_SIZE()
We mostly use "family" to refer to AF_INET, AF_INET6, etc, let's use
this terminology here, too
Lennart Poettering [Fri, 18 Jul 2014 00:35:16 +0000 (02:35 +0200)]
sd-rtnl: make string returned by sd_rtnl_message_read_string() const
Thomas Hindoe Paaboel Andersen [Thu, 17 Jul 2014 21:53:59 +0000 (23:53 +0200)]
test-tables: fix build-scan
Tom Gundersen [Wed, 16 Jul 2014 09:05:25 +0000 (11:05 +0200)]
sd-network: fixup api
Do not expose link_is_loopback, people should just get this from rtnl directly.
Do not expose NTP servers as IP addresses, these must be strings.
Expose ifindex as int, not unsigned. This is what the kernel (mostly) and glibc uses.
Tom Gundersen [Wed, 16 Jul 2014 08:52:47 +0000 (10:52 +0200)]
networkd-wait-online: track links
Rather than refetching the link information on ever event, we liston to
rtnl to track them. Much code stolen from resolved.
This will allow us to simplify the sd-network api and don't expose
information available over rtnl.
Tom Gundersen [Thu, 17 Jul 2014 14:49:39 +0000 (16:49 +0200)]
sd-network: expose 'unmanaged' as a regular state
This is useful to save in the consumer of the lib, unlike ENODATA/EBUSY which
means that the user should wait until a useful state is available.
Thomas Hindoe Paaboel Andersen [Thu, 17 Jul 2014 19:12:39 +0000 (21:12 +0200)]
resolved: silence warnings
No need to write to r here since it will be overwritten as the first
step in parse_fail.
Thomas Hindoe Paaboel Andersen [Thu, 17 Jul 2014 18:23:53 +0000 (20:23 +0200)]
test-pty: silence a warning