viernes, julio 04, 2008

Estándares y Mocosoft

Recientemente he tenido que hacer un programa que entre otras cosas recogía y enviaba ficheros por FTP (programa en BOO sobre .net)


Tuve un problema cuando pedía la lista de ficheros (comando NLST) y el directorio no tenía ficheros

Me devolvía un error, pero no siempre


Miro y... código de error 550 que pueden ser diferentes cosas. Descripción del error "No files found" que es una de las posibles razones del error 550

Pero esto para mi era un problema

550 no es que no haya ficheros, también puede ser que no tengas permiso, por ejemplo

Pero yo quería saber si no había ficheros o no hay permisos o qué exactamente


Y no sirve con leer la descipción, porque es eso sólo una descripción.
No hay garantías que entre diferentes sistemas tengas la misma descripción en los mismos casos.
En ocasiones puedes tener más detalle y en otras menos



Pos vaya rollo lo del protocolo FTP...

O no, mejor mirar en el RFC de FTP (documento donde se especifica cómo debe trabajar)

Sorpresa 1.
A una petición de NLST no se le puede devolver un código de erorr 550 NUNCA ¿¿??


Probemos contra un servidor Linux a ver que dice al pedir la lista de un directorio vacío...


No devuelve código de error y de vuelve... en blanco, nada


Vaya, pues así me gusta más y además sigue es estándar


En ocasiones los estándares no son completos y pueden tener ambigüedades.
En otras ocasiones, el estándar tomó una decisión incorrecta

En estos casos, puede estar justificado hacer tu interpretación o mejora
(aunque con mucha cautela)


Pero nos encontramos con un caso en el que...


Mocosoft no sigue el estándar.
El estándar era claro y completo
La mejor solución era la del estándar


¿Porqué mocosoft lo hizo de otra forma?


No le encuentro ninguna razón que no sea perversa

No hay comentarios: