This file is indexed.

/usr/share/pyshared/messaging/sms/udh.py is in python-messaging 0.5.11+debian-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# See LICENSE


class PortAddress(object):

    def __init__(self, dest_port, orig_port, eight_bits):
        self.dest_port = dest_port
        self.orig_port = orig_port
        self.eight_bits = eight_bits

    def __repr__(self):
        args = (self.dest_port, self.orig_port)
        return "<PortAddress dest_port: %d orig_port: %d>" % args


class ConcatReference(object):

    def __init__(self, ref, cnt, seq, eight_bits):
        self.ref = ref
        self.cnt = cnt
        self.seq = seq
        self.eight_bits = eight_bits

    def __repr__(self):
        args = (self.ref, self.cnt, self.seq)
        return "<ConcatReference ref: %d cnt: %d seq: %d>" % args


class UserDataHeader(object):

    def __init__(self):
        self.concat = None
        self.ports = None
        self.headers = {}

    def __repr__(self):
        args = (self.headers, self.concat, self.ports)
        return "<UserDataHeader data: %s concat: %s ports: %s>" % args

    @classmethod
    def from_status_report_ref(cls, ref):
        udh = cls()
        udh.concat = ConcatReference(ref, 0, 0, True)
        return udh

    @classmethod
    def from_bytes(cls, data):
        udh = cls()
        while len(data):
            iei = data.pop(0)
            ie_len = data.pop(0)
            ie_data = data[:ie_len]
            data = data[ie_len:]
            udh.headers[iei] = ie_data

            if iei == 0x00:
                # process SM concatenation 8bit ref.
                ref, cnt, seq = ie_data
                udh.concat = ConcatReference(ref, cnt, seq, True)

            if iei == 0x08:
                # process SM concatenation 16bit ref.
                ref = ie_data[0] << 8 | ie_data[1]
                cnt = ie_data[2]
                seq = ie_data[3]
                udh.concat = ConcatReference(ref, cnt, seq, False)

            elif iei == 0x04:
                # process App port addressing 8bit
                dest_port, orig_port = ie_data
                udh.ports = PortAddress(dest_port, orig_port, False)

            elif iei == 0x05:
                # process App port addressing 16bit
                dest_port = ie_data[0] << 8 | ie_data[1]
                orig_port = ie_data[2] << 8 | ie_data[3]
                udh.ports = PortAddress(dest_port, orig_port, False)

        return udh