class Poco::Net::ICMPPacket

Overview

This class is the ICMP packet abstraction. Moreā€¦

#include <ICMPPacket.h>

class ICMPPacket
{
public:
    // construction

    ICMPPacket(
        IPAddress::Family family,
        int dataSize = 48
        );

    // methods

    const Poco::UInt8*
    packet();

    int
    packetSize() const;

    Poco::UInt16
    sequence() const;

    void
    setDataSize(int dataSize);

    int
    getDataSize() const;

    int
    maxPacketSize() const;

    struct timeval
    time(
        Poco::UInt8* buffer = 0,
        int length = 0
        ) const;

    bool
    validReplyID(
        Poco::UInt8* buffer,
        int length
        ) const;

    std::string
    errorDescription(
        Poco::UInt8* buffer,
        int length
        );

    std::string
    typeDescription(int typeId);
};

Detailed Documentation

This class is the ICMP packet abstraction.

Construction

ICMPPacket(
    IPAddress::Family family,
    int dataSize = 48
    )

Creates an ICMPPacket of specified family.

Methods

const Poco::UInt8*
packet()

Returns raw ICMP packet. ICMP header and data are included in the returned packet.

int
packetSize() const

Returns the total length of packet (header + data);.

Poco::UInt16
sequence() const

Returns the most recent sequence number generated.

void
setDataSize(int dataSize)

Sets data size.

int
getDataSize() const

Returns data size.

int
maxPacketSize() const

Returns the total length of packet (header + data);.

struct timeval
time(
    Poco::UInt8* buffer = 0,
    int length = 0
    ) const

Returns current epoch time if either buffer or length are equal to zero.

Otherwise, it extracts the time value from the supplied buffer and returns the extracted value.

Supplied buffer includes IP header, ICMP header and data.

bool
validReplyID(
    Poco::UInt8* buffer,
    int length
    ) const

Returns true if the extracted id is recognized (equals the process id).

Supplied buffer includes IP header, ICMP header and data.

std::string
errorDescription(
    Poco::UInt8* buffer,
    int length
    )

Returns error description string.

If supplied buffer contains an ICMP echo reply packet, an empty string is returned indicating the absence of error.

Supplied buffer includes IP header, ICMP header and data.

std::string
typeDescription(int typeId)

Returns the description of the packet type.