Ymodem upload en YAT
From
Armando Perez@2:343/107 to
All on Thu Jan 20 20:41:54 2022
Hola!!
Acabo de terminar el soporte Ymodem (upload) en YAT. Como sabéis no estaba al principio dentro de mi planning. Pero al ver que Synchronet no funciona bien con XModem (intentaré más adelante averiguar por qué) pues veía que la cosa se quedaba algo "coja" para dar posibilidades a cualquier usuario.
Ahora mismo si nos ceñimos exclusivamente a comunicación y subir y bajar paquetes ya podemos trabajar bien con EOTB (BBBs) y Sotano (Mystic). Sin embargo en otras BBSs como Zruspa's o HispaMSX no era posible.
Así que como en teoría añadir Ymodem (básico) no era algo difícil pues me lancé a implementarlo.
Ymodem no deja de ser XModem 1k (CRC) pero que añade información al receiver sobre qué estamos enviando:
- nombre fichero
- tamaño
- fecha modificación
- ficheros que se envian
(aunque todo esto no es obligado y desde Ymodem CPM no se envía)
Realmente el principal avance era el poder enviar / recibir varios ficheros seguidos de golpe.
Synchronet (muy *NIX ella) pues utiliza los clasicos SZ / RZ para enviar y recibir. Esto lo veréis en muchas BBSs cuando os listan los protocolos YModem (SZ).
Lo que, como antes decía, añadia estos programas de comunicaciones era la información que arriba os comentaba.
Alguna cosa la he tenido que dejar "fake". Por ejemplo la fecha de modificación del fichero se envía en Epoch Time (Unix Time) en ... OCTAL!! Esto me hizo muchísima gracia pero teniendo en cuenta lo longevos que son los programas pues tiene sentido.
Lo que ya era más complejo era sacar un Unix Time en MSX. Es posible pero me parecía mucho detalle para algo tan poco necesario. Ojo, que las BBBs lo usan, que si subes el mismo fichero con misma fecha pues te dice que eso ya lo has subido y si lo quieres procesar otra vez.
Pero vamos a lo que os quería contar. Estaba yo muy feliz porque en BBBS y Mystic ya me funcionaba cuandome tope que *no funcionaba* en Synchronet que era, encima, el sitio donde tenía que ir.
¿y a que se debía? Pues basicamente al tipo de terminal que detecta la BBS que es Yat. Yat, como os dije, es raw-terminal. NO ES UN TELNET. Y eso lo detecta Synchronet. ¿Y cuál es la diferencia?
Pues fundamentalmente si por cada #FF que envías lo duplicas (de esto ya hablamos otro día) o no. Si es TELNET hay que hacerlo y si es RAW-TERMINAL no.
¿Por qué me ha costado tanto darme cuenta? Pues porque:
a) BBBs me fucnionaba (yo hacía transferencia tipo telnet, con dobles #FF) b) Mystic me funcionaba, aunque con el download ya tuve problemas con esto ya que, la muy graciosa, lo es telnet subida y terminal bajada!!! Pero el download es controlable sin necesidad de configuración. c) Cogía trazas con Wireshark de lo que subía SyncTerm y era un CALCO de lo que yo subía.
Para volverse loco.
Hasta que se me ha encendido la bombilla, he probado y.. et voilá! Ya está.
Por desgracia me ha tocado ponerlo como algo configurable para el upload. Para download y a través de TCP/IP es fácil ver si lo que recibes lleva dobles #FF o no. Tu esperas un tamaño de paquete (128, 1024) y si lo que recibes es mayor pues ya sabes que se ha utilizado el tipo TELNET.
Pero... ¿y la subida? Pues aquí la cosa se complica porque, si, podría intentar TELNET y si falla hacer fallback a RAWTERM. Pero eso sería un incordio para quien utilizase Synchronet de BBSs de cabecera. Ya que las transferencias costarían más tiempo. Así que a la configuración y a correr. :)
Y poco más. Ahora tengo que hacer el Ymodem download para dar soporte completo a Synchronet, pero con todo lo aprendido y ya teniendo el XModem download será cuestión de un rato.
Ale, voy a ver si subo esto desde el programa que estoy haciendo para tal fin.xD
Un saludo,
Armando
... QQWK V.0.xby Trunks. MSX Rulezz!!
--- BBBS/Li6 v4.10 Toy-5
* Origin: Eye Of The Beholder BBS - The Fidonet's Corsair (2:343/107)