laforge submitted this change.

View Change


Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved
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(-)

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):

To view, visit change 37511. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I890bdbd3e1c4578d2d5f0367958fdce26e338cac
Gerrit-Change-Number: 37511
Gerrit-PatchSet: 5
Gerrit-Owner: laforge <laforge@osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-MessageType: merged