Synchronet now requires the libarchive development package (e.g. libarchive-dev on Debian-based Linux distros, libarchive.org for more info) to build successfully.

  1. 27 Aug, 2019 8 commits
    • deuce's avatar
      Add Barak's House IGM · d75e1169
      deuce authored
      (Initial port)
      Does not currently have an install/uninstall thing... I'm still figuring
      out how that should work.
      d75e1169
    • rswindell's avatar
      Don't require that the last character of the "DateTime" field of packed · c0c60161
      rswindell authored
      messages is a null (0x00) byte. Some broken FidoNet software may include
      a full 20 usable characters in their DateTime header field, like so:
      "04 Feb 119  20:26:32" - representing February 4th, 2019.  Y2K. <sigh>
      
      The DateTime won't be parsed fully correct, but at least the packet won't be
      rejected outright because it is "Grunged". - for Alterego (ALTERANT)
      c0c60161
    • deuce's avatar
      Small door that waits for a key then breaks the passhtru socket. · b13983ec
      deuce authored
      %!jsdoor%. %serr.js -d %f -s %h
      b13983ec
    • deuce's avatar
      Latest dorkit fixes and cleanups. · 29a55f48
      deuce authored
      29a55f48
    • rswindell's avatar
      Resolve a couple harmless GCC warnings. · 22cbfed7
      rswindell authored
      22cbfed7
    • rswindell's avatar
      Log value of 'writable' in "could not write to passthru socket" log msg. · d9f6fce4
      rswindell authored
      May help determine if the socket is disconnected or just not writable.
      d9f6fce4
    • deuce's avatar
      js.exec() fixes. · f38e53a4
      deuce authored
      A child of the parent scopes js object can't do on_exit() stuff properly
      due to the missing private context.  Create a new JS object in the child
      instead.
      
      We also need to copy in the js.load_path_list array contents since we don't
      want the child changing the parent by accident.
      f38e53a4
    • rswindell's avatar
      passthru_socket(): · 289ee122
      rswindell authored
      Always call recv() when select() says the passthru_socket is readable, even
      if the outbuf is full. This resolves an issue where the disconnection of the
      passthru_socket would not be detected if the outbuf was full (e.g. the
      output_thread stopped running).
      Also, check if RingBufWrite() returns a short-write count and log the values
      (actual versus expected write byte count).
      289ee122
  2. 26 Aug, 2019 6 commits
    • rswindell's avatar
      Implement a simple bound-checker in RingBufWrite(): · e3892691
      rswindell authored
      if the ringbuf is shared among multiple threads (e.g. the sbbs->outbuf is
      shared between output_thread() and passthru_thread()) - it was possible
      for a race condition to occur between the caller would call RingBufFree
      to determine the available space in the ringbuf and the call to RingBufWrite
      which would happily overflow the allocated buffer if more data was
      written to the ringbuf (by another thread) in the unprotected time between the
      RingBufFree and RingBufWrite calls.
      
      Now, RingBufWrite() can perform short-writes and will return a length less
      than what was requested to write when there is not enough available space
      to write the requested length.
      
      Hopefully this resolves the corruption/crash issue Deuce is seeing in
      sbbs's passthru_thread().
      e3892691
    • rswindell's avatar
      New global function: utf8_width() · f3e14e0d
      rswindell authored
      - returns the fixed printed-width of the specified UTF-8 encoded string
      f3e14e0d
    • rswindell's avatar
      Added auxattr MSG_HFIELDS_UTF8 bit definition. · 5a1e7f43
      rswindell authored
      5a1e7f43
    • rswindell's avatar
      In *nix builds, change the second almost identical log "Executing external" · 38e30cd4
      rswindell authored
      log message to:
      - only log the message if the "full command line" is different than the
        command-line argument to the external() function. I'm pretty sure that was
        the reason for the addition of this log message, for debugging Linux-DOSEMU
        issues where the fullcmdline != cmdline.
      - change from INFO to DEBUG log level
      - change the message from "executing external: " to "Executing cmd-line: "
      38e30cd4
    • rswindell's avatar
      Re-enable socket optoins and blocking configuration for the client_socket_dup · 801631e5
      rswindell authored
      when de-activating the passthru_socket.
      801631e5
    • deuce's avatar
      If an exception is thrown by the exec()d script, return it instead of the · 5309058a
      deuce authored
      exit_code, and don't throw the exception in the caller.
      
      Remove support for js_scope == scope.  It sorta defeats the whole purpose
      of js.exec().
      5309058a
  3. 25 Aug, 2019 18 commits
  4. 24 Aug, 2019 8 commits