Fourth, it doesn't convert local IP addresses in attribute values to that of the open socket (using ConvertDefaultIPToSocketIP()). -Fifth, it needs to be able to emulate AttrList::put(), which doesn't send the {quote:MyType} and {quote:TargetType} attributes after the other attributes. +Fifth, it needs to be able to emulate AttrList::put(), which doesn't send the {quote:MyType} and {quote:TargetType} attributes after the other attributes. There is a standalone function that does this (putOldClassAdNoTypes()). Developer time: 1-2 days.