rendered paste body/*! \brief expire_register: Expire registration of SIP peer ---*/
static int expire_register(void *data)
{
struct sip_peer *peer = data;
memset(&peer->addr, 0, sizeof(peer->addr));
destroy_association(peer);
ast_log(LOG_NOTICE, "Expiring SIP '%s'\n", p->name);
manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "Peer: SIP/%s\r\nPeerStatus: Unregistered\r\nCause: Expired\r\n", peer->name);
register_peer_exten(peer, 0);
peer->expire = -1;
ast_device_state_changed("SIP/%s", peer->name);
if (ast_test_flag(peer, SIP_SELFDESTRUCT) || ast_test_flag((&peer->flags_page2), SIP_PAGE2_RTAUTOCLEAR)) {
peer = ASTOBJ_CONTAINER_UNLINK(&peerl, peer);
ASTOBJ_UNREF(peer, sip_destroy_peer);
}
return 0;
}