add: fprintf(_f, "Sock      : %p\n", _c->sock);
context: void print_ucontact(FILE* _f, ucontact_t* _c){	time_t t = time(0);	char* st;	switch(_c->state) {	case CS_NEW:   st = "CS_NEW";     break;	case CS_SYNC:  st = "CS_SYNC";    break;	case CS_DIRTY: st = "CS_DIRTY";   break;	case CS_ZOMBIE_N: st = "CS_ZOMBIE_N"; break;	case CS_ZOMBIE_S: st = "CS_ZOMBIE_S"; break;	case CS_ZOMBIE_D: st = "CS_ZOMBIE_D"; break;	default:       st = "CS_UNKNOWN"; break;	}	fprintf(_f, "~~~Contact(%p)~~~\n", _c);	fprintf(_f, "domain    : '%.*s'\n", _c->domain->len, ZSW(_c->domain->s));	fprintf(_f, "aor       : '%.*s'\n", _c->aor->len, ZSW(_c->aor->s));	fprintf(_f, "Contact   : '%.*s'\n", _c->c.len, ZSW(_c->c.s));	if (t > _c->expires)		fprintf(_f, "Expires   : -%u\n", (unsigned int)(t - _c->expires));	else		fprintf(_f, "Expires   : %u\n", (unsigned int)(_c->expires - t));	fprintf(_f, "q         : %s\n", q2str(_c->q, 0));	fprintf(_f, "Call-ID   : '%.*s'\n", _c->callid.len, ZSW(_c->callid.s));	fprintf(_f, "CSeq      : %d\n", _c->cseq);	fprintf(_f, "replic    : %u\n", _c->replicate);	fprintf(_f, "User-Agent: '%.*s'\n", _c->user_agent.len, ZSW(_c->user_agent.s));	fprintf(_f, "received  : '%.*s'\n", _c->received.len, ZSW(_c->received.s));	fprintf(_f, "State     : %s\n", st);	fprintf(_f, "Flags     : %u\n", _c->flags);	fprintf(_f, "next      : %p\n", _c->next);	fprintf(_f, "prev      : %p\n", _c->prev);	fprintf(_f, "~~~/Contact~~~~\n");}