Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -363,5 +363,4 @@ holds :class:`~pcapkit.protocols.link.linux_sll1.LinuxSLL1`. **The** ``schema/``
``data/`` **modules follow the same layout**: the top-level class takes the module's
name, and sub-structure classes such as
:class:`~pcapkit.protocols.schema.internet.igmpv3.Query` share its module. Ruled on
:issue:`2529`, where the class that does not match yet is pending:
:class:`null.NoPayload <pcapkit.protocols.misc.null.NoPayload>`.
:issue:`2529`.
2 changes: 1 addition & 1 deletion docs/source/ext.rst
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ The protocol classes :mod:`pcapkit` ships:
+ +----------------+-----------------------+-------------------------------------------------------------+
| | :class:`pcapkit.protocols.misc.raw.Raw` |
+ +----------------+-----------------------+-------------------------------------------------------------+
| | :class:`pcapkit.protocols.misc.null.NoPayload` |
| | :class:`pcapkit.protocols.misc.no_payload.NoPayload` |
+------------------------------------------------------------------+----------------+-----------------------+-------------------------------------------------------------+

.. _ext-new-protocol:
Expand Down
2 changes: 1 addition & 1 deletion docs/source/pcapkit/protocols/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ from given information. The class hierarchy of :mod:`pcapkit.protocols`:
click DTLS "application/dtls.html#pcapkit.protocols.application.dtls.DTLS"

click Raw "misc/raw.html#pcapkit.protocols.misc.raw.Raw"
click NoPayload "misc/null.html#pcapkit.protocols.misc.null.NoPayload"
click NoPayload "misc/no_payload.html#pcapkit.protocols.misc.no_payload.NoPayload"
click PCAPNG "misc/pcapng.html#pcapkit.protocols.misc.pcapng.PCAPNG"
click Header "misc/pcap.html#pcapkit.protocols.misc.pcap.header.Header"
click Frame "misc/pcap.html#pcapkit.protocols.misc.pcap.frame.Frame"
Expand Down
2 changes: 1 addition & 1 deletion docs/source/pcapkit/protocols/link/radiotap.rst
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Decoding every optional field radiotap.org defines is tracked on
:attr:`~pcapkit.protocols.data.link.radiotap.Radiotap.fields`.
* **Hands** everything from ``it_len`` on, the 802.11 MAC frame, to
:class:`~pcapkit.protocols.link.ieee802_11.IEEE802_11`
(:class:`~pcapkit.protocols.misc.null.NoPayload` when nothing follows).
(:class:`~pcapkit.protocols.misc.no_payload.NoPayload` when nothing follows).
The header names no next protocol, since an 802.11 frame always follows it,
so the frame is looked up in
:attr:`Radiotap.__proto__ <pcapkit.protocols.link.radiotap.Radiotap.__proto__>`
Expand Down
4 changes: 2 additions & 2 deletions docs/source/pcapkit/protocols/misc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Auxiliary Protocols
These include the PCAP header classes, the PCAP-NG
:class:`~pcapkit.protocols.misc.pcapng.PCAPNG` class, the
:class:`~pcapkit.protocols.misc.raw.Raw` class for not-supported protocols, and
the :class:`~pcapkit.protocols.misc.null.NoPayload` class for indication of
the :class:`~pcapkit.protocols.misc.no_payload.NoPayload` class for indication of
empty payload.

.. toctree::
Expand All @@ -18,5 +18,5 @@ empty payload.
pcap
pcapng
raw
null
no_payload
checksum
53 changes: 53 additions & 0 deletions docs/source/pcapkit/protocols/misc/no_payload.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
No-Payload Packet
=================

.. module:: pcapkit.protocols.misc.no_payload

:mod:`pcapkit.protocols.misc.no_payload` contains
:class:`~pcapkit.protocols.misc.no_payload.NoPayload` only, which
implements a :class:`~pcapkit.protocols.protocol.Protocol` like
object whose payload is recursively
:class:`~pcapkit.protocols.misc.no_payload.NoPayload` itself.

.. versionadded:: 1.6.0

Moved here from ``pcapkit.protocols.misc.null``, with its data model and
header schema, since a protocol class is named after its module
(:issue:`2529`).

.. versionremoved:: 1.6.0

``pcapkit.protocols.misc.null``, ``pcapkit.protocols.data.misc.null`` and
``pcapkit.protocols.schema.misc.null``, with no alias (:issue:`2529`).

.. autoclass:: pcapkit.protocols.misc.no_payload.NoPayload
:no-members:
:show-inheritance:

.. autoproperty:: name
.. autoproperty:: length
.. autoproperty:: protocol

.. automethod:: read
.. automethod:: make

.. automethod:: __post_init__
.. automethod:: __index__

Header Schemas
--------------

.. module:: pcapkit.protocols.schema.misc.no_payload

.. autoclass:: pcapkit.protocols.schema.misc.no_payload.NoPayload
:members:
:show-inheritance:

Data Models
-----------

.. module:: pcapkit.protocols.data.misc.no_payload

.. autoclass:: pcapkit.protocols.data.misc.no_payload.NoPayload
:members:
:show-inheritance:
42 changes: 0 additions & 42 deletions docs/source/pcapkit/protocols/misc/null.rst

This file was deleted.

4 changes: 2 additions & 2 deletions pcapkit/corekit/decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ def beholder(
This decorator calls the decorated function. Should any exception be
raised, it re-parses the current layer's payload as
:class:`~pcapkit.protocols.misc.raw.Raw` -- or as
:class:`~pcapkit.protocols.misc.null.NoPayload`, if the error is an
:class:`~pcapkit.protocols.misc.no_payload.NoPayload`, if the error is an
end-of-file :exc:`~pcapkit.utilities.exceptions.StructError` -- whose
``error`` is the exception's message.

Expand Down Expand Up @@ -185,7 +185,7 @@ def behold(*args: 'P.args', **kwargs: 'P.kwargs') -> 'R_beholder':
beholding.reset(token)
except Exception as exc:
if isinstance(exc, StructError) and exc.eof: # pylint: disable=no-member
from pcapkit.protocols.misc.null import NoPayload as protocol # isort: skip # pylint: disable=import-outside-toplevel
from pcapkit.protocols.misc.no_payload import NoPayload as protocol # isort: skip # pylint: disable=import-outside-toplevel
else:
from pcapkit.protocols.misc.raw import Raw as protocol # type: ignore[assignment] # isort: skip # pylint: disable=import-outside-toplevel
# error = traceback.format_exc(limit=1).strip().rsplit(os.linesep, maxsplit=1)[-1]
Expand Down
8 changes: 4 additions & 4 deletions pcapkit/protocols/application/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
from typing import TYPE_CHECKING, Generic, overload

from pcapkit.corekit.protochain import ProtoChain
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload
from pcapkit.protocols.protocol import _PT, _ST, ProtocolBase
from pcapkit.protocols.schema.schema import keep_short_read, replay_short_read
from pcapkit.utilities.exceptions import IntError, UnsupportedCall
Expand All @@ -49,7 +49,7 @@ class Application(ProtocolBase[_PT, _ST], Generic[_PT, _ST]): # pylint: disable
:class:`~pcapkit.protocols.application.sslv2.SSLv2` and
:class:`~pcapkit.protocols.application.dtls.DTLS` do for a further record and
:class:`~pcapkit.protocols.application.httpv2.HTTPv2` for a further frame --
or to :class:`~pcapkit.protocols.misc.null.NoPayload` when nothing remains.
or to :class:`~pcapkit.protocols.misc.no_payload.NoPayload` when nothing remains.

"""

Expand Down Expand Up @@ -124,7 +124,7 @@ def __post_init__(self, file: 'Optional[IO[bytes] | bytes]' = None,
# ``_decode_next_layer``, which already set the payload and the chain
# (basis included); only a protocol that did not gets the empty default
if getattr(self, '_next', None) is None:
#: pcapkit.protocols.misc.null.NoPayload: Payload of current instance.
#: pcapkit.protocols.misc.no_payload.NoPayload: Payload of current instance.
self._next = NoPayload()
#: pcapkit.corekit.protochain.ProtoChain: Protocol chain of current instance.
self._protos = ProtoChain(self.__class__, self.alias)
Expand Down Expand Up @@ -179,7 +179,7 @@ def _import_next_layer(self, proto: 'int', length: 'Optional[int]' = None, *, #

Returns:
Instance of :class:`~pcapkit.protocols.misc.raw.Raw`, or of
:class:`~pcapkit.protocols.misc.null.NoPayload` when nothing remains.
:class:`~pcapkit.protocols.misc.no_payload.NoPayload` when nothing remains.

Raises:
UnsupportedCall: If ``proto`` is anything but ``-1``, i.e. a real
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/application/http.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
from pcapkit.corekit.protochain import ProtoChain
from pcapkit.protocols.application.application import Application
from pcapkit.protocols.data.data import Data
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload
from pcapkit.protocols.protocol import _PT, _ST
from pcapkit.utilities.exceptions import ProtocolError

Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/application/ssl.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
SupportedVersionsClientHello as Data_SupportedVersionsClientHello
from pcapkit.protocols.data.application.tls import \
SupportedVersionsServerHello as Data_SupportedVersionsServerHello
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload
from pcapkit.protocols.protocol import _PT, _ST
from pcapkit.utilities.exceptions import CaughtByCaller, ProtocolError
from pcapkit.utilities.warnings import RegistryWarning, warn
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/data/misc/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@

# misc protocols
from pcapkit.protocols.data.misc.raw import Raw
from pcapkit.protocols.data.misc.null import NoPayload
from pcapkit.protocols.data.misc.no_payload import NoPayload
from pcapkit.protocols.data.misc.checksum import IP_Pseudo

__all__ = [
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/ah.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
from pcapkit.protocols.data.internet.ah import AH as Data_AH
from pcapkit.protocols.internet.ipsec import IPsec
from pcapkit.protocols.internet.ipv6_ext import IPv6_Ext
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload
from pcapkit.protocols.schema.internet.ah import AH as Schema_AH
from pcapkit.protocols.schema.internet.ah import AH_HEADER_LEN
from pcapkit.utilities.exceptions import UnsupportedCall
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/hip.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@
from pcapkit.protocols.data.internet.hip import ViaRVSParameter as Data_ViaRVSParameter
from pcapkit.protocols.internet.internet import Internet
from pcapkit.protocols.internet.ipv6_ext import IPv6_Ext
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload
from pcapkit.protocols.schema.internet.hip import HIP as Schema_HIP
from pcapkit.protocols.schema.internet.hip import AckDataParameter as Schema_AckDataParameter
from pcapkit.protocols.schema.internet.hip import ACKParameter as Schema_ACKParameter
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/hopopt.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
TunnelEncapsulationLimitOption as Data_TunnelEncapsulationLimitOption
from pcapkit.protocols.data.internet.hopopt import UnassignedOption as Data_UnassignedOption
from pcapkit.protocols.internet.ipv6_ext import IPv6_Ext
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload
from pcapkit.protocols.schema.internet.hopopt import HOPOPT as Schema_HOPOPT
from pcapkit.protocols.schema.internet.hopopt import CALIPSOOption as Schema_CALIPSOOption
from pcapkit.protocols.schema.internet.hopopt import HomeAddressOption as Schema_HomeAddressOption
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/icmpv4.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
from pcapkit.protocols.data.internet.icmpv4 import TimeExceeded as Data_TimeExceeded
from pcapkit.protocols.data.internet.icmpv4 import Unknown as Data_Unknown
from pcapkit.protocols.internet.icmp import ICMP
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload
from pcapkit.protocols.schema.internet.icmpv4 import \
DestinationUnreachable as Schema_DestinationUnreachable
from pcapkit.protocols.schema.internet.icmpv4 import Echo as Schema_Echo
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/icmpv6.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
from pcapkit.protocols.data.internet.icmpv6 import TimeExceeded as Data_TimeExceeded
from pcapkit.protocols.data.internet.icmpv6 import Unknown as Data_Unknown
from pcapkit.protocols.internet.icmp import ICMP
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload
from pcapkit.protocols.schema.internet.icmpv6 import \
DestinationUnreachable as Schema_DestinationUnreachable
from pcapkit.protocols.schema.internet.icmpv6 import Echo as Schema_Echo
Expand Down
4 changes: 2 additions & 2 deletions pcapkit/protocols/internet/internet.py
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ def _next_layer_class(self, proto: 'Optional[int]', file_: 'bytes', length: 'int
extension: if is extension header, see :meth:`_next_exthdr_depth`

Returns:
:class:`~pcapkit.protocols.misc.null.NoPayload` if there is
:class:`~pcapkit.protocols.misc.no_payload.NoPayload` if there is
nothing to parse; :class:`~pcapkit.protocols.misc.raw.Raw` if the
parse stops at this layer, or the next layer is an IPv6 extension
header past :data:`~pcapkit.utilities.config.EXTENSION_HEADER_LIMIT` in a row; otherwise the
Expand All @@ -411,7 +411,7 @@ class registered for ``proto``. Paired with it, the keywords that

"""
if min(length, len(file_)) == 0:
from pcapkit.protocols.misc.null import NoPayload # isort: skip # pylint: disable=import-outside-toplevel
from pcapkit.protocols.misc.no_payload import NoPayload # isort: skip # pylint: disable=import-outside-toplevel
return NoPayload, {}
if self._sigterm:
from pcapkit.protocols.misc.raw import Raw # isort: skip # pylint: disable=import-outside-toplevel
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/ipv6_ext.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@
from pcapkit.const.reg.transtype import TransType as Enum_TransType
from pcapkit.protocols.data.internet.ipv6_ext import IPv6_Ext as Data_IPv6_Ext
from pcapkit.protocols.internet.internet import Internet
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload
from pcapkit.protocols.protocol import _PT, _ST, ProtocolBase
from pcapkit.protocols.schema.internet.ipv6_ext import IPv6_Ext as Schema_IPv6_Ext
from pcapkit.protocols.schema.schema import Schema
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/ipv6_frag.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
from pcapkit.const.reg.transtype import TransType as Enum_TransType
from pcapkit.protocols.data.internet.ipv6_frag import IPv6_Frag as Data_IPv6_Frag
from pcapkit.protocols.internet.ipv6_ext import IPv6_Ext
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload
from pcapkit.protocols.schema.internet.ipv6_frag import IPv6_Frag as Schema_IPv6_Frag
from pcapkit.utilities.exceptions import UnsupportedCall

Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/ipv6_opts.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
TunnelEncapsulationLimitOption as Data_TunnelEncapsulationLimitOption
from pcapkit.protocols.data.internet.ipv6_opts import UnassignedOption as Data_UnassignedOption
from pcapkit.protocols.internet.ipv6_ext import IPv6_Ext
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload
from pcapkit.protocols.schema.internet.ipv6_opts import CALIPSOOption as Schema_CALIPSOOption
from pcapkit.protocols.schema.internet.ipv6_opts import \
HomeAddressOption as Schema_HomeAddressOption
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/ipv6_route.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
from pcapkit.protocols.data.internet.ipv6_route import Type2 as Data_Type2
from pcapkit.protocols.data.internet.ipv6_route import UnknownType as Data_UnknownType
from pcapkit.protocols.internet.ipv6_ext import IPv6_Ext
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload
from pcapkit.protocols.schema.internet.ipv6_route import RPL as Schema_RPL
from pcapkit.protocols.schema.internet.ipv6_route import IPv6_Route as Schema_IPv6_Route
from pcapkit.protocols.schema.internet.ipv6_route import RoutingType as Schema_RoutingType
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/mh.py
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@
UpdateNotificationMessage as Data_UpdateNotificationMessage
from pcapkit.protocols.data.internet.mh import VendorSpecificOption as Data_VendorSpecificOption
from pcapkit.protocols.internet.ipv6_ext import IPv6_Ext
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload
from pcapkit.protocols.schema.internet.mh import MH as Schema_MH
from pcapkit.protocols.schema.internet.mh import \
AccessNetworkIdentifierOption as Schema_AccessNetworkIdentifierOption
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/link/frad.py
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ def _import_next_layer(self, proto: 'int', length: 'Optional[int]' = None, *, #
if TYPE_CHECKING:
protocol: 'Type[ProtocolBase]'
if not min(length, len(file_)):
from pcapkit.protocols.misc.null import \
from pcapkit.protocols.misc.no_payload import \
NoPayload as protocol # isort: skip # pylint: disable=import-outside-toplevel
elif self._sigterm:
from pcapkit.protocols.misc.raw import \
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/link/linux_sll.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ def _import_next_layer(self, proto: 'int', length: 'Optional[int]' = None, *, #
if TYPE_CHECKING:
protocol: 'Type[ProtocolBase]'
if not min(length, len(file_)):
from pcapkit.protocols.misc.null import \
from pcapkit.protocols.misc.no_payload import \
NoPayload as protocol # isort: skip # pylint: disable=import-outside-toplevel
elif self._sigterm:
from pcapkit.protocols.misc.raw import \
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/link/radiotap.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
:attr:`~pcapkit.protocols.data.link.radiotap.Radiotap.fields`.
* **Hands** everything from ``it_len`` on, the 802.11 MAC frame, to
:class:`~pcapkit.protocols.link.ieee802_11.IEEE802_11`
(:class:`~pcapkit.protocols.misc.null.NoPayload` when nothing follows).
(:class:`~pcapkit.protocols.misc.no_payload.NoPayload` when nothing follows).
The header names no next protocol, since an 802.11 frame always follows it,
so the frame is looked up in
:attr:`Radiotap.__proto__ <pcapkit.protocols.link.radiotap.Radiotap.__proto__>`
Expand Down
4 changes: 2 additions & 2 deletions pcapkit/protocols/misc/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

:mod:`pcapkit.protocols.misc` contains the auxiliary protocol implementations.
These include the :class:`~pcapkit.protocols.misc.raw.Raw` class for not-supported
protocols, the :class:`~pcapkit.protocols.misc.null.NoPayload` class for
protocols, the :class:`~pcapkit.protocols.misc.no_payload.NoPayload` class for
indication of empty payload, the PCAP and PCAP-NG file format classes, and the
checksum pseudo-headers in :mod:`pcapkit.protocols.misc.checksum`.

Expand All @@ -21,7 +21,7 @@

# Miscellaneous Classes for Protocols
from pcapkit.protocols.misc.raw import Raw
from pcapkit.protocols.misc.null import NoPayload
from pcapkit.protocols.misc.no_payload import NoPayload

# Checksum Pseudo-Headers
from pcapkit.protocols.misc.checksum import IP_Pseudo
Expand Down
Loading
Loading