- Sep 02, 2004
- Sep 01, 2004
-
-
rswindell authored
smb_hallochdr() and smb_hallocdat() for calculating the required padding for proper block alignment.
-
rswindell authored
Using BOOL macros instead of int's and numeric constants.
-
rswindell authored
message (in memory) as already hashed with smb_hashmsg(), preventing redundant hashing by smb_addmsghdr(). Using SMB_SUCCESS instead of 0. Fixed a case where smb_addmsghdr() could return without calling smb_unlocksmbhdr() if the header was an invalid header length (too large). smb_addmsghdr() now hashes the header fields if the message has not already been hashed with smb_hashmsg() before allocating header blocks and will return a failure (SMB_DUPE_MSG) with detail in smb.last_error if a duplicate hash was found - new feature of smb_hashmsg().
-
rswindell authored
smb_addmsghdr() calls smb_hashmsg() again (with update=TRUE).
-
rswindell authored
-
- Aug 31, 2004
-
-
rswindell authored
Created convenience functions and macros for fast message index or header look-ups based on hashed header fields (i.e. message-IDs).
-
- Aug 30, 2004
-
-
rswindell authored
(mark) to indicate whether to mark all found hashes (or stop on first found).
-
rswindell authored
mark found hashes and only write the not-found hashes to disk, rather than not writing *any* hashes (when any match) because the message is a "dupe". When update is false, the behavior is the same as before.
-
rswindell authored
(using smb_close_fp).
-
rswindell authored
-
rswindell authored
Created smb_hashstr() to create hashes of ASCIIZ data.
-
rswindell authored
-
rswindell authored
New smb.hash file uses multiple hashing methods (CRC-16, CRC-32 and MD5) to calculate hashes of various "distinguishing marks" (e.g. message ID and body text) to create a permanent history of message "fingerprints" that can be used for duplicate message detection or fast location of messages based on one of these "distinguishing marks". For example, reading each message header in a message base to find a message with a specific message-ID (i.e. how get_msg_by_id() currently works) significantly slows down message importing with auto-thread linkage (a newly added feature). This hash file will be used to speed this up considerably as well as improve duplicate message detection. This feature is supported with the following new smblib functions: smb_findhash, smb_hashmsg, smb_hash, smb_msghashes, and smb_addhashes. smb_addmsghdr() currently calls smb_hashmsg(), but this will probably change with yet another new function call (smb_addmsg?) which will have access to the body text (a very useful hash for duplicate message detection). Existing SMB message bases will not have an existing .hash file (chksmb will "missing hash" errors), but fixsmb can be used to create the .hash file for existing message bases. Other than the chksmb errors, there are no real problems with missing hashes, accept for the potential for failed auto-thread linkage when importing replies to existing messages. Over time, this will fix itself as new messages are imported and their hashes are stored automatically. Projects using smblib now must link with crc16.c, crc32.c, and md5.c. Other changes: Created GETMSGTXT_TAIL_ONLY convenience macro. smb_open/close_ha/da functions are now just macros to the new smb_open_fp and smb_close_fp functions. These functions were 99% redundant. New macros smb_open/close_hash also point to smb_open/close_fp. More use of SAFEPRINTF macros and safe_snprintf().
-
- Aug 27, 2004
- Jul 28, 2004
-
-
rswindell authored
-
- Jul 22, 2004
-
-
rswindell authored
fread/fwrite does not set errno, use ferror() to get error value instead. Using sizeof() instead of numeric constant (2) in several places. More detail in some last_error strings.
-
- Jun 09, 2004
-
-
rswindell authored
-
- Jan 01, 2004
-
-
rswindell authored
since this value is needed by smb_putmsghdr() to detect an illegal header length increase (exceeds allocated space for header) - the header length is now calculated each time for each call to smb_hfield/hfield_append().
-
- Dec 07, 2003
-
-
rswindell authored
for additional tracking information. Created DLL-exported msg_client_hfields() in postmsg.cpp as a common function to add these client tracking header fields.
-
- Dec 06, 2003
-
-
rswindell authored
used to trace message origins for security reasons.
-
- Dec 04, 2003
-
-
rswindell authored
smb_read() will now retry the read operation if the read fails with an errno of DEADLOCK (occurs on Unix if a Win32 system has the bytes already locked).
-
- Nov 26, 2003
-
-
rswindell authored
Created smb_getmsgtxtlen() to calculate total message body text length, including comment header fields.
-
- Oct 23, 2003
-
-
rswindell authored
-
- Oct 02, 2003
-
-
rswindell authored
offset (which it is not), causing most message index "gets" by offset to fail.
-
- Sep 25, 2003
-
-
rswindell authored
smb_hfield_append_str() used for creating and appending ASCIIZ header fields. These functions handle the string-length calculation automatically.
-
- Sep 17, 2003
-
-
rswindell authored
-
- Sep 16, 2003
- Sep 08, 2003
-
-
rswindell authored
Created new functions: smb_lock, smb_unlock, and smb_islocked - used to lock a message base during maintenance/packing. New smb error constant: SMB_ERR_DELETE. Created anonymous union members in smbmsg_t for future filebase support. Increased SMBLIB_VERSION to 2.30.
-
- Aug 20, 2003
-
-
rswindell authored
-
rswindell authored
smb_incmsg() is now smb_incmsg_dfields(), which now accepts a number of header references argument (refs). smb_incmsg() is now just a macro that calls smb_incmsg_dfields() with 1 for the number of references.
-
rswindell authored
Created SMB_ALL_REFS macro, used to free all references to data block.
-
- Jul 19, 2003
-
-
rswindell authored
smb_getmsgidx() (no longer tries to read past EOF).
-
- Jul 01, 2003
-
-
rswindell authored
the length is 0. smb_addcrc() now verifies the file is evenly divisible by 4 bytes (the size of a 32-bit CRC record).
-
- Jun 14, 2003
-
-
rswindell authored
required header fields (to/from/subj) is missing. Instead, it just points the convenience pointer(s) for the missing field(s) to a static null string. Increased version to 2.22.
-
- May 23, 2003