Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Trac Trac
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Issues 246
    • Issues 246
    • List
    • Boards
    • Service Desk
    • Milestones
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • Legacy
  • TracTrac
  • Issues
  • #17000
Closed (moved) (moved)
Open
Created Sep 07, 2015 by Karsten Loesing@karsten

Allow to distinguish between relay and bridge descriptors

So far, we did not distinguish between relay and bridge descriptors in the case of server descriptors and extra-info descriptors. This works just fine, because we tried hard to re-use existing keywords in relay descriptors for sanitized contents in bridge descriptors to facilitate parsing.

However, some applications process both relay and bridge descriptors and need to add workarounds for distinguishing between the two. For example, they couldn't just read the contents of CollecTor's recent/ directory, because they wouldn't be able to know whether a ServerDescriptor instance was published by a relay or bridge. Or even worse, if an application expects a given directory to contain relay descriptors and that directory suddenly contains bridge descriptors, that application wouldn't notice.

I pushed branch relay-bridge-descs to my public repository which attempts to fix this. Please review.

This change adds new interfaces to distinguish between relay and bridge descriptors. It still supports the existing two interfaces that don't make this distinction. Those two interfaces are not deprecated, because it's okay if an application does not care whether a descriptor was published by a relay or bridge.

This change is in parts based on a discussion with atagar. Thanks!

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking