Git Product home page Git Product logo

Comments (21)

rickparrish avatar rickparrish commented on September 23, 2024 1

Can you try uploading a text file to see if that completes? And if it does, try removing any 0xFF bytes from the zip file to see if that completes?

It's been awhile since I worked on the ymodem code, but I do remember the IAC expansion causing issues way back when, so I'm wondering if that's what's to blame here.

from ftelnet.

rickparrish avatar rickparrish commented on September 23, 2024 1

The good news is, I'm able to reproduce the problem here. The bad news is, I'm not sure what's going wrong. My totally wild guess is that the sending side is overwhelming the receiving side by writing all the data as fast as possible, but I'm not really a networking guy so I'm not sure whether that's a plausible explanation.

Either way, disabling "G" mode so it waits for an ACK after sending each block seems to work, so that may be an option. The only drawback is that it'll be slower, but I guess a slower working implementation is better than a faster broken one!

Hopefully I'll get an update out later this weekend...need to clean up the code a bit, and also switch the receiving code to ACK as well.

from ftelnet.

rickparrish avatar rickparrish commented on September 23, 2024 1

@opicron Just updated my public proxies with a new fTelnetProxy build, which should fix the YMODEM-G issues (uploading text and binary files both work on Synchronet+sexyz for me now).

from ftelnet.

rickparrish avatar rickparrish commented on September 23, 2024 1

Looks like Mystic is not escaping the telnet IAC character. The opening header sequence should be:

0x01 (indicates 128 byte block), 0x00 (indicate block number is zero), 0xFF (inverse block number, aka 255 - block number)

Since the inverse block number for block 0 is 255, and 255 is the telnet IAC character, it needs to be doubled-up. Here's the difference between bbs.theforze.eu and bbs.ftelnet.ca:

Downloading file from bbs.theforze.eu
IN: 0x01 0x00 0xFF LORD48.ZIP...truncated rest of header

Downloading file from bbs.ftelnet.ca
IN: 0x01 0x00 0xFF 0xFF LORD48.ZIP...truncated rest of header

from ftelnet.

rickparrish avatar rickparrish commented on September 23, 2024 1

Yeah it's failing for the exact same reason, just with a different output (fTelnet outputs the raw inverse block number, SyncTerm outputs its ones-complement. And the ones-complement of 0xb0 is 79, so they're both complaining about the same thing)

ASCII character 79 is an O, so I think the file you're trying to download has an O as the second character?

Anyway, it's safe to say it's not something on the fTelnet/SyncTerm side, but it's not clear if it's something that Mystic needs to fix, or something else. If Mystic is also running in STDIO mode, then it wouldn't be expected to double-up the IAC characters. Instead, whatever is answering the incoming telnet connection and spawning Mystic in STDIO mode is what would need to do it.

from ftelnet.

rickparrish avatar rickparrish commented on September 23, 2024 1

Thanks for following up, glad it's working now!

from ftelnet.

opicron avatar opicron commented on September 23, 2024

I tried uploading an UTF-8, CP437 and IMB855 .txt file with the same result.

When I try a very small .txt file with the following content

APDZF installateur code

I received this error:

image

from ftelnet.

opicron avatar opicron commented on September 23, 2024

When the upload fails the whole session becomes very sluggish. Like there is some major activity on the background.

I just tried to download a file with both internal Mystic Ymodem-g and SEXYZ Ymodem-G the result for both is bad blocks:

image

from ftelnet.

rickparrish avatar rickparrish commented on September 23, 2024

I've done some additional testing, and with Synchronet and its bundled websocketservice.js proxy, things are working great (after some tweaks to the proxy).

Using fTelnetProxy things are still broken though, so I'll need to do some troubleshooting with that tomorrow.

I also cleaned up the "plain YMODEM" code and pushed it in a branch here if you want to test it out: https://github.com/rickparrish/fTelnet/tree/ymodem

Hopefully once fTelnetProxy is fixed the non-G code won't be needed though.

from ftelnet.

opicron avatar opicron commented on September 23, 2024

I confirm that Ymodem-G upload works on my board through ftelnet with proxy! Great, thank you very much.

Am I correct to read between the lines that download is not working yet? For me that fails still.

Screenshot 2023-09-11 160839 zip

from ftelnet.

rickparrish avatar rickparrish commented on September 23, 2024

I just registered and was able to see what you mean. I captured the header packet so will take a look to see why fTelnet isn't liking it.

I also tried with SEXYZ, but it aborted before any data transfer took place. Does that one work for you?

from ftelnet.

opicron avatar opicron commented on September 23, 2024

I cant seem to make SEXYZ download work. It exits immediately when trying to use STDIO. Will have to find a more recent compiled version, as this one is v2.0. I think v3.x is out but I cannot compile myself.

If the implementation of Ymodem-G in Mystic is incorrect there is nothing we can do. Ill post a message to g00r00 about the Ymodem-G in Mystic. Hopefully this will be fixed ;).

For now thank you very much for your time and effort!

from ftelnet.

rickparrish avatar rickparrish commented on September 23, 2024

I'm curious, if you use SyncTerm to download using YModem-G, does that work?

from ftelnet.

opicron avatar opicron commented on September 23, 2024

It seems if I tag multiple files in Mystic I can use SEXYZ. I just tried and it gives the following error:

Screenshot 2023-09-11 202909

Will try SyncTerm now.

from ftelnet.

rickparrish avatar rickparrish commented on September 23, 2024

Yeah that makes sense SEXYZ would fail too. If I remember right when it failed there was a message about the socket handle not being passed, so it was using STDIO mode, so it would be up to Mystic to escape the IACs, which we know it's not.

Is it possible to have SEXYZ use a socket handle under linux, instead of STDIO mode? I would bet that would do the trick.

from ftelnet.

opicron avatar opicron commented on September 23, 2024

If I know how to do that I would. I tried offering the 2222 port which is the internal docker port. But that crashes SEXYZ. Im not familiar how to do it otherwise. I tried the -telnet paramer but it has no effect.

Edit: I found that adding %0 or %H adds the communication handle to the protocol. However under linux it is empty, wheras under DOS it would link to the comport.

EXTERNAL DOORS MYSTIC
 %H = The current socket handle (added 1.12 A34)
 %0 = The current communication handle (socket handle)

from ftelnet.

opicron avatar opicron commented on September 23, 2024

Syncterm error:
Screenshot 2023-09-11 204338

from ftelnet.

opicron avatar opicron commented on September 23, 2024

Lets leave it at that then. The download doesnt need to be fixed as the issue is not with fTelnet.

Thanks again for your support!

from ftelnet.

opicron avatar opicron commented on September 23, 2024

Just for completeness: I just tried to download a ZIP file where the second character is a K. With syncterm it mentions 0xb1 error. I do not remember which was the other file with 0xb0.

from ftelnet.

rickparrish avatar rickparrish commented on September 23, 2024

With 0xb1 I would have expected the second letter to be an N. For it to be a K it should be 0xb4. That's assuming I'm "reverse engineering" the error correctly, which is entirely possible I'm not!

from ftelnet.

opicron avatar opicron commented on September 23, 2024

For anybody reading into this issue: adding -telnet to SEXYZ command argument doubles the Telnet IAC character when it appears in the transmit datastream.

I thought I tried that before, but apparently I am a idiot. Went ahead and requested this functionality from Digital Man who kindly pointed out this is implemented.

Thanks to @rickparrish upload is working, and download has been working all along as far as I could tell.

from ftelnet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.