Skip to content
Snippets Groups Projects
  1. Dec 19, 2023
    • Deucе's avatar
      Only mutex proect tls_certificate usage. · ab8d98a7
      Deucе authored
      Holding the lock around session establishment should not be needed,
      but we need to protect tls_certificate read and usage.  Since we
      don't have rwlocks in xpdev (yet?), hack together a crappy rwlock
      that does what we need.
      ab8d98a7
  2. Nov 22, 2023
  3. Nov 07, 2023
    • Rob Swindell's avatar
      JSDOC build cleanup (used to generate jsobjs.html) · 96019606
      Rob Swindell authored
      Replaced _property_ver_list (array of numbers) with _property_ver_list (array
      of objects) with a "ver" and (optional) "desc" property. This solves the
      enumeration order problem with objects that have both manual and table-based
      properties. Object's property tables (arrays of jsSyncPropertySpec) can now
      (optionally) contain the property descriptions. For properties defined in this
      manner, there will never be another mismatch between ther name/type and
      description/version in the jsobjs.html (a problem has re-occurred several
      times through the years with nebulous work-arounds).
      
      We still use _property_desc_list arrays for additional (e.g. manually defined)
      properties in such objects or just objects that only use one method of
      property definition and are not subject to the enumeration order problem.
      
      Fixed numerous typos.
      
      Using more consistent terminology and HTML mark-up.
      
      Some beautification and enhancement of readability, but nothing too major.
      96019606
  4. Sep 06, 2023
  5. Jul 25, 2023
  6. May 27, 2023
  7. Mar 14, 2023
  8. Nov 28, 2022
    • Rob Swindell's avatar
      Revert "Check socket writability in JS Socket.send()" · dacaf1f1
      Rob Swindell authored
      This reverts commit 2cddddce.
      
      This change was "wrong-headed" per Deuce and broke JS sends on
      blocking sockets. Thanks for the help.
      
      This fix for inifinite-wait on send() likely led to the infinite
      BinkIT errors/log messages that led to commit b795cf6a.
      
      The real fix for this problem (which can block all other timed
      events from running), would be a Socket.poll() on the socket before
      send in binkp.js.
      dacaf1f1
  9. Oct 04, 2022
  10. Feb 24, 2022
  11. May 22, 2021
  12. Apr 08, 2021
  13. Apr 06, 2021
  14. Apr 05, 2021
  15. Apr 04, 2021
  16. Apr 03, 2021
  17. Apr 02, 2021
    • Deucе's avatar
      Initial work on setTimeout() · 19289739
      Deucе authored
      This appears to work and the event handler *should* work on other
      event types already.
      
      Note, this is *nix-only due to the use of poll().  select() will
      need to be used for Windows to keep XP compatability.
      19289739
    • Deucе's avatar
      Fix Socket.connect() · 5a45abac
      Deucе authored
      Broken with the poll() update
      5a45abac
  18. Mar 31, 2021
    • Deucе's avatar
      Use new PREFER_POLL define to control poll() usage · 663ca552
      Deucе authored
      Rather than depending on _WIN32 which is silly, make it clear what
      exactly is being done and why.
      
      Note that the spy socket stuff and some external stuff on *nix have
      had the select() implementation removed.  To support using select()
      on !Win32 will require de-refactoring that's not really worth doing.
      Instead, just use #error and reference the commit where the old
      code can be found.
      663ca552
  19. Mar 30, 2021
    • Deucе's avatar
      Initial poll() work · 0821142a
      Deucе authored
      Still needs updates in services_thread(), CGI stuff in websrvr.c,
      and sbbs_t::external()
      0821142a
  20. Mar 17, 2021
    • Deucе's avatar
      Close Socket on unhandled TLS errors · ba5759c2
      Deucе authored
      While errors on transmit seem to be handled well, errors on receive
      do not, especially through js_recv_line() which has been seen to
      trigger a large number (hundreds) of ECONNRESET errors.  To prevent
      this, simply close the socket when an otherwise unhandled error
      occurs.
      
      Almost certainly fixes that issue, but the underlying cause is still
      undetermined.  The calling script (imapservice.js) was checking
      Socket.is_connected after each recv_line() call, so if the socket
      was actually reset, it would be expected to only call it once.
      
      An alternative would be to explicitly handle the error that is
      seen (CRYPT_ERROR_PARAM1), but let's try a generic fix first and see
      of anything breaks because of it.  Most likely issue would be an
      inability to recv() data after calling shutdown(), but I don't think
      many people do that except to move the TIME_WAIT to where they want
      it.
      ba5759c2
  21. Feb 22, 2021
  22. Feb 16, 2021
  23. Feb 15, 2021
  24. Nov 26, 2020
    • Rob Swindell's avatar
      Fix bug with Socket.getoption() of byte-sized options · 51e31575
      Rob Swindell authored
      Only observed on Windows, the option value variable (val) was uninitialized so querying byte-sized options using WinSock getsockopt() would leave the MSB of the value as undefined (garbage), resulting in sockinfo.js output like this:
      KEEPALIVE = -858993663
      instead of this:
      KEEPALIVE = 1
      51e31575
  25. Nov 22, 2020
Loading