diff options
author | Jose Bollo <jose.bollo@iot.bzh> | 2019-07-10 15:18:02 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2019-07-12 18:26:00 +0200 |
commit | bc38af3e79fbd6256c209a0673601832429e7418 (patch) | |
tree | 4d9d14c0abce569585cf71fd36b56e3f0560df53 /include/afb | |
parent | c8cc0d6f3df5bb3eac75ee2665639fc0ab2c35fe (diff) |
afb-xreq: Forbids (un)subscribes after reply
Allowing to subscribe to a request that was replied
was possible and lead to problem revealed by issues
SPEC-2542 and SPEC-2599 (these issues are more related
to processing unordered incoming messages).
The choice was
- fix the bug and authorize (un)subscribe after reply
- forbids to (un)subscribe after reply
Second solution was chosen for its simplicity and
its networking efficiency.
Bug-AGL: SPEC-2542
Bug-AGL: SPEC-2599
Change-Id: I09f48b760b1fd6f70d42b80df3c8053696c45966
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'include/afb')
-rw-r--r-- | include/afb/afb-req-x1.h | 2 | ||||
-rw-r--r-- | include/afb/afb-req-x2.h | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/include/afb/afb-req-x1.h b/include/afb/afb-req-x1.h index 6761521e..97b14428 100644 --- a/include/afb/afb-req-x1.h +++ b/include/afb/afb-req-x1.h @@ -274,6 +274,7 @@ static inline int afb_req_x1_session_set_LOA(struct afb_req_x1 req, unsigned lev * * Establishes for the client link identified by 'req' a subscription * to the 'event'. + * Establishing subscriptions MUST be called BEFORE replying to the request. * Returns 0 in case of successful subscription or -1 in case of error. */ static inline int afb_req_x1_subscribe(struct afb_req_x1 req, struct afb_event_x1 event) @@ -286,6 +287,7 @@ static inline int afb_req_x1_subscribe(struct afb_req_x1 req, struct afb_event_x * * Revokes the subscription established to the 'event' for the client * link identified by 'req'. + * Revoking subscription MUST be called BEFORE replying to the request. * Returns 0 in case of successful subscription or -1 in case of error. */ static inline int afb_req_x1_unsubscribe(struct afb_req_x1 req, struct afb_event_x1 event) diff --git a/include/afb/afb-req-x2.h b/include/afb/afb-req-x2.h index 5111f2f0..21bbc095 100644 --- a/include/afb/afb-req-x2.h +++ b/include/afb/afb-req-x2.h @@ -458,6 +458,8 @@ int afb_req_x2_session_set_LOA( * Establishes for the client link identified by 'req' a subscription * to the 'event'. * + * Establishing subscription MUST be called BEFORE replying to the request. + * * @param req the request * @param event the event to subscribe * @@ -476,6 +478,8 @@ int afb_req_x2_subscribe( * link identified by 'req'. * Returns 0 in case of successful subscription or -1 in case of error. * + * Revoking subscription MUST be called BEFORE replying to the request. + * * @param req the request * @param event the event to revoke * |