--- sbbs/src/smblib/smblib.h 2018/04/24 16:41:24 1.1 +++ sbbs/src/smblib/smblib.h 2018/04/24 16:45:15 1.1.1.2 @@ -2,13 +2,13 @@ /* Synchronet message base (SMB) library function prototypes */ -/* $Id: smblib.h,v 1.1 2018/04/24 16:41:24 root Exp $ */ +/* $Id: smblib.h,v 1.1.1.2 2018/04/24 16:45:15 root Exp $ */ /**************************************************************************** * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * - * Copyright 2005 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright 2011 Rob Swindell - http://www.synchro.net/copyright.html * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -122,15 +122,22 @@ SMBEXPORT ulong SMBCALL smb_getmsgtxtle SMBEXPORT int SMBCALL smb_lockmsghdr(smb_t* smb, smbmsg_t* msg); SMBEXPORT int SMBCALL smb_getmsghdr(smb_t* smb, smbmsg_t* msg); SMBEXPORT int SMBCALL smb_unlockmsghdr(smb_t* smb, smbmsg_t* msg); -SMBEXPORT int SMBCALL smb_addcrc(smb_t* smb, ulong crc); +SMBEXPORT int SMBCALL smb_addcrc(smb_t* smb, uint32_t crc); -SMBEXPORT int SMBCALL smb_hfield(smbmsg_t* msg, ushort type, size_t length, void* data); -SMBEXPORT int SMBCALL smb_hfield_str(smbmsg_t* msg, ushort type, const char* str); +SMBEXPORT int SMBCALL smb_hfield_add(smbmsg_t* msg, ushort type, size_t length, void* data, BOOL insert); +SMBEXPORT int SMBCALL smb_hfield_add_str(smbmsg_t* msg, ushort type, const char* str, BOOL insert); +SMBEXPORT int SMBCALL smb_hfield_replace(smbmsg_t* msg, ushort type, size_t length, void* data); +SMBEXPORT int SMBCALL smb_hfield_replace_str(smbmsg_t* msg, ushort type, const char* str); SMBEXPORT int SMBCALL smb_hfield_append(smbmsg_t* msg, ushort type, size_t length, void* data); SMBEXPORT int SMBCALL smb_hfield_append_str(smbmsg_t* msg, ushort type, const char* data); -SMBEXPORT int SMBCALL smb_hfield_addlist(smbmsg_t* msg, hfield_t** hfield_list, void** hfield_dat); -SMBEXPORT int SMBCALL smb_hfield_netaddr(smbmsg_t* msg, ushort type, const char* str, ushort* nettype); -#define smb_hfield_bin(msg, type, data) smb_hfield(msg, type, sizeof(data), &(data)) +SMBEXPORT int SMBCALL smb_hfield_add_list(smbmsg_t* msg, hfield_t** hfield_list, void** hfield_dat, BOOL insert); +SMBEXPORT int SMBCALL smb_hfield_add_netaddr(smbmsg_t* msg, ushort type, const char* str, ushort* nettype, BOOL insert); +/* Convenience macro: */ +#define smb_hfield_bin(msg, type, data) smb_hfield_add(msg, type, sizeof(data), &(data), /* insert: */FALSE) +/* Backward compatibility macros: */ +#define smb_hfield(msg,type,len,data) smb_hfield_add(msg, type, len, data, /* insert: */FALSE) +#define smb_hfield_str(msg, type, str) smb_hfield_add_str(msg, type, str, /* insert: */FALSE) +#define smb_hfield_netaddr(msg, type, str, nettype) smb_hfield_add_netaddr(msg, type, str, nettype, /* insert: */FALSE) SMBEXPORT int SMBCALL smb_dfield(smbmsg_t* msg, ushort type, ulong length); SMBEXPORT void* SMBCALL smb_get_hfield(smbmsg_t* msg, ushort type, hfield_t* hfield); @@ -151,20 +158,20 @@ SMBEXPORT int SMBCALL smb_init_idx(smb_ /* smbadd.c */ SMBEXPORT int SMBCALL smb_addmsg(smb_t* smb, smbmsg_t* msg, int storage, long dupechk_hashes - ,ushort xlat, const uchar* body, const uchar* tail); + ,uint16_t xlat, const uchar* body, const uchar* tail); /* smballoc.c */ SMBEXPORT long SMBCALL smb_allochdr(smb_t* smb, ulong length); SMBEXPORT long SMBCALL smb_fallochdr(smb_t* smb, ulong length); SMBEXPORT long SMBCALL smb_hallochdr(smb_t* smb); -SMBEXPORT long SMBCALL smb_allocdat(smb_t* smb, ulong length, ushort refs); -SMBEXPORT long SMBCALL smb_fallocdat(smb_t* smb, ulong length, ushort refs); +SMBEXPORT long SMBCALL smb_allocdat(smb_t* smb, ulong length, uint16_t int16_trefs); +SMBEXPORT long SMBCALL smb_fallocdat(smb_t* smb, ulong length, uint16_t refs); SMBEXPORT long SMBCALL smb_hallocdat(smb_t* smb); -SMBEXPORT int SMBCALL smb_incmsg_dfields(smb_t* smb, smbmsg_t* msg, ushort refs); -SMBEXPORT int SMBCALL smb_incmsgdat(smb_t* smb, ulong offset, ulong length, ushort refs); +SMBEXPORT int SMBCALL smb_incmsg_dfields(smb_t* smb, smbmsg_t* msg, uint16_t refs); +SMBEXPORT int SMBCALL smb_incmsgdat(smb_t* smb, ulong offset, ulong length, uint16_t refs); SMBEXPORT int SMBCALL smb_freemsg(smb_t* smb, smbmsg_t* msg); -SMBEXPORT int SMBCALL smb_freemsg_dfields(smb_t* smb, smbmsg_t* msg, ushort refs); -SMBEXPORT int SMBCALL smb_freemsgdat(smb_t* smb, ulong offset, ulong length, ushort refs); +SMBEXPORT int SMBCALL smb_freemsg_dfields(smb_t* smb, smbmsg_t* msg, uint16_t refs); +SMBEXPORT int SMBCALL smb_freemsgdat(smb_t* smb, ulong offset, ulong length, uint16_t refs); SMBEXPORT int SMBCALL smb_freemsghdr(smb_t* smb, ulong offset, ulong length); SMBEXPORT void SMBCALL smb_freemsgtxt(char* buf); @@ -177,10 +184,11 @@ SMBEXPORT hash_t* SMBCALL smb_hash(ulong SMBEXPORT hash_t* SMBCALL smb_hashstr(ulong msgnum, ulong time, unsigned source ,unsigned flags, const char* str); -SMBEXPORT hash_t** SMBCALL smb_msghashes(smbmsg_t* msg, const uchar* text); +SMBEXPORT hash_t** SMBCALL smb_msghashes(smbmsg_t* msg, const uchar* text, long source_mask); SMBEXPORT int SMBCALL smb_addhashes(smb_t* smb, hash_t** hash_list, BOOL skip_marked); -SMBEXPORT ushort SMBCALL smb_name_crc(const char* name); -SMBEXPORT ushort SMBCALL smb_subject_crc(const char *subj); +SMBEXPORT uint16_t SMBCALL smb_name_crc(const char* name); +SMBEXPORT uint16_t SMBCALL smb_subject_crc(const char *subj); +SMBEXPORT void SMBCALL smb_freehashes(hash_t**); /* Fast look-up functions (using hashes) */ SMBEXPORT int SMBCALL smb_getmsgidx_by_hash(smb_t* smb, smbmsg_t* msg, unsigned source @@ -210,6 +218,7 @@ SMBEXPORT ushort SMBCALL smb_hfieldtypel SMBEXPORT char* SMBCALL smb_dfieldtype(ushort type); SMBEXPORT char* SMBCALL smb_faddrtoa(fidoaddr_t* addr, char* outstr); SMBEXPORT char* SMBCALL smb_netaddr(net_t* net); +SMBEXPORT char* SMBCALL smb_netaddrstr(net_t* net, char* fidoaddr_buf); SMBEXPORT ushort SMBCALL smb_netaddr_type(const char* str); SMBEXPORT char* SMBCALL smb_zonestr(short zone, char* outstr); SMBEXPORT char* SMBCALL smb_hashsource(smbmsg_t* msg, int source);