Age | Commit message (Collapse) | Author |
|
1) Get rid of strchrnul use; this is a non-standard GNU extension that's
being used in one place.
2) Move MIN into src/common/fmemopen.c, where it's actually being used.
Thereafter, remove all includes of src/common/android.h and any mention
of android.c in the build files.
Bug: 22373707
Change-Id: Ide6e47a24291e6971d08b4abae2f1cad9c151e0e
|
|
https://chromium.googlesource.com/chromiumos/third_party/tlsdate into upstream
This is the initial merge of the Chromium OS fork of tlsdated.
It adds a dependency in libevent2 and removes the custom event
solution and adds a platform-specific hook for integrating with
platform signals (like network readiness).
Signed-off-by: <redpig@dataspill.org>
Conflicts:
Makefile.am
configure.ac
man/tlsdate-dbus-announce.1
man/tlsdated.8
src/Makefile.am
src/compat/clock-linux.c
src/compat/clock.h
src/conf-unittest.c
src/conf.c
src/include.am
src/proxy-bio.c
src/test/proxy-override.c
src/tlsdate-dbus-announce.c
src/tlsdate-helper.c
src/tlsdate.c
src/tlsdate.h
src/tlsdated-unittest.c
src/tlsdated.c
src/util.c
src/util.h
|
|
This gets tlsdate and tlsdate-helper working on FreeBSD 9.2-RELEASE.
|
|
tlsdated provides the daemonized integration of tlsdate and the host
system -- resumable time, DBus announcements, time-sync events, and so
on.
At present, it provides only netlink based wakeups and limited
time synchronization. On Chromium OS, proxy support and network
changes are integrated through external shell scripts monitoring
DBus. These scripts lack the robustness required for a production
grade time synchronization system.
This change is manyfold:
- Convert tlsdated "wakeup" input into events
- Convert tlsdate execution and status collection into a event-friendly technique
- Integrate libevent into the tlsdated design
- Integrate support for platform specific wake up events
- Integrate support for dynamic proxy resolution on each tlsdate call
- Integrate CrOS wakeup events: proxy changes, default network service change, power state/resume, etc
- Integrate time continuity checking using MONOTONIC clocks versus REALTIME for all wake events
- Integrate DBus support directly into the event loop to allow for message sending
and signal receipt (e.g., dbus_announce)
- Addition of DOT file for laying out event flows
- Split off time setting to a privileged helper by having tlsdate pass back time_t
- Added configure support for --enable-cros and libevent2 checking
- Support dynamic proxy resolution for multiple sources
- Fixed a NULL deref in source traversal
- Added "sync type" and priority
- Added DBus interface for SetTime, CanSetTime, LastSyncInfo methods.
- Added "sync source" to the TimeUpdated signal
- Updated existing unittests
- Add seccomp filter for priv'd time setter
- Added dynamic proxy per source so we can add a final source with no proxy.
- Style consistency: "find ./ -name '*.[ch]' -exec astyle --style=gnu -xd \{\} \;"
Followed by the same with sed -i -e 's/) )/))/g'
- Added DBus policy and interface files and a new dbus-client-group configure argument.
Design: https://docs.google.com/a/google.com/document/d/1U1y7KBMo-BgWPspzoyeO5gSmU6dMwEJBc2HNNkGMJzY/view
- Outstanding work: new unit and integration tests
BUG=chromium:271644
TEST=manually tested on x86_64, arm, and x86-32.
end-to-end autotest: https://chromium-review.googlesource.com/#/c/169141/
fixed up existing autotests: https://chromium-review.googlesource.com/174782
Change-Id: I0d24951182a768532d6d04eea2224ac70cf04052
Reviewed-on: https://chromium-review.googlesource.com/169131
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Tested-by: Will Drewry <wad@chromium.org>
Commit-Queue: Will Drewry <wad@chromium.org>
|
|
|
|
|
|
The ctype(3) routines take an int, but the only valid arguments are
EOF and values representable as unsigned char. This is what you get
out of, e.g., getc(3), but an arbitrary value of type char is not OK
because negative values will lead to nasal demons. Converting an
arbitrary value of type char to unsigned char is OK, since then we
have only non-negative values, and casting that to int makes it
clearer what's going on.
|
|
|
|
|
|
|
|
Android's libc lacks several functions required by tlsdate, so I've
dropped implementations of them in src/android and conditionally included
them where necessary.
|
|
|
|
|
|
|
|
The config file is a list of key/value pairs, separated by whitespace.
Signed-off-by: Elly Fong-Jones <ellyjones@chromium.org>
|