Hola a todos :)

Ayer a última hora subí tanto a SourceForge como al site oficial de BASpeed, una nueva versión del código fuente de BASpeed v10. Tiene algunos cambios importantes que paso a detallar ahora mismo:

  • Se ha cambiado el código fuente, de manera que el componente visual TIdICMPClient está dentro del código del objeto TEco, y no como un objeto público en la parte de diseño. Esto tiene sus ventajas e inconvenientes. La ventaja es el control absoluto sobre el control dentro del hilo de ejecución. La desventaja es que hay que incluir el código completo de cada cosa que se quiera hacer con el. Pero eso era algo que ya estaba previsto viendo el código fuente del test de velocidad donde los componentes TIdHTTP están incluidos dentro del código del hilo de ejecución y no como parte de la fase de diseño de la parte gráfica del programa.
  • Se ha incluido una función nueva (IPAddrToName) que nos permite averiguar el nombre de un determinado nodo sabiendo su dirección IP.
  • Se ha elevado el nivel de privilegio de la aplicación a Administrador para que permita realizar pings (debido a que el componente TIdICMPClient utiliza paquetes de información RAW disponibles únicamente si el programa tiene derechos de administrador).

Y ahora viene la parte en la que comento dos grandes fallos de esta versión y que deberán quedar solucionados en la próxima revisión del código fuente:

  • El componente TIdICMPClient, que es el componente de la librería Indy que nos permite realizar pings a dominios, funciona muy bien cuando el domino existe. Pero... si el dominio no existe me he encontrado con la fatalidad de que no salta ningún error ni nada que indique que tal servidor no existe. De hecho podéis probarlo con la nueva versión y veréis que la nueva versión no presenta fallo alguno si ponéis un servidor inventado. De hecho se queda con el botón cambiado como si esperara respuesta por parte del servidor. Esto no es algo deseable y por lo tanto en la próxima revisión tiene que estar solucionado.
  • El código fuente, tal como está, es válido únicamente en Windows. Es debido a que la función nueva (IPAddrToName) utiliza funciones de la unidad WinSock, disponible únicamente en Windows. Esto no es algo nada deseable ya que el código fuente debe funcionar tanto en Windows, Linux como Mac. Para la siguiente revisión esto deberá estar solucionado también.

Como veis esta versión se ha lanzado para que veáis el test de ping funcionando, pero no es la versión que debería haberse lanzado. En la siguiente versión se sustituirá el componente TIdICMPClient por las librerías Synapse que nos permiten utilizar el ping perfectamente aparte de poder utilizarlos tanto para realizar el ping como el tracert.

Y de momento eso es todo hasta la próxima revisión del código fuente, donde esos fallos que he comentado estarán solucionados.
Un saludo a todos :) y seguimos en ello ;)