laforge submitted this change.
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.