laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/37511?usp=email )
Change subject: osmo-smdpp + es9p_client: HTTP status 204 is used for handleNotification ......................................................................
osmo-smdpp + es9p_client: HTTP status 204 is used for handleNotification
As SGP.22 states, the handleNotification endpoint uses HTTP status 204, not 200 (due to its empty body).
Change-Id: I890bdbd3e1c4578d2d5f0367958fdce26e338cac --- M osmo-smdpp.py M pySim/esim/es9p.py 2 files changed, 16 insertions(+), 0 deletions(-)
Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved
diff --git a/osmo-smdpp.py b/osmo-smdpp.py index e9638aa..a044b9b 100755 --- a/osmo-smdpp.py +++ b/osmo-smdpp.py @@ -481,6 +481,9 @@ @rsp_api_wrapper def handleNotification(self, request: IRequest, content: dict) -> dict: """See ES9+ HandleNotification in SGP.22 Section 5.6.4""" + # SGP.22 Section 6.3: "A normal notification function execution status (MEP Notification) + # SHALL be indicated by the HTTP status code '204' (No Content) with an empty HTTP response body" + request.setResponseCode(204) pendingNotification_bin = b64decode(content['pendingNotification']) pendingNotification = rsp.asn1.decode('PendingNotification', pendingNotification_bin) print("Rx %s: %s" % pendingNotification) diff --git a/pySim/esim/es9p.py b/pySim/esim/es9p.py index 41f2eeb..2c4b10f 100644 --- a/pySim/esim/es9p.py +++ b/pySim/esim/es9p.py @@ -136,6 +136,7 @@ 'pendingNotification': param.PendingNotification, } input_mandatory = ['pendingNotification'] + expected_http_status = 204
# ES9+ CancelSession function (SGP.22 section 6.5.2.10) class CancelSession(Es9PlusApiFunction):