Skip to content
Snippets Groups Projects
  1. Jun 03, 2023
    • Deucе's avatar
      Some more changes for the changelog. · 1c8f7ed8
      Deucе authored
      1c8f7ed8
    • Deucе's avatar
      Fix up source/last for external scaling · 11050ff1
      Deucе authored
      This was ending up using an uninitialized value
      11050ff1
    • Deucе's avatar
      Fix use of uninitialized value · b0feed94
      Deucе authored
      b0feed94
    • Deucе's avatar
      Use a single pipeline for Linux SyncTERM and dpkg · 1164b6a1
      Deucе authored
      No need to build twice just to create the bundle.
      1164b6a1
    • Deucе's avatar
      Format the .deb filename "correctly" and add a pipeline for it. · 6b79a4e7
      Deucе authored
      In theory, a crazy person could grab it every day and upgrade it.
      6b79a4e7
    • Deucе's avatar
      Meh, fix up the dpkg target to use PREFIX · f9533560
      Deucе authored
      You still need to specify it, but you can create a /usr/local dpkg
      now if you don't.
      f9533560
    • Deucе's avatar
      Fix warnings. · 731567b4
      Deucе authored
      731567b4
    • Deucе's avatar
      Document how to build a dpkg. · ba2e6c5a
      Deucе authored
      It's pretty important to specift PREFIX here right now since it's
      not actually used in the paths, which means there would be a mismatch
      between where the files are installed and where the data lives.
      
      This is fairly easy to fix, but I likely never will.
      ba2e6c5a
    • Deucе's avatar
      Finally got ChromeOS icon/toltip working! · 685ee2f2
      Deucе authored
      It appears its matching based on the class, not the application.
      Since this was hard-coded to CIOLIB based on the idea of using
      resources to customize all CIOLIB windows, this didn't match the
      SyncTERM .desktop file, so ChromeOS assumed it was "something else"
      
      Add yet another ciolib_initial_* variable to set this, and she's
      finally good!
      685ee2f2
    • Deucе's avatar
      Add dpkg target · c1b387c2
      Deucе authored
      Part of my apparently never-ending quest to get the icon to show up
      for the SyncTERM window on ChromeOS.
      c1b387c2
    • Rob Swindell's avatar
      Fix channel.js line 372: TypeError: c.list[i] is undefined · c3415404
      Rob Swindell authored
      Cyan may have a better fix. <shrug>
      c3415404
    • Deucе's avatar
      Implement the _NET_WM_PING protcol · 20d77d5a
      Deucе authored
      Implied by _NET_WM_PID being set, so may as well do it.
      20d77d5a
    • Deucе's avatar
      Set _NET_WM_PID · 76641ca7
      Deucе authored
      Seems like a good idea, should allow WMs to kill hung processes and
      stuff like that.
      76641ca7
    • Rob Swindell's avatar
      Use "Message Editors" instead of the (vague) "External Editors" · 99b46a01
      Rob Swindell authored
      It was redudnant having "External Editors" under "External Programs" (they're
      all external, yeah?) and of course, "Editors of what?"
      
      So yeah, existing docs are now all wrong. :-)
      99b46a01
    • Deucе's avatar
      Disable X Synchronize and some minr optimizations in set_icon() · ae643313
      Deucе authored
      The XSynchronize disablement is the most important here... didn't
      realize it defaulted to enabled, which has been slowing down a *lot*
      of stuff for a long time... not that there's much left that benefits
      from disabling Synchronized XLib except this new terrible icon thing.
      ae643313
    • Rob Swindell's avatar
      Add a 60-second timeout to sbbs_t::passthru_socket_activate() · ca7ab040
      Rob Swindell authored
      Keyop reported an issue via irc whereby a user that failed to download a file
      would leave the node "hung" in "downloading via telnet" node status even
      though the user had long since disconnected and the log reflected that the
      terminal server was aware of this:
      
      term Node 4 <user> sexyz: !1152 zmodem_recv_raw TIMEOUT (10 seconds)
      term Node 4 <user> sexyz: !zmodem_recv_header TIMEOUT
      term Node 4 <user> external Timeout waiting for output buffer to empty
      <minutes later>
      term Node 4 connection reset by peer on send
      term Node 4 !ERROR 32 sending on socket 102
      term Node 4 !ERROR 32 sending on socket 102
      term Node 4 !ERROR 32 sending on socket 102
      term Node 4 !ERROR 32 sending on socket 102
      term Node 4 !ERROR 32 sending on socket 102
      term Node 4 disconnected
      term Node 4 !ERROR 32 sending on socket 102
      
      and
      
      term Node 3 <user> sexyz: !1152 zmodem_recv_raw TIMEOUT (10 seconds)
      term Node 3 <user> sexyz: !zmodem_recv_header TIMEOUT
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !1152 zmodem_recv_raw TIMEOUT (10 seconds)
      term Node 3 <user> sexyz: !zmodem_recv_header TIMEOUT
      term Node 3 <user> external Timeout waiting for output buffer to empty
      <minutes later>
      term Node 3 connection reset by peer on receive
      term Node 3 !ERROR 32 sending on socket 96
      
      These nodes were then locked up in call to passthru_socket_activate(false)
      as reported by gdb, e.g.
      
      Looking at passthru_socket_activate(), the deactivation path (called at the
      end of external() in this case), it was clear that this could be an infinite
      loop in the case the user had disconnected:
      
          do { // Allow time for the passthru_thread to move any pending socket data to the outbuf
              SLEEP(100); // Before the node_thread starts sending its own data to the outbuf
          } while(RingBufFull(&outbuf));
      
      These flush/purge loops aren't strictly needed if the user has disconnected,
      but as can be seen by the above logs, the terminal server may not know that
      (the socket may not indicate disconnect) before passthru_socket_activate()
      is called by external().
      
      So... worst case, just do the activation and deactivation buffer flushes
      and purges for 60 seconds.
      ca7ab040
  2. Jun 02, 2023
  3. Jun 01, 2023
Loading