char * TOptAddr::storeSelf(char* buf) { // store generic header buf = writeUint16( buf, OptType ); buf = writeUint16( buf, getSize() - 4 ); // store address buf = Addr->storeSelf(buf); // store sub-options (if three are any) return storeSubOpt(buf); }
char * TOptIAPrefix::storeSelf(char* buf) { buf = writeUint16(buf, OptType); buf = writeUint16(buf, getSize()-4); buf = writeUint32(buf, PrefLifetime_); buf = writeUint32(buf, ValidLifetime_); *(char*)buf = PrefixLength_; buf+=1; memcpy(buf, Prefix_->getAddr(), 16); buf+=16; buf=storeSubOpt(buf); return buf; }
char * TOptIAAddress::storeSelf( char* buf) { buf = writeUint16(buf, OptType); buf = writeUint16(buf, getSize() - 4 ); memcpy(buf, Addr_->getAddr(), 16); buf += 16; buf = writeUint32(buf, PrefLifetime_); buf = writeUint32(buf, ValidLifetime_); buf = storeSubOpt(buf); return buf; }