Subj : Is there a bug in Socket.data_waiting ?
To : nelgin
From : Digital Man
Date : Wed Feb 21 2024 11:00 pm
Re: Is there a bug in Socket.data_waiting ?
By: nelgin to Digital Man on Thu Feb 22 2024 12:42 am
> Re: Is there a bug in Socket.data_waiting ?
> By: Digital Man to nelgin on Wed Feb 21 2024 20:24:51
>
> 'use strict';
> load("sbbsdefs.js");
> load('sockdefs.js');
>
> var sock = new Socket();
>
> if(!sock.connect('vert.synchro.net',23)) {
> writeln('Connect failure ' + sock.error_str);
> exit(1);
> }
>
> writeln("ic: " + sock.is_connected);
> print(JSON.stringify(sock, null, 4));
>
> So, if I go with this:
>
> ic: true
> "error_str": "Success",
> "is_writeable": true,
> "is_writable": true,
> "data_waiting": false,
> "nread": 0,
>
> Shouldn't matter if I'm not in a loop right?
Yes, it matters. The first time (or several) through the loop, there's not going to be any data waiting.
> When I connect the a socket
> there's data waiting for me as evidenced by netcat.
>
> $ nc vert.synchro.net 23
>
> Synchronet BBS for Win32 Version 3.20
> Telnet connection from: 192.138.210.158
> Resolving hostname...
> �������� ������'
> _
> _
> Synchronet BBS for Win32 Version 3.20 Copyright 2022 Rob Swindell
> ^[[?6c^[[49;98R^[[49;1R^C
netcat is polling for received data (in a loop, like the example I pasted). That data is not just immediately available upon connection.
> INterestingly, it seems vert does telnet negotiation after already sending
> some text.
Yup. Telnet commands can be sent at any time.
--
digital man (rob)
This Is Spinal Tap quote #38:
Artie Fufkin: I'm not asking, I'm telling with this. Kick my ass.
Norco, CA WX: 51.2�F, 91.0% humidity, 0 mph ESE wind, 0.16 inches rain/24hrs
---
� Synchronet � Vertrauen � Home of Synchronet � [vert/cvs/bbs].synchro.net