From 92bae20b49a8f3b441dbf1bc821528956876bfd5 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Tue, 16 Jul 2024 16:53:54 +0200 Subject: [PATCH] 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 --- osmo-smdpp.py | 3 +++ pySim/esim/es9p.py | 1 + 2 files changed, 4 insertions(+) diff --git a/osmo-smdpp.py b/osmo-smdpp.py index e9638aac..a044b9ba 100755 --- a/osmo-smdpp.py +++ b/osmo-smdpp.py @@ -481,6 +481,9 @@ class SmDppHttpServer: @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 41f2eeb2..2c4b10f7 100644 --- a/pySim/esim/es9p.py +++ b/pySim/esim/es9p.py @@ -136,6 +136,7 @@ class HandleNotification(Es9PlusApiFunction): 'pendingNotification': param.PendingNotification, } input_mandatory = ['pendingNotification'] + expected_http_status = 204 # ES9+ CancelSession function (SGP.22 section 6.5.2.10) class CancelSession(Es9PlusApiFunction):