[kea-dev] Accessing DHCP options within hooks libs

Duane Zimmer Duane.Zimmer at yourlinkinc.net
Wed Jun 22 17:58:44 UTC 2016


Okay that all worked.  But now I'm stuck, what if I want to map a subnet from a helper-address to a different IP pool?  how do I do that?  

-----Original Message-----
From: kea-dev-bounces at lists.isc.org [mailto:kea-dev-bounces at lists.isc.org] On Behalf Of Francis Dupont
Sent: Tuesday, June 21, 2016 1:49 PM
To: Francis Dupont <fdupont at isc.org>
Cc: Kea Dev List <kea-dev at lists.isc.org>
Subject: Re: [kea-dev] Accessing DHCP options within hooks libs

Francis Dupont writes:
> We are using smart pointers, not raw pointers, so perhaps it is 
> possible to implement a kind of copy on write?
> 
> PS: usually COW in C++ is done playing on const/not const.

=> revisiting the #4497 ticket and its associated discussio I add a point: there is a trivial way to deep copy a packet (or an option):
just pack it and unpack the result, i.e., the opposite of the repack method of pkt.h:

    /// @brief Copies content of input buffer to output buffer.
    ///
    /// This is mostly a diagnostic function. It is being used for sending
    /// received packet. Received packet is stored in data_, but
    /// transmitted data is stored in buffer_out_. If we want to send packet
    /// that we just received, a copy between those two buffers is necessary.
    void repack();
			    
BTW even it is a reunpack() IMHO something like deepcopy() is a better (and less misleading) name.

Regards

Francis Dupont <fdupont at isc.org>

PS: sample code (with X = 4 or 6) for a packet:

void deepCopy(PktXPtr& pkt) {
    pkt->pack();
    OutputBuffer& buf(pkt->getBuffer());
    pkt.reset(new PktX(&buf[0], buf.size(),
                       pkt->getLocalAddr(),
                       pkt->getRemoteAddr(),
                       pkt->getLocalPort(),
                       pkt->getRemotePort())); } _______________________________________________
kea-dev mailing list
kea-dev at lists.isc.org
https://lists.isc.org/mailman/listinfo/kea-dev


More information about the kea-dev mailing list