add: watcher->status = WS_PENDING;
context: int new_watcher_no_wb(presentity_t *_p, str* _uri, time_t _e, int event_package, doctype_t _a, dlg_t* _dlg, 		      str *_dn, str *server_contact, watcher_t** _w){	watcher_t* watcher;	/* Check parameters */	if (!_uri && !_dlg && !_w) {		LOG(L_ERR, "new_watcher(): Invalid parameter value\n");		return -1;	}	/* Allocate memory buffer for watcher_t structure and uri string */	watcher = (watcher_t*)shm_malloc(sizeof(watcher_t) + _uri->len + _dn->len + S_ID_LEN + server_contact->len);	if (!watcher) {		paerrno = PA_NO_MEMORY;	        LOG(L_ERR, "new_watcher(): No memory left\n");		return -1;	}	memset(watcher, 0, sizeof(watcher_t));	/* Copy uri string */	watcher->uri.s = (char*)watcher + S_ID_LEN + sizeof(watcher_t);	watcher->uri.len = _uri->len;	memcpy(watcher->uri.s, _uri->s, _uri->len);		/* Copy display_name string */	watcher->display_name.s = (char*)watcher + S_ID_LEN + sizeof(watcher_t) + _uri->len;	watcher->display_name.len = _dn->len;	memcpy(watcher->display_name.s, _dn->s, _dn->len);		/* Copy server_contact string */	watcher->server_contact.s = (char*)watcher + S_ID_LEN + sizeof(watcher_t) + _uri->len + _dn->len;	watcher->server_contact.len = server_contact->len;	memcpy(watcher->server_contact.s, server_contact->s, server_contact->len);	watcher->s_id.s = (char*)watcher + sizeof(watcher_t);	watcher->s_id.len = 0;	watcher->event_package = event_package;	watcher->expires = _e; /* Expires value */	watcher->preferred_mimetype = _a;  /* Accepted document type */	watcher->dialog = _dlg; /* Dialog handle */	watcher->event = WE_SUBSCRIBE;	*_w = watcher;	return 0;}