rem: void parse_pidf(char *pidf_body, str *contact_str, str *basic_str, str *location_str, str *site_str, str *floor_str, str *room_str, double *xp, double *yp, double *radiusp, str *packet_loss_str)
add: int parse_pidf(char *pidf_body, str *contact_str, str *basic_str, str *status_str, str *location_str, str *site_str, str *floor_str, str *room_str, double *xp, double *yp, double *radiusp, str *packet_loss_str)
context: void parse_pidf(char *pidf_body, str *contact_str, str *basic_str, str *location_str,		str *site_str, str *floor_str, str *room_str,		double *xp, double *yp, double *radiusp,		str *packet_loss_str){     xmlDocPtr doc = NULL;     xmlNodePtr presenceNode = NULL;     char *presence = NULL;     char *sipuri = NULL;     char *contact = NULL;     char *basic = NULL;     char *location = NULL;     char *site = NULL;     char *floor = NULL;     char *room = NULL;     char *x = NULL;     char *y = NULL;     char *radius = NULL;     char *packet_loss = NULL;     doc = event_body_parse(pidf_body);     presenceNode = xmlDocGetNodeByName(doc, "presence", NULL);     presence = xmlDocGetNodeContentByName(doc, "presence", NULL);     contact = xmlDocGetNodeContentByName(doc, "contact", NULL);     basic = xmlDocGetNodeContentByName(doc, "basic", NULL);     location = xmlDocGetNodeContentByName(doc, "loc", NULL);     site = xmlDocGetNodeContentByName(doc, "site", NULL);     floor = xmlDocGetNodeContentByName(doc, "floor", NULL);     room = xmlDocGetNodeContentByName(doc, "room", NULL);     x = xmlDocGetNodeContentByName(doc, "x", NULL);     y = xmlDocGetNodeContentByName(doc, "y", NULL);     radius = xmlDocGetNodeContentByName(doc, "radius", NULL);     packet_loss = xmlDocGetNodeContentByName(doc, "packet-loss", NULL);		     if (presenceNode)	  sipuri = xmlNodeGetAttrContentByName(presenceNode, "entity");     LOG(L_INFO, "parse_pidf: sipuri=%p:%s contact=%p:%s basic=%p:%s location=%p:%s\n",	 sipuri, sipuri, contact, contact, basic, basic, location, location);     LOG(L_INFO, "parse_pidf: site=%p:%s floor=%p:%s room=%p:%s\n",	 site, site, floor, floor, room, room);     LOG(L_INFO, "parse_pidf: x=%p:%s y=%p:%s radius=%p:%s\n",	 x, x, y, y, radius, radius);     if (packet_loss)	  LOG(L_INFO, "packet_loss=%p:%s\n", packet_loss, packet_loss);     if (contact_str && contact) {	  contact_str->len = strlen(contact);	  contact_str->s = strdup(contact);     }     if (basic_str && basic) {	  basic_str->len = strlen(basic);	  basic_str->s = strdup(basic);     }     if (location_str && location) {	  location_str->len = strlen(location);	  location_str->s = strdup(location);     }     if (site_str && site) {	  site_str->len = strlen(site);	  site_str->s = strdup(site);     }     if (floor_str && floor) {	  floor_str->len = strlen(floor);	  floor_str->s = strdup(floor);     }     if (room_str && room) {	  room_str->len = strlen(room);	  room_str->s = strdup(room);     }     if (xp && x) {	  *xp = strtod(x, NULL);     }     if (yp && y) {	  *yp = strtod(y, NULL);     }     if (radiusp && radius) {	  *radiusp = strtod(radius, NULL);     }     if (packet_loss_str && packet_loss) {	  packet_loss_str->len = strlen(packet_loss);	  packet_loss_str->s = strdup(packet_loss);     }}