int		db_meters(t_engine *e)
{
  int		i;

  if (!xml_next("meters"))
    return (put_error("Not found meters in xml"));
  e->db.meters = (t_base_meter*)xmalloc(sizeof(*e->db.meters));
  i = 0;
  while (i < e->db.nb_meters)
    {
      if (!xml_next("meter"))
	return (put_error("Not enough meter with the index table\n"));
      e->db.meters[i].name = xml_getstr("name");
      e->db.meters[i].type = xml_getstr("type");
      e->db.meters[i].value = xml_getint("value");
      e->db.meters[i].rr = xml_getint("rr");
      e->db.meters[i].is = xml_getint("is");
      e->db.meters[i].sr = xml_getint("sr");
      e->db.meters[i].sx = xml_getint("sx");
      e->db.meters[i].kv = xml_getint("kv");
      e->db.meters[i].min = xml_getint("min");
      e->db.meters[i++].max = xml_getint("max");
      e->db.meters = (t_base_meter*)xrealloc(e->db.meters,
					     sizeof(*e->db.meters) * (i + 1));
      xml_out();
    }
  e->db.meters[i].name = 0;
  xml_out();
  return (0);
}
int		db_weapon(t_engine *e, t_db_ind *ind)
{
  int		i;
  char		*buf;
  int		n;

  if (!xml_next("weapons"))
    return (put_error("Weapons not found in xml"));
  for (i = 0; i < ind->nb[TYPE_WEAPONS]; i++)
    {
      if (!xml_next("weapon"))
	return (put_error("Not enough weapon in xml"));
      if (!(e->db.weapons[i].name = xml_getstr("name")))
	return (put_error("Weapon without name !"));
      e->db.weapons[i].dmg = xml_getint("damage");
      e->db.weapons[i].rof = xml_getint("rof");
      e->db.weapons[i].range = xml_getint("range");
      buf = xml_getstr("projectile");
      for (n = 0; n < e->db.nb_instants; n++)
	if (!strcmp(e->db.instants[n].name, buf))
	  break;
      free(buf);
      if (n && n >= e->db.nb_instants)
	return (put_error("Weapon with Projectile not found"));
      e->db.weapons[i].projectile = &e->db.instants[n];
      if (!xml_next("types"))
	return (put_error("Weapon without type was found"));
      e->db.weapons[i].allowed = db_get_types(e);
      xml_out();
      xml_out();
    }
  xml_out();
  return (0);
}
int main(void){
    char line[100];
    char text[10000] = "";
    FILE * fr = fopen("musicians.xml", "r");
    while(fgets(line, 100, fr)){
    strcat(text, line);
    }
    list_t *teachers = list_new();
    xml_extract(text, teachers);
    xml_out(text);
    http_request_startServer(teachers);
    list_free(teachers);
    return 0;
}
int		db_base_instant(t_engine *e, t_db_ind *ind)
{
  int		i;

  for (i = 0; i < ind->nb[TYPE_INSTANTS]; i++)
    {
      if (!xml_next("instant"))
	return (put_error("Not found instants in xml"));
      e->db.instants[i].name = xml_getstr("name");
      e->db.instants[i].idsprite = unpack_sprite(xml_getstr("sprite"));
      e->db.instants[i].idtaunt = unpack_taunt(xml_getstr("taunt"));
      e->db.instants[i].damage = xml_getint("damage");
      e->db.instants[i].splash = xml_getint("splash");
      e->db.instants[i].speed = xml_getint("speed");
      e->db.instants[i].time = xml_getint("time");
      xml_out();
    }
  return (0);
}