| Branch: | Tag: | Revision:

gdp / gdp / gdp_chan.c @ master

History | View | Annotate | Download (28.9 KB)

# Date Author Comment
517e3de3 01/19/2020 09:40 AM Eric Allman

Add syntax to router name parsing to allow GDPnames to be associated
with the IP addresses. This is needed to support RtCerts. The syntax
is to include the base64-encoded GDPname after a slash, e.g.,
"gdp-01/0XwnpR-2F8dFikWnCpqTX4Bl7gzHTQlnER2pOH9qoOQ. For now the...

62b30482 01/14/2020 01:05 PM Eric Allman

Make extreme debug tests consistent.

47bf70a0 01/07/2020 12:11 PM Eric Allman

Delete some assertions that had zero effect (unsigned >= 0 is always
true); change _gdp_chan_advert_commit to _gdp_chan_advert_flush to avoid
the confusing and inaccurate name.

76b104d6 06/18/2019 02:54 PM Eric Allman

Fix a bug that might cause "OK" status codes to be interpreted as not
OK. This would only happen if the OK status included a value between 29
and 31 bits large.

9c42eb2e 04/02/2019 05:51 PM Eric Allman

Improved debugging on advertisements.

a1e5eca3 03/22/2019 11:59 AM Eric Allman

Fix advertising and withdrawal to actually delay between each
advertisement. Required changing handling of event loop startup and

4d87f390 03/22/2019 11:57 AM Eric Allman

Fix some debugging output.

bd472f67 03/20/2019 03:32 PM Eric Allman

Add some scaffolding to allow multiple advertisements in a single PDU.

3d1154d8 01/27/2019 03:39 PM Eric Allman

Improve debugging of low level PDU glitches in headers.

a65f7088 01/24/2019 01:05 PM Eric Allman

Be more vocal on startup errors (HONGDS unconfigured and router

c87dd166 01/23/2019 07:56 AM Eric Allman

Update license date on all files. No functional changes.

6795b50c 01/03/2019 12:29 PM Eric Allman

Make debug output a bit less verbose (don't print message data unless

80da996e 10/24/2018 12:53 PM Eric Allman

Mega-change: new object creation API with updated metadata; internal
name is hash of metadata, not hash of human name; query and maintain
human-oriented name to GDPname directory (HONGD).

34e502ee 09/12/2018 01:41 PM Eric Allman

Second cut at sorting asynchronous data records. Currently all done with
simulation (-Dtest.gdp.chan.seqno=102 randomizes the incoming sequence
numbers), and so missing or duplicated incoming records have not been

5edf4ad2 08/23/2018 12:43 PM Eric Allman

Pass Layer 4 network sequence number to higher layers.

2f425ceb 08/16/2018 02:18 PM Eric Allman

Pull out old PROTOCOL_L4_V3 ifdef and associated code; add debugging
info to show more detail in off-the-wire L4 PDU headers; fix a memory

55f8e918 07/12/2018 02:28 PM Eric Allman

Add new administrative parameters to ignore SIGPIPE in gdplogd
(swarm.gdplogd.ignore.sigpipe) and applications in general
(swarm.gdp.ignore.sigpipe). This allows the library to reconnect to the
router if the connection gets interrupted during a write. However,...

f67f68ac 07/12/2018 01:24 PM Eric Allman

Ignore SIGPIPE on router connections just in case the router goes away;
this will cause the write to return EPIPE, which should make the GDP
library attempt a reconnect.

54a79238 07/12/2018 07:53 AM Eric Allman

Give more debugging output when GDP clients initiate a channel close.

805145e8 06/25/2018 12:36 PM Eric Allman

Give a reasonable error code if a payload length won't fit into an uint16_t.

7db86a07 06/24/2018 12:04 PM Eric Allman

Implement _gdp_chan_withdraw.

58b43678 06/18/2018 06:14 PM Eric Allman

Fix or expand on FIXME comments.

4af4baed 05/25/2018 01:22 PM Eric Allman

Additional debugging.

fa7cfdb9 05/25/2018 01:22 PM Eric Allman

Snapshot: compiles cleanly with updated protocol and crypto
support, but completely untested.

f67d0f64 04/26/2018 10:46 AM Rick Pratt

noticed hdr_len may be used uninitialized has returned to master

c321a454 04/26/2018 10:02 AM Rick Pratt

That, which is less than desired, but upon doubling is no more.

240b492f 04/19/2018 09:05 AM Rick Pratt

min header length adjustment to match consolidated header

92943202 04/18/2018 03:44 PM Eric Allman

Updates to Layer 4 PDU header for consistency with Rick. Untested,
since I don't have a router that speaks this protocol.

f45d4ffe 04/17/2018 02:24 PM Eric Allman

First cut on updated Net4 protocol. This moves some things from the
router's overlay header into the L4 PDU. In particular, the fields
needed for fragmentation and sequencing are now included. At some point
we know we'll want to use UDP for the client-router communication, hence...

76d5d72e 04/17/2018 10:41 AM Eric Allman

Fix compile warning --- uninitialized variable used if a PDU comes in
with an unknown version number.

5c7711e2 03/14/2018 11:52 AM Eric Allman

Updates for Net4 protocol based on later discussions with Griff and

4f4cfd9f 03/01/2018 01:38 PM Eric Allman

Add another router ToS status indicating a clue that some data was not
delivered. It's unclear if we will use this, but I wanted to reserve
the magic number.

e5e468e7 02/28/2018 09:56 AM Eric Allman

Add GDP_TOS_ROUTE_ACK in the L4 PDU tos field for the network to use for
switch-to-switch acknowledgements. It should never appear to the GDP

e003f3c1 02/22/2018 04:52 PM Eric Allman

Avoid null pointer dereferences.

53393e9c 02/20/2018 03:26 PM Eric Allman

Snapshot of work on getting subscriptions working under Net4. Still
has several problems.

1045786b 02/10/2018 04:54 PM Rick Pratt

return keep reading when payload is short, just like when hdr is short

ab8e0a3a 02/08/2018 02:09 PM Eric Allman

Fix problem with restarting connections on multiple router restarts;
turns out it was due to a misunderstanding about how libevent works.

0c27616d 02/06/2018 11:34 AM Eric Allman

Improved debugging for incoming PDUs.

97139c4e 02/06/2018 10:02 AM Eric Allman

Try to make sure that PDUs are sent atomically when possible.

e35bf5f3 02/01/2018 01:42 PM Eric Allman

First cut on getting Layer 4 Version 4 network protocol running. Not
yet working with Rick's code, but it does work with a hacked
gdp_router_click. However, advertising will need to be changed.

d2422e31 01/23/2018 05:06 PM Eric Allman

Fixes to prevent C++ compile errors for variables that are not
initialized and not used. This isn't a problem with C, and it's not a
bug, just an annoying C++-ism.

fc0cbc23 01/23/2018 04:09 PM Eric Allman

Changes necessary to compile under C++ because it doesn't understand
that (void *) is compatible with other pointer types. This adds a lot
of explicit casts that are not needed in C.

d65c01e2 01/09/2018 11:18 AM Eric Allman

First cut at running Layer 5 network protocol version 4 over old
(version 3) Layer 4 stack. Substantial parts are unimplemented,
including signature generation and checking, read or subscribe by
timestamp or hash, and others. No asynchronous operations including...

b88f4f97 12/11/2017 04:01 PM Eric Allman

Tweaks to Layer 4 Version 4 protocol so the networking layer can get

a8c1c09c 11/27/2017 09:12 AM Eric Allman

Fix some minor compiler warnings.

73a41934 11/17/2017 09:55 AM Eric Allman

Tentatively working on v3 network protocol.

5870de58 11/16/2017 03:00 PM Eric Allman

Additional debugging during initialization.

6c983368 11/13/2017 10:09 AM Eric Allman

Snapshot. Trying to get advertising working on startup. This may be a
larger problem if advertisements need to use challenge-response given
that the I/O thread has been eliminated in gdplogd.

cc4a7f8a 11/09/2017 09:08 AM Eric Allman

Snapshot. Compiles but doesn't work.

218aa128 11/08/2017 12:38 PM Eric Allman

Fix some glitches with context data during startup/shutdown.

0480acd1 11/08/2017 12:38 PM Eric Allman

Mostly documentation updates.

f2bf61a4 11/08/2017 12:38 PM Eric Allman

Snapshot. Not tested.

5a73c6ad 11/08/2017 12:36 PM Eric Allman

First cut at new net protocol. Compiles, but not yet tested (not even
once --- do not try to run this!).

8e53c065 10/07/2017 10:31 PM Eric Allman

Be more aggressive about printing errors during initialization.

99c18f45 09/16/2017 08:33 AM Eric Allman

Better error checking.

a1c305a1 07/15/2017 03:07 PM Eric Allman

Slight tweak to channel debugging options.

a72e8d44 03/23/2017 09:27 PM Eric Allman

Declare expected lock ordering for chan, datum, gcl, and req objects.

897accec 02/06/2017 10:41 AM Eric Allman

Update licenses to 2017.

339ef307 11/29/2016 12:12 PM Eric Allman

Add runtime flag to turn off Nagle algorithm (TCP_NODELAY).

8204d4b2 09/28/2016 10:45 AM Eric Allman

Implement gdp_gcl_read_async. This also fixes some obscure problems
with other asynchronous operations, and tweaks debugging flags to make
it easier to pick out the operations you want to see.

f05b7086 08/19/2016 08:29 AM Eric Allman

Fix bug that sometimes caused crashes if an invalid DNS name was given
for a GDP router.

197e9ea3 08/18/2016 09:36 AM Eric Allman

Finish putting gdp_buf abstraction in code (it was previously mixed with
libevent evbuffer calls).

ed4ec0a4 08/08/2016 08:01 AM Eric Allman

Fix resource exhaustion problem when gdplogd restarts.

24615018 08/02/2016 12:47 PM Eric Allman

Add debugging for Zeroconf code.

f98854fe 07/12/2016 12:12 PM Eric Allman

Make it possible to compile out Zeroconf for systems that don't have
Avahi available.

ca2f20fa 06/21/2016 03:37 PM Eric Allman

Avoid deadlock in channel handling (bufferevent locking).

d9ae7320 12/12/2015 03:52 PM Nicholas Sun

Merge branch 'avahi-reformat'

9ef621bf 12/09/2015 12:55 PM Eric Allman

Allow Zeroconf return of ipv6-addr:port without [] around the address
part. Note well: a bare ipv6-addr without ":port" will be mis-parsed.

58af2b0f 12/03/2015 03:49 PM Nicholas Sun

Rename globals and structs, get rid of mixed whitespace, and break up long lines

6bd5476b 12/01/2015 01:22 PM Eric Allman

Update license. No code changes.

055d3009 11/21/2015 01:20 PM Eric Allman

Include copyright in all files. There are scripts to do bulk
replacement of the copyright if desired.

c341565e 11/05/2015 07:44 PM Nicholas Sun

retab everything

92bb148d 10/20/2015 04:27 PM Eric Allman

Skip processing PDUs that failed to read, e.g., for bad version number.

3e44e071 10/09/2015 02:57 PM Eric Allman

A bit more output in demo mode.

728cb9ee 10/08/2015 09:47 AM Nicholas Sun

intergrated zeroconf into main gdp lib

5817f5a0 10/07/2015 12:19 PM Eric Allman

Make default router port be in the swarm.gdp.router.port administrative

a0892399 08/24/2015 05:25 PM Eric Allman

Debugging nit: old function name in debug message.

64fc9ad1 03/08/2015 01:14 PM Eric Allman

Comments and code formatting.

04ceac3d 02/12/2015 11:46 AM Eric Allman

Try to at least reduce the number of compile warnings on gcc. It
compiles clean on the NUC (Debian 7, gcc 4.7.2) but still gives some
errors on Ubuntu 14.04.1 (gcc 4.8.2).

bf6ddfe3 02/08/2015 05:54 PM Eric Allman

Finish conversion of "packet" to "PDU". Mostly comments.

e66ccf23 01/29/2015 07:21 PM Eric Allman

Fix resource leak when routing layer goes away.

cf71c5ea 01/29/2015 11:39 AM Eric Allman

Implement gdplogd shutdown actions: withdraw advertisements, explicitly
terminate all subscriptions.

2c00a81e 01/28/2015 10:51 AM Eric Allman

Fix problem that would cause _gdp_chan_open to return "connected" when it actually wasn't connected.

c3be91f6 01/28/2015 09:19 AM Eric Allman

Improved debugging; a few things that might be useful to end users at
debug levels 1 and 2.

21ab3878 01/27/2015 12:12 PM Eric Allman

Unify command and ack/nak processing; unify Associative and LRU GCL
caches; multiple other cleanups.

f70d235d 01/22/2015 04:44 PM Eric Allman

Fix reconnect so it works for applications as well as gdplogd.

de0c9501 01/22/2015 12:58 PM Eric Allman

Add another wakeup, just in case. (Nothing is using the channel state
at this point --- just eliminate it?)

08709feb 01/22/2015 12:53 PM Eric Allman

Restarting when the routing layer goes away now works. Cleanup needed.

857ddc7c 01/22/2015 10:23 AM Eric Allman

Snapshot in getting reconnection going --- still not there.

7de00502 01/21/2015 11:03 AM Eric Allman

Fix fallbacks on open of routing layer (still need to reconnect when a
connection is lost).

7a52336b 01/21/2015 09:01 AM Eric Allman

Snapshot in getting fallbacks for connections to the routing plane.
Still doesn't work, but at least works for the case where the first
address in the list is available. It's also clear that _gdp_req_new
needs substantial work; as it is, gdplogd can handle commands and...