Help has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...

Bug #829304

Mandatory capabilities are not taken into account when computing packet variants

Added by Máximo Castañeda about 3 years ago. Updated 11 months ago.

Start date:
Due date:
% Done:


Estimated time:


packet_handlers_get uses has_capability to compute packet variants. has_capability is documented to want the capability to check without '+', but packet_handlers_get is using them as they came.

So let's say you add a field to the city_info packet to tell the web client what the city tiles output is until it wises up and learns to calculate that itself, and you guard it with add-cap(CityTileOutput) to maintain compatibility with the official desktop client. My expectations for a client capstring would be:
  • no CityTileOutput: don't send me that field
  • CityTileOutput: I do understand it, but I don't need it, so I'm OK either way
  • +CityTileOutput: I do need that field, and we can't talk if you are not going to send it

The reality is that the server only sends the field in the second case.

Attached is a patch that seems to work for me. BUT: my expectations may be wrong and I'm guessing the qsort is there only for the later hashing of functional_capability.


#1 Updated by Marko Lindqvist 11 months ago

  • Category set to General
  • Status changed from New to Resolved
  • Sprint/Milestone set to 3.1.0

#2 Updated by Marko Lindqvist 11 months ago

  • Status changed from Resolved to Closed
  • Assignee set to Marko Lindqvist

Also available in: Atom PDF