rem: if (find_watcher(p, &w_uri, et, &w) == 0) {
add: if (find_watcher_dlg(p, &w_dlg_id, et, &w) == 0) {
context: int existing_subscription(struct sip_msg* _m, char* _domain, char* _s2){	struct pdomain* d;	struct presentity* p;	struct watcher* w;	str p_uri, w_uri;	str w_dn;	int et = 0;	if (_m->event) {		event_t *event = (event_t*)(_m->event->parsed);		et = event->parsed;	} else {		LOG(L_ERR, "existing_subscription defaulting to EVENT_PRESENCE\n");		et = EVENT_PRESENCE;	}	paerrno = PA_OK;	if (parse_from_header(_m) < 0) {		paerrno = PA_PARSE_ERR;		LOG(L_ERR, "existing_subscription(): Error while parsing From header field\n");		goto error;	}	d = (struct pdomain*)_domain;	if (get_pres_uri(_m, &p_uri) < 0) {		LOG(L_ERR, "existing_subscription(): Error while extracting presentity URI\n");		goto error;	}	if (get_watch_uri(_m, &w_uri, &w_dn) < 0) {		LOG(L_ERR, "existing_subscription(): Error while extracting watcher URI\n");		goto error;	}	lock_pdomain(d);		if (find_presentity(d, &p_uri, &p) == 0) {		if (find_watcher(p, &w_uri, et, &w) == 0) {			LOG(L_ERR, "existing_subscription() found watcher\n");			unlock_pdomain(d);			return 1;		}	}	unlock_pdomain(d);	return -1; error:	send_reply(_m);       	return 0;}