Ejemplo n.º 1
0
def test_repr():
    """Test repr() of instances."""
    assert 'c_byte(123)' == repr(c_byte(123))
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 'c_int(1234567890)' == repr(c_int(1234567890))
    else:
        assert 'c_long(1234567890)' == repr(c_int(1234567890)).replace('L)', ')')
    assert 'c_byte(123)' == repr(c_int8(123))
    assert 'c_long(1234567890)' == repr(c_long(1234567890)).replace('L)', ')')
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 'c_long(1234567890123456789)' == repr(c_longlong(1234567890123456789)).replace('L)', ')')
    else:
        assert 'c_longlong(1234567890123456789)' == repr(c_longlong(1234567890123456789)).replace('L)', ')')
    assert 'c_ushort(12345)' == repr(c_uint16(12345))
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 'c_uint(1234567890)' == repr(c_uint32(1234567890)).replace('L)', ')')
    else:
        assert 'c_ulong(1234567890)' == repr(c_uint32(1234567890)).replace('L)', ')')
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 'c_ulong(12345678901234567890)' == repr(c_uint64(12345678901234567890)).replace('L)', ')')
    else:
        assert 'c_ulonglong(12345678901234567890)' == repr(c_uint64(12345678901234567890)).replace('L)', ')')
    assert 'c_ubyte(123)' == repr(c_uint8(123))
    assert 'c_ubyte(123)' == repr(c_ubyte(123))
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 'c_uint(1234567890)' == repr(c_uint(1234567890)).replace('L)', ')')
    else:
        assert 'c_ulong(1234567890)' == repr(c_uint(1234567890)).replace('L)', ')')
    assert 'c_ulong(1234567890)' == repr(c_ulong(1234567890)).replace('L)', ')')
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 'c_ulong(12345678901234567890)' == repr(c_ulonglong(12345678901234567890)).replace('L)', ')')
    else:
        assert 'c_ulonglong(12345678901234567890)' == repr(c_ulonglong(12345678901234567890)).replace('L)', ')')
    assert 'c_ushort(12345)' == repr(c_ushort(12345))
Ejemplo n.º 2
0
def test_maximum():
    """Test maximum valid integer value."""
    assert 127 == c_byte.from_buffer(bytearray(c_byte(127))).value
    assert 2147483647 == c_int.from_buffer(bytearray(c_int(2147483647))).value
    assert 127 == c_int8.from_buffer(bytearray(c_int8(127))).value
    if sys.maxsize > 2**32:  # 64-bit.
        assert 9223372036854775807 == c_long.from_buffer(
            bytearray(c_long(9223372036854775807))).value
    else:
        assert 2147483647 == c_long.from_buffer(bytearray(
            c_long(2147483647))).value
    assert 9223372036854775807 == c_longlong.from_buffer(
        bytearray(c_longlong(9223372036854775807))).value
    assert 65535 == c_uint16.from_buffer(bytearray(c_uint16(65535))).value
    assert 4294967295 == c_uint32.from_buffer(bytearray(
        c_uint32(4294967295))).value
    assert 18446744073709551615 == c_uint64.from_buffer(
        bytearray(c_uint64(18446744073709551615))).value
    assert 255 == c_uint8.from_buffer(bytearray(c_uint8(255))).value
    assert 255 == c_ubyte.from_buffer(bytearray(c_ubyte(255))).value
    assert 4294967295 == c_uint.from_buffer(bytearray(
        c_uint(4294967295))).value
    if sys.maxsize > 2**32:  # 64-bit.
        assert 18446744073709551615 == c_ulong.from_buffer(
            bytearray(c_ulong(18446744073709551615))).value
    else:
        assert 4294967295 == c_ulong.from_buffer(bytearray(
            c_ulong(4294967295))).value
    assert 18446744073709551615 == c_ulonglong.from_buffer(
        bytearray(c_ulonglong(18446744073709551615))).value
    assert 65535 == c_ushort.from_buffer(bytearray(c_ushort(65535))).value
Ejemplo n.º 3
0
def test_repr():
    """Test repr() of instances."""
    assert 'c_byte(123)' == repr(c_byte(123))
    if sys.maxsize > 2**32:  # 64-bit.
        assert 'c_int(1234567890)' == repr(c_int(1234567890))
    else:
        assert 'c_long(1234567890)' == repr(c_int(1234567890)).replace(
            'L)', ')')
    assert 'c_byte(123)' == repr(c_int8(123))
    assert 'c_long(1234567890)' == repr(c_long(1234567890)).replace('L)', ')')
    if sys.maxsize > 2**32:  # 64-bit.
        assert 'c_long(1234567890123456789)' == repr(
            c_longlong(1234567890123456789)).replace('L)', ')')
    else:
        assert 'c_longlong(1234567890123456789)' == repr(
            c_longlong(1234567890123456789)).replace('L)', ')')
    assert 'c_ushort(12345)' == repr(c_uint16(12345))
    if sys.maxsize > 2**32:  # 64-bit.
        assert 'c_uint(1234567890)' == repr(c_uint32(1234567890)).replace(
            'L)', ')')
    else:
        assert 'c_ulong(1234567890)' == repr(c_uint32(1234567890)).replace(
            'L)', ')')
    if sys.maxsize > 2**32:  # 64-bit.
        assert 'c_ulong(12345678901234567890)' == repr(
            c_uint64(12345678901234567890)).replace('L)', ')')
    else:
        assert 'c_ulonglong(12345678901234567890)' == repr(
            c_uint64(12345678901234567890)).replace('L)', ')')
    assert 'c_ubyte(123)' == repr(c_uint8(123))
    assert 'c_ubyte(123)' == repr(c_ubyte(123))
    if sys.maxsize > 2**32:  # 64-bit.
        assert 'c_uint(1234567890)' == repr(c_uint(1234567890)).replace(
            'L)', ')')
    else:
        assert 'c_ulong(1234567890)' == repr(c_uint(1234567890)).replace(
            'L)', ')')
    assert 'c_ulong(1234567890)' == repr(c_ulong(1234567890)).replace(
        'L)', ')')
    if sys.maxsize > 2**32:  # 64-bit.
        assert 'c_ulong(12345678901234567890)' == repr(
            c_ulonglong(12345678901234567890)).replace('L)', ')')
    else:
        assert 'c_ulonglong(12345678901234567890)' == repr(
            c_ulonglong(12345678901234567890)).replace('L)', ')')
    assert 'c_ushort(12345)' == repr(c_ushort(12345))
Ejemplo n.º 4
0
def test_zero():
    """Test zero integer value."""
    assert 0 == c_byte.from_buffer(bytearray(c_byte())).value
    assert 0 == c_int.from_buffer(bytearray(c_int())).value
    assert 0 == c_int8.from_buffer(bytearray(c_int8())).value
    assert 0 == c_long.from_buffer(bytearray(c_long())).value
    assert 0 == c_longlong.from_buffer(bytearray(c_longlong())).value
    assert 0 == c_uint16.from_buffer(bytearray(c_uint16())).value
    assert 0 == c_uint32.from_buffer(bytearray(c_uint32())).value
    assert 0 == c_uint64.from_buffer(bytearray(c_uint64())).value
    assert 0 == c_uint8.from_buffer(bytearray(c_uint8())).value
    assert 0 == c_ubyte.from_buffer(bytearray(c_ubyte())).value
    assert 0 == c_uint.from_buffer(bytearray(c_uint())).value
    assert 0 == c_ulong.from_buffer(bytearray(c_ulong())).value
    assert 0 == c_ulonglong.from_buffer(bytearray(c_ulonglong())).value
    assert 0 == c_ushort.from_buffer(bytearray(c_ushort())).value
Ejemplo n.º 5
0
def test_middle():
    """Test with arbitrary positive value."""
    assert 123 == c_byte.from_buffer(bytearray(c_byte(123))).value
    assert 1234567890 == c_int.from_buffer(bytearray(c_int(1234567890))).value
    assert 123 == c_int8.from_buffer(bytearray(c_int8(123))).value
    assert 1234567890 == c_long.from_buffer(bytearray(c_long(1234567890))).value
    assert 1234567890123456789 == c_longlong.from_buffer(bytearray(c_longlong(1234567890123456789))).value
    assert 12345 == c_uint16.from_buffer(bytearray(c_uint16(12345))).value
    assert 1234567890 == c_uint32.from_buffer(bytearray(c_uint32(1234567890))).value
    assert 12345678901234567890 == c_uint64.from_buffer(bytearray(c_uint64(12345678901234567890))).value
    assert 123 == c_uint8.from_buffer(bytearray(c_uint8(123))).value
    assert 123 == c_ubyte.from_buffer(bytearray(c_ubyte(123))).value
    assert 1234567890 == c_uint.from_buffer(bytearray(c_uint(1234567890))).value
    assert 1234567890 == c_ulong.from_buffer(bytearray(c_ulong(1234567890))).value
    assert 12345678901234567890 == c_ulonglong.from_buffer(bytearray(c_ulonglong(12345678901234567890))).value
    assert 12345 == c_ushort.from_buffer(bytearray(c_ushort(12345))).value
Ejemplo n.º 6
0
def test_zero():
    """Test zero integer value."""
    assert 0 == c_byte.from_buffer(bytearray(c_byte())).value
    assert 0 == c_int.from_buffer(bytearray(c_int())).value
    assert 0 == c_int8.from_buffer(bytearray(c_int8())).value
    assert 0 == c_long.from_buffer(bytearray(c_long())).value
    assert 0 == c_longlong.from_buffer(bytearray(c_longlong())).value
    assert 0 == c_uint16.from_buffer(bytearray(c_uint16())).value
    assert 0 == c_uint32.from_buffer(bytearray(c_uint32())).value
    assert 0 == c_uint64.from_buffer(bytearray(c_uint64())).value
    assert 0 == c_uint8.from_buffer(bytearray(c_uint8())).value
    assert 0 == c_ubyte.from_buffer(bytearray(c_ubyte())).value
    assert 0 == c_uint.from_buffer(bytearray(c_uint())).value
    assert 0 == c_ulong.from_buffer(bytearray(c_ulong())).value
    assert 0 == c_ulonglong.from_buffer(bytearray(c_ulonglong())).value
    assert 0 == c_ushort.from_buffer(bytearray(c_ushort())).value
Ejemplo n.º 7
0
def test_minimum_overflow():
    """Test negative overflow value."""
    assert 127 == c_byte(-129).value
    assert 2147483647 == c_int(-2147483649).value
    assert 127 == c_int8(-129).value
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 9223372036854775807 == c_long(-9223372036854775809).value
    else:
        assert 2147483647 == c_long(-2147483649).value
    assert 9223372036854775807 == c_longlong(-9223372036854775809).value
    assert 65535 == c_uint16(-1).value
    assert 4294967295 == c_uint32(-1).value
    assert 18446744073709551615 == c_uint64(-1).value
    assert 255 == c_uint8(-1).value
    assert 255 == c_ubyte(-1).value
    assert 4294967295 == c_uint(-1).value
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 18446744073709551615 == c_ulong(-1).value
    else:
        assert 4294967295 == c_ulong(-1).value
    assert 18446744073709551615 == c_ulonglong(-1).value
    assert 65535 == c_ushort(-1).value
Ejemplo n.º 8
0
def test_maximum_overflow_more():
    """Test positive overflow value with even greater numbers."""
    assert -118 == c_byte(138).value
    assert -2147482548 == c_int(2147484748).value
    assert -118 == c_int8(138).value
    if sys.maxsize > 2**32:  # 64-bit.
        assert -9223372036854775708 == c_long(9223372036854775908).value
    else:
        assert -2147483548 == c_long(2147483748).value
    assert -9223372036854775708 == c_longlong(9223372036854775908).value
    assert 100 == c_uint16(65636).value
    assert 100 == c_uint32(4294967396).value
    assert 100 == c_uint64(18446744073709551716).value
    assert 100 == c_uint8(356).value
    assert 90 == c_ubyte(346).value
    assert 100 == c_uint(4294967396).value
    if sys.maxsize > 2**32:  # 64-bit.
        assert 200 == c_ulong(18446744073709551816).value
    else:
        assert 1000 == c_ulong(4294968296).value
    assert 200 == c_ulonglong(18446744073709551816).value
    assert 10 == c_ushort(65546).value
Ejemplo n.º 9
0
def test_maximum_overflow():
    """Test positive overflow value."""
    assert -128 == c_byte(128).value
    assert -2147483648 == c_int(2147483648).value
    assert -128 == c_int8(128).value
    if sys.maxsize > 2**32:  # 64-bit.
        assert -9223372036854775808 == c_long(9223372036854775808).value
    else:
        assert -2147483648 == c_long(2147483648).value
    assert -9223372036854775808 == c_longlong(9223372036854775808).value
    assert 0 == c_uint16(65536).value
    assert 0 == c_uint32(4294967296).value
    assert 0 == c_uint64(18446744073709551616).value
    assert 0 == c_uint8(256).value
    assert 0 == c_ubyte(256).value
    assert 0 == c_uint(4294967296).value
    if sys.maxsize > 2**32:  # 64-bit.
        assert 0 == c_ulong(18446744073709551616).value
    else:
        assert 0 == c_ulong(4294967296).value
    assert 0 == c_ulonglong(18446744073709551616).value
    assert 0 == c_ushort(65536).value
Ejemplo n.º 10
0
def test_minimum_overflow_more():
    """Test negative overflow value with even lower numbers."""
    assert 27 == c_byte(-229).value
    assert 2147383647 == c_int(-2147583649).value
    assert 117 == c_int8(-139).value
    if sys.maxsize > 2**32:  # 64-bit.
        assert 9223372036814775807 == c_long(-9223372036894775809).value
    else:
        assert 2147483647 == c_long(-2147483649).value
    assert 9223372033854775807 == c_longlong(-9223372039854775809).value
    assert 65524 == c_uint16(-12).value
    assert 4294967283 == c_uint32(-13).value
    assert 18446744073709551602 == c_uint64(-14).value
    assert 241 == c_uint8(-15).value
    assert 240 == c_ubyte(-16).value
    assert 4294967279 == c_uint(-17).value
    if sys.maxsize > 2**32:  # 64-bit.
        assert 18446744073709551598 == c_ulong(-18).value
    else:
        assert 4294967277 == c_ulong(-19).value
    assert 18446744073709551598 == c_ulonglong(-18).value
    assert 65515 == c_ushort(-21).value
Ejemplo n.º 11
0
def test_minimum_overflow():
    """Test negative overflow value."""
    assert 127 == c_byte(-129).value
    assert 2147483647 == c_int(-2147483649).value
    assert 127 == c_int8(-129).value
    if sys.maxsize > 2**32:  # 64-bit.
        assert 9223372036854775807 == c_long(-9223372036854775809).value
    else:
        assert 2147483647 == c_long(-2147483649).value
    assert 9223372036854775807 == c_longlong(-9223372036854775809).value
    assert 65535 == c_uint16(-1).value
    assert 4294967295 == c_uint32(-1).value
    assert 18446744073709551615 == c_uint64(-1).value
    assert 255 == c_uint8(-1).value
    assert 255 == c_ubyte(-1).value
    assert 4294967295 == c_uint(-1).value
    if sys.maxsize > 2**32:  # 64-bit.
        assert 18446744073709551615 == c_ulong(-1).value
    else:
        assert 4294967295 == c_ulong(-1).value
    assert 18446744073709551615 == c_ulonglong(-1).value
    assert 65535 == c_ushort(-1).value
Ejemplo n.º 12
0
def test_maximum():
    """Test maximum valid integer value."""
    assert 127 == c_byte.from_buffer(bytearray(c_byte(127))).value
    assert 2147483647 == c_int.from_buffer(bytearray(c_int(2147483647))).value
    assert 127 == c_int8.from_buffer(bytearray(c_int8(127))).value
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 9223372036854775807 == c_long.from_buffer(bytearray(c_long(9223372036854775807))).value
    else:
        assert 2147483647 == c_long.from_buffer(bytearray(c_long(2147483647))).value
    assert 9223372036854775807 == c_longlong.from_buffer(bytearray(c_longlong(9223372036854775807))).value
    assert 65535 == c_uint16.from_buffer(bytearray(c_uint16(65535))).value
    assert 4294967295 == c_uint32.from_buffer(bytearray(c_uint32(4294967295))).value
    assert 18446744073709551615 == c_uint64.from_buffer(bytearray(c_uint64(18446744073709551615))).value
    assert 255 == c_uint8.from_buffer(bytearray(c_uint8(255))).value
    assert 255 == c_ubyte.from_buffer(bytearray(c_ubyte(255))).value
    assert 4294967295 == c_uint.from_buffer(bytearray(c_uint(4294967295))).value
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 18446744073709551615 == c_ulong.from_buffer(bytearray(c_ulong(18446744073709551615))).value
    else:
        assert 4294967295 == c_ulong.from_buffer(bytearray(c_ulong(4294967295))).value
    assert 18446744073709551615 == c_ulonglong.from_buffer(bytearray(c_ulonglong(18446744073709551615))).value
    assert 65535 == c_ushort.from_buffer(bytearray(c_ushort(65535))).value
Ejemplo n.º 13
0
def test_minimum_overflow_more():
    """Test negative overflow value with even lower numbers."""
    assert 27 == c_byte(-229).value
    assert 2147383647 == c_int(-2147583649).value
    assert 117 == c_int8(-139).value
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 9223372036814775807 == c_long(-9223372036894775809).value
    else:
        assert 2147483647 == c_long(-2147483649).value
    assert 9223372033854775807 == c_longlong(-9223372039854775809).value
    assert 65524 == c_uint16(-12).value
    assert 4294967283 == c_uint32(-13).value
    assert 18446744073709551602 == c_uint64(-14).value
    assert 241 == c_uint8(-15).value
    assert 240 == c_ubyte(-16).value
    assert 4294967279 == c_uint(-17).value
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 18446744073709551598 == c_ulong(-18).value
    else:
        assert 4294967277 == c_ulong(-19).value
    assert 18446744073709551598 == c_ulonglong(-18).value
    assert 65515 == c_ushort(-21).value
Ejemplo n.º 14
0
def test_maximum_overflow_more():
    """Test positive overflow value with even greater numbers."""
    assert -118 == c_byte(138).value
    assert -2147482548 == c_int(2147484748).value
    assert -118 == c_int8(138).value
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert -9223372036854775708 == c_long(9223372036854775908).value
    else:
        assert -2147483548 == c_long(2147483748).value
    assert -9223372036854775708 == c_longlong(9223372036854775908).value
    assert 100 == c_uint16(65636).value
    assert 100 == c_uint32(4294967396).value
    assert 100 == c_uint64(18446744073709551716).value
    assert 100 == c_uint8(356).value
    assert 90 == c_ubyte(346).value
    assert 100 == c_uint(4294967396).value
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 200 == c_ulong(18446744073709551816).value
    else:
        assert 1000 == c_ulong(4294968296).value
    assert 200 == c_ulonglong(18446744073709551816).value
    assert 10 == c_ushort(65546).value
Ejemplo n.º 15
0
def test_maximum_overflow():
    """Test positive overflow value."""
    assert -128 == c_byte(128).value
    assert -2147483648 == c_int(2147483648).value
    assert -128 == c_int8(128).value
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert -9223372036854775808 == c_long(9223372036854775808).value
    else:
        assert -2147483648 == c_long(2147483648).value
    assert -9223372036854775808 == c_longlong(9223372036854775808).value
    assert 0 == c_uint16(65536).value
    assert 0 == c_uint32(4294967296).value
    assert 0 == c_uint64(18446744073709551616).value
    assert 0 == c_uint8(256).value
    assert 0 == c_ubyte(256).value
    assert 0 == c_uint(4294967296).value
    if sys.maxsize > 2 ** 32:  # 64-bit.
        assert 0 == c_ulong(18446744073709551616).value
    else:
        assert 0 == c_ulong(4294967296).value
    assert 0 == c_ulonglong(18446744073709551616).value
    assert 0 == c_ushort(65536).value
Ejemplo n.º 16
0
def test_middle():
    """Test with arbitrary positive value."""
    assert 123 == c_byte.from_buffer(bytearray(c_byte(123))).value
    assert 1234567890 == c_int.from_buffer(bytearray(c_int(1234567890))).value
    assert 123 == c_int8.from_buffer(bytearray(c_int8(123))).value
    assert 1234567890 == c_long.from_buffer(bytearray(
        c_long(1234567890))).value
    assert 1234567890123456789 == c_longlong.from_buffer(
        bytearray(c_longlong(1234567890123456789))).value
    assert 12345 == c_uint16.from_buffer(bytearray(c_uint16(12345))).value
    assert 1234567890 == c_uint32.from_buffer(bytearray(
        c_uint32(1234567890))).value
    assert 12345678901234567890 == c_uint64.from_buffer(
        bytearray(c_uint64(12345678901234567890))).value
    assert 123 == c_uint8.from_buffer(bytearray(c_uint8(123))).value
    assert 123 == c_ubyte.from_buffer(bytearray(c_ubyte(123))).value
    assert 1234567890 == c_uint.from_buffer(bytearray(
        c_uint(1234567890))).value
    assert 1234567890 == c_ulong.from_buffer(bytearray(
        c_ulong(1234567890))).value
    assert 12345678901234567890 == c_ulonglong.from_buffer(
        bytearray(c_ulonglong(12345678901234567890))).value
    assert 12345 == c_ushort.from_buffer(bytearray(c_ushort(12345))).value
Ejemplo n.º 17
0
Archivo: netlink.py Proyecto: ewa/libnl
    def nlmsg_pid(self):
        """Sending process port ID."""
        return c_uint32.from_buffer(self.bytearray[self._get_slicers(4)]).value

    @nlmsg_pid.setter
    def nlmsg_pid(self, value):
        """Port ID setter."""
        self.bytearray[self._get_slicers(4)] = bytearray(c_uint32(value or 0))

    @property
    def payload(self):
        """Payload and padding at the end (bytearray_ptr)."""
        return bytearray_ptr(self.bytearray, self._get_slicers(4).stop)


NLMSG_ALIGNTO = c_uint(4).value
NLMSG_ALIGN = lambda len_: (len_ + NLMSG_ALIGNTO - 1) & ~(NLMSG_ALIGNTO - 1)
NLMSG_HDRLEN = NLMSG_ALIGN(nlmsghdr.SIZEOF)
NLMSG_LENGTH = lambda len_: len_ + NLMSG_ALIGN(NLMSG_HDRLEN)
NLMSG_SPACE = lambda len_: NLMSG_ALIGN(NLMSG_LENGTH(len_))
NLMSG_NOOP = 0x1  # Nothing.
NLMSG_ERROR = 0x2  # Error.
NLMSG_DONE = 0x3  # End of a dump.
NLMSG_OVERRUN = 0x4  # Data lost.
NLMSG_MIN_TYPE = 0x10  # < 0x10: reserved control messages.


class nlmsgerr(Struct):
    """https://github.com/thom311/libnl/blob/libnl3_2_25/include/linux/netlink.h#L95.

    Instance variables:
Ejemplo n.º 18
0
 def nl_family(self, value):
     """Family setter."""
     self.bytearray[self._get_slicers(0)] = bytearray(c_uint(value or 0))
Ejemplo n.º 19
0
 def ifi_change(self, value):
     """Change setter."""
     self.bytearray[self._get_slicers(5)] = bytearray(c_uint(value or 0))
Ejemplo n.º 20
0
 def ifi_flags(self, value):
     """Message flags setter."""
     self.bytearray[self._get_slicers(4)] = bytearray(c_uint(value or 0))
Ejemplo n.º 21
0
Archivo: netlink.py Proyecto: ewa/libnl
 def nl_family(self, value):
     """Family setter."""
     self.bytearray[self._get_slicers(0)] = bytearray(c_uint(value or 0))
Ejemplo n.º 22
0
    def nlmsg_pid(self):
        """Sending process port ID."""
        return c_uint32.from_buffer(self.bytearray[self._get_slicers(4)]).value

    @nlmsg_pid.setter
    def nlmsg_pid(self, value):
        """Port ID setter."""
        self.bytearray[self._get_slicers(4)] = bytearray(c_uint32(value or 0))

    @property
    def payload(self):
        """Payload and padding at the end (bytearray_ptr)."""
        return bytearray_ptr(self.bytearray, self._get_slicers(4).stop)


NLMSG_ALIGNTO = c_uint(4).value
NLMSG_ALIGN = lambda len_: (len_ + NLMSG_ALIGNTO - 1) & ~(NLMSG_ALIGNTO - 1)
NLMSG_HDRLEN = NLMSG_ALIGN(nlmsghdr.SIZEOF)
NLMSG_LENGTH = lambda len_: len_ + NLMSG_ALIGN(NLMSG_HDRLEN)
NLMSG_SPACE = lambda len_: NLMSG_ALIGN(NLMSG_LENGTH(len_))
NLMSG_NOOP = 0x1  # Nothing.
NLMSG_ERROR = 0x2  # Error.
NLMSG_DONE = 0x3  # End of a dump.
NLMSG_OVERRUN = 0x4  # Data lost.
NLMSG_MIN_TYPE = 0x10  # < 0x10: reserved control messages.


class nlmsgerr(Struct):
    """https://github.com/thom311/libnl/blob/libnl3_2_25/include/linux/netlink.h#L95.

    Instance variables:
Ejemplo n.º 23
0
 def ifi_change(self, value):
     """Change setter."""
     self.bytearray[self._get_slicers(5)] = bytearray(c_uint(value or 0))
Ejemplo n.º 24
0
 def ifi_flags(self, value):
     """Message flags setter."""
     self.bytearray[self._get_slicers(4)] = bytearray(c_uint(value or 0))