T Address_copy(T A) { ASSERT(A); Address_T C = Address_new(); C->name = A->name ? Str_dup(A->name) : NULL; C->address = A->address ? Str_dup(A->address) : NULL; return C; }
Address *Address_newWithUnixPath(void *unixpath) { Address *self = Address_new(); self->addr = (void *)unixpath; self->addrSockaddrFunc = (Address_sockaddr_func *)UnixPath_sockaddr; self->addrSizeFunc = (Address_size_func *)UnixPath_size; self->addrSetSizeFunc = (Address_setSize_func *)UnixPath_setSize_; self->addrFamilyFunc = (Address_family_func *)UnixPath_family; return self; }
Address *Address_newWithIPAddress(void *ip) { Address *self = Address_new(); self->addr = (void *)ip; self->addrSockaddrFunc = (Address_sockaddr_func *)IPAddress_sockaddr; self->addrSizeFunc = (Address_size_func *)IPAddress_size; self->addrSetSizeFunc = (Address_setSize_func *)IPAddress_setSize_; self->addrFamilyFunc = (Address_family_func *)IPAddress_family; return self; }