View Issue Details

IDProjectCategoryView StatusLast Update
0005385GNUnetcadet servicepublic2019-02-28 10:17
ReporterChristian Grothoff Assigned ToChristian Grothoff Due Date
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionfixed 
Platformi7OSDebian GNU/LinuxOS Versionsqueeze
Product VersionGit master 
Target Version0.11.0Fixed in Version0.11.0 
Summary0005385: gnunet_cadet_service.h monitoring functions use bad API
DescriptionWe should have a proper asynchronous API with _cancel_ functions and separate (!) handles and separate (!) unix domain sockets/message queues for _each_ monitoring operation.

Basically, functions like CADET_get_tunnel() should take a CFG object and return a handle, and have a CADET_get_tunnel_cancel() (which just destroys the MQ).

This design change applies to get_tunnels, get_tunnel(), get_peers(), request_dump(), and if possible also to get_channel() -- but here we need to fix the need for the channel_number which AFAIK is CADET_Handle-specific. Maybe something where we iterate over all channels to a particular peer?

Also, the CADET_ChannelCB should likely be modified to not pass a bunch of arguments (root, dest, 4x uint32_) but instead _one_ 'const struct ChannelInfo' that contains all of these arguments as fields (more extensible!).
Additional InformationThis should be prioritized as good monitoring will help diagnose the other issues. Things like # pending messages (flow control) for better understanding 0005370 might also be added.
TagsNo tags attached.

Activities

Christian Grothoff

2019-01-26 19:51

manager   ~0013473

a5a54c510..7fc78674a starts with the re-design in earnest, removing the old logic from gnunet-cadet and libgnunetcadet. Leftovers that will likely be useful are in the cadet_api_*.c files. Note that the new API is hardly final, for now only the worst design flaws of the old one were corrected in the header.

Christian Grothoff

2019-01-27 03:30

manager   ~0013474

1c9f269ea5cadb20bb5f7fc209274ba5d6af4749 concludes the implementation work for the new API, more testing required though...

Christian Grothoff

2019-01-27 15:37

manager   ~0013483

Tested, works.

Issue History

Date ModifiedUsernameFieldChange
2018-07-03 12:09Christian GrothoffNew Issue
2018-07-03 12:09Christian GrothoffStatusnew => assigned
2018-07-03 12:09Christian GrothoffAssigned To => Bart Polot
2018-07-06 22:26Christian GrothoffTarget Version => 0.11.0
2019-01-26 05:11Christian GrothoffAssigned ToBart Polot => Christian Grothoff
2019-01-26 19:51Christian GrothoffNote Added: 0013473
2019-01-27 03:30Christian GrothoffNote Added: 0013474
2019-01-27 15:37Christian GrothoffStatusassigned => resolved
2019-01-27 15:37Christian GrothoffResolutionopen => fixed
2019-01-27 15:37Christian GrothoffFixed in Version => 0.11.0
2019-01-27 15:37Christian GrothoffNote Added: 0013483
2019-02-28 10:17Christian GrothoffStatusresolved => closed