impl / libcurvecpr

A portable implementation of CurveCP
40 stars 10 forks source link

If a message is successfully sent but the sendq_move_to_sendmarkq(...) operation fails, it will be resent indefinitely #1

Closed impl closed 11 years ago

impl commented 11 years ago

This is because sendq_move_to_sendmarkq(...) will never be reinvoked, so the message remains at the head of the sendq.

Instead, sendq_move_to_sendmarkq(...) should be invoked every time a message with a valid block is sent, even if it's a retry. This change would slightly change the semantics of the operation such that any implementations will have to check whether the block passed in is actually the head of the sendq.