History log of /external/tlsdate/src/proxy-bio.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a0f9aa398cbd2dc7e8e9d2fe6310fb422641655d 27-Aug-2015 Gilad Arnold <garnold@google.com> Handle absence of BIO_CTRL_DUP.

This constant is not defined in BoringSSL, so we don't need to handle
it.

Bug: 22373707
Change-Id: Id587bae5b38889ada14626a47e0d29c38e58c7bf
/external/tlsdate/src/proxy-bio.c
929185047856de2ee2a0a4b8638847d8ac524b7f 26-Aug-2015 Gilad Arnold <garnold@google.com> Change an argument type to compile against BoringSSL headers.

For some reason, there's a difference between how OpenSSL and BoringSSL
specify the type of this callback argument ('bio_info_cb *' vs
'bio_info_cb', respectively). While these should generally be
exchangeable, it turns out that using the former type with the latter
headers declarations fails due to an extra dereferencing level.

This fixes the problem with BoringSSL and is backward compatible when
building against OpenSSL.

Bug: 22373707
Change-Id: Ibad02749fc46f7be23d3e5b4fa205da130549c2b
/external/tlsdate/src/proxy-bio.c
8512b495d00051eb7d6e0421c36aa4666104f574 20-Oct-2014 Jacob Appelbaum <jacob@appelbaum.net> cosmetic printing refactor
/external/tlsdate/src/proxy-bio.c
2d9fd234e2887fdb29c6c09f66ade0a8b32c3ba7 16-Sep-2014 Will Drewry <wad@chromium.org> Merge branch 'master' of 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
c45952f88c568046a02bc0aea793008d8bb37755 03-Sep-2013 Will Drewry <wad@chromium.org> CHROMIUM: Initial work eventizing tlsdated

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>
/external/tlsdate/src/proxy-bio.c
c9eeee07453ba32b3344180584554736b0fcb5bd 17-Apr-2013 Taylor R Campbell <campbell@mumble.net> Implement strnlen locally if the system libc doesn't have it.

Needed for, and currently built only on, NetBSD 5.
/external/tlsdate/src/proxy-bio.c
5b0ee57271eab109f103b42a326fc5b126e3bbda 06-Feb-2013 Jacob Appelbaum <jacob@appelbaum.net> more g++ improvements that also keeps gcc happy
/external/tlsdate/src/proxy-bio.c
fa765306c820607423e1d6eb526a027a7a5f35dc 18-Jan-2013 Jacob Appelbaum <jacob@appelbaum.net> Update includes to properly reference .h files from the root.
/external/tlsdate/src/proxy-bio.c
a9e52fe816b570da68138394c4884c7db7171580 05-Nov-2012 Elly Fong-Jones <ellyjones@google.com> proxy-bio: Fix up buffer length handling logic.

The buffer length was being badly mishandled such that if the returned hostname
was 254 bytes long, we'd repeatedly read zero bytes and get stuck in an endless
loop. There were also a bunch of places that would accept short reads/writes
during protocol negotiation which have now been changed to only accept exact
lengths.

Signed-off-by: Elly Fong-Jones <ellyjones@chromium.org>
/external/tlsdate/src/proxy-bio.c
547f808ad83d57c3f42bd8ded6ba520fa998fc60 02-Nov-2012 Elly Fong-Jones <ellyjones@google.com> proxy-bio fixes

1. Send the Host header with HTTP CONNECT, as it is required by RFC 2616,
section 14.23:

A client MUST include a Host header field in all HTTP/1.1 request
messages . If the requested URI does not include an Internet host
name for the service being requested, then the Host header field MUST
be given with an empty value. An HTTP/1.1 proxy MUST ensure that any
request message it forwards does contain an appropriate Host header
field that identifies the service being requested by the proxy. All
Internet-based HTTP/1.1 servers MUST respond with a 400 (Bad Request)
status code to any HTTP/1.1 request message which lacks a Host header
field.

2. Drain the response buffer for SOCKS5 connections even if the hostname is too
long for us to store (i.e., is longer than NI_MAXHOST); this could happen if
NI_MAXHOST < 255, but I believe there are no systems on which this is true in
practice.

3. Use unsigned buffers in SOCKS4/SOCKS5 code to save on casts to/from unsigned.

4. Return an int from BIO_proxy_set_host() so we can signal malloc failures to
the caller.

Signed-off-by: Elly Fong-Jones <ellyjones@chromium.org>
/external/tlsdate/src/proxy-bio.c
c88a9f7f976f8495fcf27717a292bd1070828192 02-Nov-2012 Jacob Appelbaum <jacob@appelbaum.net> Move common functions to util.c and add verb() to proxy code
/external/tlsdate/src/proxy-bio.c
5cc5ede6e2ef980880ade9a508e5d84498ba2f84 02-Nov-2012 Jacob Appelbaum <jacob@appelbaum.net> fix cert verification when proxy is used
/external/tlsdate/src/proxy-bio.c
6964e0ad9224b33ce5eec47d672ee1ab21953982 31-Oct-2012 Jacob Appelbaum <jacob@appelbaum.net> retab things
/external/tlsdate/src/proxy-bio.c
4687c5d2e6ba965d362568f9f56239e24d76966d 03-Oct-2012 Elly Fong-Jones <ellyjones@chromium.org> Add proxy support

Support SOCKS4a, SOCKS5, and HTTP proxies through -x / --proxy
<schema>://<host>:<port>. No auth supported yet.

BUG=chromium-os:31505
TEST=unit

Change-Id: Ifd430ca1ed026dcaa33a91dfa07cc7eb7e57eaee
Signed-off-by: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/34566
(cherry picked from commit 9c3e49f2f4823c822fe29342e3eebbd38154d55a)

Conflicts:

src/Makefile.am
src/tlsdate-helper.c
/external/tlsdate/src/proxy-bio.c