| Branch: | Tag: | Revision:

gdp / gdp / gdp_pdu.c @ master

History | View | Annotate | Download (9.11 KB)

# Date Author Comment
c87dd166 01/23/2019 07:56 AM Eric Allman

Update license date on all files. No functional changes.

e6319882 09/04/2018 09:09 AM Eric Allman

First pass at ordering results of asynchronous reads. Works if the
reads come in pre-sorted, but so far untested for out-of-order delivery.

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

Pass Layer 4 network sequence number to higher layers.

80b79281 07/31/2018 01:07 PM Eric Allman

Remove vestiges of old signature implementation.

e95fef13 07/20/2018 11:59 AM Eric Allman

First cut at fixing bug that sometimes caused an "End of Results" PDU to
be delivered before some of the results themselves. This involves
passing a "number of results sent" field in the "End of Results" PDU and
saving that PDU until the indicated number of results are processed....

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

Updates for Net4 protocol based on later discussions with Griff and

8bebf0e3 02/26/2018 11:11 AM Eric Allman

Get basic subscriptions working again.

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

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

5aae0d62 02/07/2018 01:32 PM Eric Allman

pdu->msg might be null in gdp_pdufree()

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.

4a89fdda 01/17/2018 11:34 AM Eric Allman

First cut at flattening out protobuf definition. Some changes to data
structure printing (e.g., _gdp_pdu_dump) to get indenting more rational
so as to make reading the output easier.

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...

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

Tentatively working on v3 network protocol.

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

Fix some glitches with context data during startup/shutdown.

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!).

fec93aac 10/24/2017 02:38 PM Eric Allman

First cut at separating GCL instances (GINs) from GDP Objects (GOBs).
This is intended to fix some semantic problems with subscriptions. End
users always use GINs (aliased to gdp_gcl_t for now for compatibility),
and there is one GIN for each call to gdp_gcl_open (i.e., no returning...

1ca7751e 09/01/2017 03:45 PM Eric Allman

More work on making helgrind happy. This seems to be pretty close,
maybe worth a try in production.

9cacb7ea 08/29/2017 04:43 PM Eric Allman
  • Fix resource leak on some subscriptions.
  • Fix bogus assertion failure on gdplogd shutdown.
66f6c374 08/02/2017 09:11 AM Eric Allman

Make Helgrind annotations work properly for (most?) race conditions.

2a8cda22 06/24/2017 02:50 PM Eric Allman

Cleanup (and hopefully simplification) of assertion subsystem. Lots of
changes, but nothing particularly obtuse.

7882a3b0 03/23/2017 10:13 PM Eric Allman

Add order specification for some leaf locks.

e0adeb80 03/02/2017 03:25 PM Eric Allman

Fix some printf type disagreements.

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

Update licenses to 2017.

e7b2a80c 11/22/2016 02:22 PM Eric Allman

Extensive work on reliability, notably sharing a datum between threads.
Increases reliability, but still not fully tested. Basic things seem to
work though. Note: this may disrupt the replication code.

2bd3be0e 10/28/2016 11:24 AM Eric Allman

First cut at using kinder, gentler assertions (mostly in gdp library).

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.

aca97e21 09/23/2016 02:17 AM Eric Allman

Code & debug output formatting (no semantic changes).

1aa4fc2c 09/04/2016 03:14 PM Eric Allman

Fix problem raised by issue #16 (threaded applications failed in
unpredicatable ways). The problem was that calls to gdp_gcl_open need to
be single threaded so that there will be a unique name => handle mapping
for GCLs. This puts a mutex around the entire open call; not ideal...

0d8c13e8 08/27/2016 08:36 AM Eric Allman

Make many parameters "const" where possible.

7309e01b 08/24/2016 02:19 PM Eric Allman

Improved error debugging output.

e270780e 08/23/2016 05:22 PM Eric Allman

Avoid core dump on ep_crypto_md_clone failure.

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

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

f7fbf16f 08/18/2016 07:41 AM Eric Allman

Fix problem with inconsistent signatures. Might this be better done by
just eliminating the datum->siglen field? It's implied by the size of
the datum->sig buffer.

3ff10238 08/03/2016 10:32 AM Eric Allman

Improved debugging in _gdp_pdu_out to try to diagnose signature write

7d9c87be 07/29/2016 01:35 PM Eric Allman

Produce a bit more debugging output for an error we are seeing.

d2647d1f 07/26/2016 07:34 PM Eric Allman

Next take on read-by-timestamp. This version works for read, multiread,
and subscribe. There are still some glitches (e.g., you can't have a
starting timestamp in the future) but fixing these would require major
code restructuring, and besides, you can't specify a starting record...

c16d74e0 06/21/2016 03:44 PM Eric Allman

Extra assertions for strange I/O conditions.

f2aaebcd 06/20/2016 05:17 PM Christopher Brooks

Avoid segfault if the daemon is not running

The Python interface was triggering a segfault if the daemon was not running.

To replicate, create gdp/lang/python/apps/
import unittest2 as unittest
except ImportError:
import unittest...

79e8cd8a 06/15/2016 12:41 PM Eric Allman

Fix problem where signature buffer wasn't getting flushed.

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.

3bdf7e92 10/28/2015 03:26 PM Eric Allman

Better commenting on PDU layout

25856156 10/27/2015 10:42 AM Eric Allman

Avoid NULL pointer dereference.

94d1125c 10/20/2015 04:26 PM Eric Allman

Improved debugging output.

2f0aa784 10/11/2015 07:45 AM Eric Allman

Avoid NULL pointer deref when sending signature in PDU.

adcc08b6 10/01/2015 05:03 PM Eric Allman

Leave space in log headers and index records for extent ids.
Include the name of the log in the log header (in case it gets detached
from its file name).
Leave additional space in log header for possible future use.

c8e97446 10/01/2015 11:58 AM Eric Allman

Change on-disk log to store signature.
Return that signature on READ commands.
Update reader-test to add a -v flag to print signature info.
Document new interfaces.

24e7ddfa 08/12/2015 11:46 AM Eric Allman

Change PDU version number to 3.

034d97fd 07/30/2015 12:06 PM Eric Allman

Add creation time to logs. This also changes the ep_time_format and
ep_time_print APIs.

9a47c6c7 07/24/2015 09:38 AM Eric Allman

Another signing snapshot: signatures are created and sent but not
checked. Metadata is returned when a GCL is opened. Still have a
problem with reference counting of GCL handles.

f80ae9c0 07/22/2015 09:54 AM Eric Allman

Snapshot adding signing. Signatures are computed but not sent or

932f745e 03/02/2015 02:28 PM Eric Allman

Cleanup prior to code review: chiefly comments, a bit of code reordering
for better flow.

7c79c6bc 02/20/2015 02:08 PM Eric Allman

Significant changes to locking and subscriptions:
* Locks on gdp_req_t are now more extensive to avoid data races.
* Care is given to prevent subscription data being processed before
the subscription itself is in place.
Minor changes:
* Move channel pointer into gdp_pdu_t purely as a convenience when...

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

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

3537d203 02/06/2015 09:14 AM Eric Allman

Clean up some debugging and error messages.

20dd7a58 02/05/2015 11:19 AM Eric Allman

Do selective file locking to make debug output easier to read.

0a890253 02/02/2015 07:46 AM Eric Allman

Somehow the default setting of the routing name got lost.

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

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

704c6e35 01/28/2015 07:34 AM Eric Allman

Make request-id field required in PDU to make the router code easier.

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

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

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...

35c01e10 01/09/2015 09:40 AM Eric Allman

Change data lengths to 4 bytes; if longer PDUs are allowed there are
problems on 32-bit machines.

54e73f13 01/05/2015 01:27 PM Eric Allman

First cut on the dual-layer model. The old GDP daemon is now the GDP
log daemon; instead of listening to connections it initiates them. This
commit does not include the routing layer.

efa46684 12/29/2014 11:55 AM Eric Allman

First cut at new architecture for GDP (separate routing from log layer).
This compiles but does not run.

a0a21282 12/27/2014 03:48 PM Eric Allman

Adjustments for new PDU format, better error checking, etc.

4618b00d 12/27/2014 12:20 PM Eric Allman

Change the PDU format again to make a routing module easier. It was
necessary to make the signature size explicit, so you didn't have to
know the details of the signature algorithm to use it.

71eb3fe4 12/26/2014 08:54 AM Eric Allman

Arrange to fetch our name (from configuration) or create a name on

549b367d 12/26/2014 07:55 AM Eric Allman

Begin change to new on-wire protocol. Involves lots of renaming.
Amazingly it still seems to run.