mobile: add encode / decode for the APN IE

This commit is contained in:
p1-bmu 2021-03-17 15:28:26 +01:00
parent 3b052e4e71
commit c16aa9301b
1 changed files with 14 additions and 0 deletions

View File

@ -2678,6 +2678,7 @@ class _APNItem(Envelope):
Uint8('Len'),
Buf('Value')
)
def __init__(self, *args, **kwargs):
Envelope.__init__(self, *args, **kwargs)
self[0].set_valauto(self[1].get_len)
@ -2686,6 +2687,19 @@ class _APNItem(Envelope):
class APN(Sequence):
_GEN = _APNItem('APNItem')
def set_val(self, val):
if isinstance(val, str_types):
self.encode(val)
else:
Sequence.set_val(self, val)
def encode(self, val):
apn_items = val.split('.')
Sequence.set_val(self, [{'Value': apn_item} for apn_item in apn_items])
def decode(self, val):
return '.'.join([apn_item[1] for apn_item in self.get_val()])
#------------------------------------------------------------------------------#