• src/smblib/smblib.c

    From rswindell@VERT to CVS commit on Wednesday, July 15, 2015 16:43:31
    src/smblib smblib.c 1.148 1.149
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/tmp/cvs-serv32407

    Modified Files:
    smblib.c
    Log Message:
    Add call to fflush() to smb_getstatus() to attempt to fix reported problem
    (on Linux) where the "total messages" value (stored in the SMB status header) is stale when the header is updated in another open instance of the message base. Sorry, I forgot to complete the commit earlier than I originally said I did.


    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ telnet://vert.synchro.net
  • From rswindell@VERT to CVS commit on Thursday, November 26, 2015 02:30:29
    src/smblib smblib.c 1.149 1.150
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/tmp/cvs-serv21615

    Modified Files:
    smblib.c
    Log Message:
    Updated comment.


    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ telnet://vert.synchro.net
  • From rswindell@VERT to CVS commit on Thursday, December 10, 2015 11:45:33
    src/smblib smblib.c 1.152 1.153
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/tmp/cvs-serv10811

    Modified Files:
    smblib.c
    Log Message:
    Fix bug new bug introduced in previous commit to this file:
    In smb_hfield_add_netaddr(), if the net_type is specifically set to NET_NONE and passed to this function, do not return SMB_ERR_NOT_FOUND (-110). This allows the nntpservice.js, for example, to create a message that is technically "local", but with a from_net_addr (the NNTP-posters email address).


    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ telnet://vert.synchro.net
  • From rswindell@VERT to CVS commit on Thursday, November 16, 2017 01:05:57
    src/smblib smblib.c 1.170 1.171
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/home/rswindell/sbbs/src/smblib

    Modified Files:
    smblib.c
    Log Message:
    When creating a message base with smb_create(), it'll create (or overwrite) <code>.ini and add a single key to the global/root section:
    Created = 0x<time_t> which can be used (e.g. by nntpservice.js) to determine the date/time the message base was created.
    This makes the <code>.ini files an official part of the SMB format. Wheee.



    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Tuesday, November 21, 2017 15:24:20
    src/smblib smblib.c 1.171 1.172
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/tmp/cvs-serv547

    Modified Files:
    smblib.c
    Log Message:
    smb_freemsgdat() [called by smb_freemsg_dfield() and smb_freemsg()]
    and smb_incmsg_dfields(), now lock and unlock the SMB header.
    This shouldprevent some mail base corruption as well as this error:
    -203 (smb_incmsgdat 13 'Permission denied' reading allocation record at offset 795568) incrementing data allocation units


    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Digital Man@VERT to rswindell on Tuesday, November 21, 2017 17:24:39
    Re: src/smblib/smblib.c
    By: rswindell to CVS commit on Tue Nov 21 2017 03:24 pm

    src/smblib smblib.c 1.171 1.172
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/tmp/cvs-serv547

    Modified Files:
    smblib.c
    Log Message:
    smb_freemsgdat() [called by smb_freemsg_dfield() and smb_freemsg()]
    and smb_incmsg_dfields(), now lock and unlock the SMB header.
    This shouldprevent some mail base corruption as well as this error:
    -203 (smb_incmsgdat 13 'Permission denied' reading allocation record at offset 795568) incrementing data allocation units

    This was an erroneous commit of the wrong file, so I removed this revision from CVS. You can ignore this particular commit message.

    digital man

    This Is Spinal Tap quote #15:
    Review on "Shark Sandwich", merely a two word review: "Shit Sandwich".
    Norco, CA WX: 81.2øF, 25.0% humidity, 0 mph S wind, 0.00 inches rain/24hrs

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Saturday, March 03, 2018 20:07:14
    src/smblib smblib.c 1.172 1.173
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/home/rswindell/sbbs/src/smblib

    Modified Files:
    smblib.c
    Log Message:
    Include hex values of invalid base/header IDs in the error message.



    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Sunday, March 04, 2018 14:59:41
    src/smblib smblib.c 1.173 1.174
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/home/rswindell/sbbs/src/smblib

    Modified Files:
    smblib.c
    Log Message:
    Fix potential bug:
    If caller doesn't zero-initialize smb_t, then the 'lock' member could've
    been non-zero (garbage) and some functions would then not lock the SMB
    header, used for protecting against corruption from multiple process or thread modification of the same base.



    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Sunday, March 04, 2018 16:35:43
    src/smblib smblib.c 1.174 1.175
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/home/rswindell/sbbs/src/smblib

    Modified Files:
    smblib.c
    Log Message:
    smb_addmsghdr() will now confirm the index file length against the status.total_msgs value: if they don't match, don't add header & index
    to the message base, it's apparently corrupted and we're only going to
    make things worse as smb_putmsgidx() will fail (after we've stored the hdr) with an "invalid index offset" error.



    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Thursday, March 08, 2018 20:53:58
    src/smblib smblib.c 1.175 1.176
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/home/rswindell/sbbs/src/smblib

    Modified Files:
    smblib.c
    Log Message:
    A couple of the smb last_error strings had "index" and "header"
    conflated. Added " file" as well.



    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Saturday, July 07, 2018 21:02:26
    src/smblib smblib.c 1.177 1.178
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/home/rswindell/sbbs/src/smblib

    Modified Files:
    smblib.c
    Log Message:
    smb_lockmsghdr() - if the 'locked' smb instance property is already set,
    don't try to (re)lock it, just return SMB_SUCCESS.

    I honestly don't recall why I made this change, but it makes sense, so I'm committing it finally.



    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Monday, October 22, 2018 21:38:53
    src/smblib smblib.c 1.181 1.182
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/tmp/cvs-serv16447

    Modified Files:
    smblib.c
    Log Message:
    Removed stray (extra) semicolon - no effect.



    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Saturday, February 16, 2019 04:09:15
    src/smblib smblib.c 1.183 1.184
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/tmp/cvs-serv29070

    Modified Files:
    smblib.c
    Log Message:
    Performance optimization: When performing sequential index or header reads,
    the read buffer may be utilized more efficiently if you do *not* perform an (unnecessary) seek operation just before the read. By eliminating unnecessary seeks in smb_getmsgidx() and smb_getmsghdr(), I was able to reduce the time required to load 9000+ index and header records over a network (Samba/CIFS) share from 15+ seconds to less than 5.


    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Monday, February 18, 2019 23:11:53
    src/smblib smblib.c 1.185 1.186
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/tmp/cvs-serv17040

    Modified Files:
    smblib.c
    Log Message:
    Fixed a couple of function return-value comments.


    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Sunday, May 05, 2019 04:06:52
    src/smblib smblib.c 1.197 1.198
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/home/rswindell/sbbs/src/smblib

    Modified Files:
    smblib.c
    Log Message:
    Clear the new convenience pointers: text_subtype and text_charset
    in clear_convenience_ptrs() - otherwise they can be double-freed when the message (smbmsg_t) is copied with smb_copymsgmem().



    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Monday, July 08, 2019 00:16:10
    src/smblib smblib.c 1.199 1.200
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/tmp/cvs-serv18855

    Modified Files:
    smblib.c
    Log Message:
    Increment SMBLIB version 2.61 (added new function: smb_msg_is_utf8).



    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Wednesday, July 17, 2019 20:09:12
    src/smblib smblib.c 1.200 1.201
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/tmp/cvs-serv17444

    Modified Files:
    smblib.c
    Log Message:
    Address warnings reported by Visual Studio 2017 - Windows XP (v141_xp) toolset


    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Saturday, July 20, 2019 12:10:27
    src/smblib smblib.c 1.201 1.202
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/home/rswindell/sbbs/src/smblib

    Modified Files:
    smblib.c
    Log Message:
    Fix some new GCC warnings about printf arg type mismatches.



    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Saturday, April 04, 2020 15:11:36
    src/smblib smblib.c 1.205 1.206
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/home/rswindell/sbbs/src/smblib

    Modified Files:
    smblib.c
    Log Message:
    Include more details in "illegal header length increase" error msg.



    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Tuesday, April 14, 2020 01:22:54
    src/smblib smblib.c 1.206 1.207
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/tmp/cvs-serv6132

    Modified Files:
    smblib.c
    Log Message:
    On Windows, smb_addmsg() was slow because smb_updatethread() was slow:

    So on Windows, calling unlock() on a file region that you don't have locked, incurs a delay. Likewise, calling lock() on a file region that already have locked incurs a delay. These delays were seriously throttling message imports on Windows (e.g. importing echomail or QWK packets). What should take a few seconds, was taking minutes with noticeable delays. This code has been performing redundant locks/unlocks for over 15 years, so I can only conclude that the performance penalty is a new behavior introduced in recent version(s) of Windows.


    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Tuesday, April 14, 2020 01:50:32
    src/smblib smblib.c 1.207 1.208
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/tmp/cvs-serv11249

    Modified Files:
    smblib.c
    Log Message:
    Some very old, yet inconsistent, behavior of smb_hfield_add() could pretty easily result in a message body being added to a message base with no accompanying message header: if the header data was 0-length, the hfield_dat was not actually allocated and the applicable smbmsg_t convenience pointer was not set accordingly. This had the side effect that if a message were to be imported with a blank recipient ("To" field), the header was not created at
    all (to support mutliple header, single body msgs, i.e. bulkmail).
    The other functions that set the convenience pointers do not treat 0-length header field data special, so this was inconsistent behavior.
    Most message types (e.g. networks) don't want 0-length "to" fields, but that shoudl be enforced somewhere else, not here.


    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Thursday, May 07, 2020 12:30:23
    src/smblib smblib.c 1.208 1.209
    Update of /cvsroot/sbbs/src/smblib
    In directory cvs:/tmp/cvs-serv3248

    Modified Files:
    smblib.c
    Log Message:
    smb_hfield_add_netaddr():
    Don't strip the "user@" portion of a *NETADDR header field if the specified net-type is NET_NONE.


    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Wednesday, December 09, 2020 00:42:43
    https://gitlab.synchro.net/main/sbbs/-/commit/05104f134188b139a6f3e5ba
    Modified Files:
    src/smblib/smblib.c
    Log Message:
    When a message has been forwarded, invalidate the "to" ext/net ptrs

    The convenience pointers to_ext and to_net need to be invalidated (nullified) if we are going to allow forwarding from local email boxes to network mail and keep all the original message header fields in tact.

    The "Forwarded" field must now be added *before* any new recipient information (local user extension or network address of the forwarding destination).

    This is part of the solution to request #83, #108, and #141.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sunday, May 02, 2021 17:14:43
    https://gitlab.synchro.net/main/sbbs/-/commit/ba1f38cc4126d388c6a897ef
    Modified Files:
    src/smblib/smblib.c
    Log Message:
    When adding a msg/file header, remove the DELETE attribute

    When moving or renewing files, they're first removed and then added and they were being added with the DELETE attribute set. The filenames are displayed in red when staged for deletion/removal, so that's how I noticed. Oops.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows)@VERT to Git commit to main/sbbs/master on Monday, May 08, 2023 18:07:50
    https://gitlab.synchro.net/main/sbbs/-/commit/2ee37e4ee9e91ddb2d790f72
    Modified Files:
    src/smblib/smblib.c
    Log Message:
    Fix the relocation of enlarged message headers in smb_putmsghdr()

    The first commit of this feature would leave the base corrupted for a couple
    of reasons (.sha file wasn't opened, using modified header when re-writing the old header to set the DELETED attribute). Both fixed.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Monday, May 08, 2023 18:09:07
    https://gitlab.synchro.net/main/sbbs/-/commit/b5c5630c1ccd675a559dd98d
    Modified Files:
    src/smblib/smblib.c
    Log Message:
    More detail in error strings in smb_getmsghdr()

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows)@VERT to Git commit to main/sbbs/master on Monday, May 08, 2023 18:16:05
    https://gitlab.synchro.net/main/sbbs/-/commit/4985797d2b07ca169326ab6f
    Modified Files:
    src/smblib/smblib.c
    Log Message:
    Streamlined code: we need only one check for hyper-alloc'd msg base here

    No functional change.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Friday, December 29, 2023 17:10:28
    https://gitlab.synchro.net/main/sbbs/-/commit/47fe4a60247147dc217ad02b
    Modified Files:
    src/smblib/smblib.c
    Log Message:
    Fix stale comments (msg.offset became msg.idx_offset a couple years back).

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net