• HEADERS.DAT

    From apam@VERT/SANDWICH to All on Wednesday, October 31, 2018 08:34:00
    Hi

    I'm attempting to add HEADERS.DAT support to the qwk networking function
    of my BBS. I've got importing from VERT working ok (I'm ignoring most of
    the headers - there's lots of them!)

    I'm wondering about exporting REP packets though, will synchronet mind if
    I don't supply all the headers it sends (ie will it just grab what's
    missing from the VERT.MSG file like it would if HEADERS.DAT is missing).
    This is the headers.dat in my test rep file (with only one message)

    [80]
    Subject: Test with a particularly long subject
    To: All
    Sender: apam


    Is that enough?

    I'm also working on adding the Message-ID and In-Reply-To fields, but I'm unsure of the accepted format. Can those fields be anything (I'm thinking
    maybe I could reuse my message id code from FTN) or is does it need to be
    a specific format? (I mean I'm guessing In-Reply-To is the "Message-ID"
    of the message it's in reply to, but what about the Message-ID?)

    Thanks,
    Andrew


    ---
    * MagickaBBS * The Fat Sandwich - sandwich.hopto.org:2023
  • From Digital Man@VERT to apam on Tuesday, October 30, 2018 12:29:11
    Re: HEADERS.DAT
    By: apam to All on Wed Oct 31 2018 08:34 am

    Hi

    I'm attempting to add HEADERS.DAT support to the qwk networking function
    of my BBS. I've got importing from VERT working ok (I'm ignoring most of
    the headers - there's lots of them!)

    I'm wondering about exporting REP packets though, will synchronet mind if
    I don't supply all the headers it sends (ie will it just grab what's
    missing from the VERT.MSG file like it would if HEADERS.DAT is missing).

    Synchronet won't care if there are fewer than the maximum number of header fields.

    This is the headers.dat in my test rep file (with only one message)

    [80]
    Subject: Test with a particularly long subject
    To: All
    Sender: apam


    Is that enough?

    Sure.

    I'm also working on adding the Message-ID and In-Reply-To fields, but I'm unsure of the accepted format.

    They're based on the RFC822: https://www.rfc-editor.org/rfc/rfc822.txt

    Can those fields be anything (I'm thinking
    maybe I could reuse my message id code from FTN) or is does it need to be
    a specific format? (I mean I'm guessing In-Reply-To is the "Message-ID"
    of the message it's in reply to, but what about the Message-ID?)

    They can be anything, but should be unique. Due to short-comings in the FTN message-ID definition (FTS-9), I wouldn't reuse any "id code from FTN": http://wiki.synchro.net/faq:misc#ftn_msgid

    digital man

    Synchronet/BBS Terminology Definition #13:
    CP437 = Code Page 437 (so-called IBM Extended ASCII)
    Norco, CA WX: 69.2øF, 65.0% humidity, 0 mph WNW wind, 0.00 inches rain/24hrs

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From apam@VERT/SANDWICH to Digital Man on Thursday, November 01, 2018 01:08:00
    Synchronet won't care if there are fewer than the maximum number of
    header fields.

    Oh good, I didn't think it would, but am nervous when trying to interface
    with other peoples networks. Better to be safe than sorry :)

    They can be anything, but should be unique. Due to short-comings in
    the FTN message-ID definition (FTS-9), I wouldn't reuse any "id code
    from FTN": http://wiki.synchro.net/faq:misc#ftn_msgid

    Hmm, well I attempted something but I'm not sure about it now. I have the
    MSGID (which is generated from the time - or if multiple messages are
    sent in the same second it's incremented by a counter and selects the
    highest number) - which is what I used for FTN. Also the name of the jam
    base and the address of the system.

    <XXXXXXXX.jambase@sandwich.hopto.org>

    where sandwich.hopto.org is the external address, jambase is the filename
    of the base and XXXXXXX is the msg id. I noted in your msgids you seem to
    also have the message number in the base (i think), but I'm not sure how
    to do that with my setup. I'll have to think about it some more. Jam
    bases could potentially be the same if they're stored in sub directories,
    the default for my qwk setup is to use the qwk base number as a jam base filename.

    Andrew

    ---
    * MagickaBBS * The Fat Sandwich - sandwich.hopto.org:2023
  • From Digital Man@VERT to apam on Wednesday, October 31, 2018 01:58:52
    Re: RE: HEADERS.DAT
    By: apam to Digital Man on Thu Nov 01 2018 01:08 am

    Synchronet won't care if there are fewer than the maximum number of header fields.

    Oh good, I didn't think it would, but am nervous when trying to interface with other peoples networks. Better to be safe than sorry :)

    They can be anything, but should be unique. Due to short-comings in
    the FTN message-ID definition (FTS-9), I wouldn't reuse any "id code from FTN": http://wiki.synchro.net/faq:misc#ftn_msgid

    Hmm, well I attempted something but I'm not sure about it now. I have the MSGID (which is generated from the time - or if multiple messages are
    sent in the same second it's incremented by a counter and selects the highest number) - which is what I used for FTN.

    Unfortunately with FTN, you have that silly 32-bit limitation on the "serialno" field, so that is a problem (as a noted in that wiki article).

    As for your method, it might be fine. Or it might have the potential to generate duplicate serialno's if you're not keeping track of the last one used or the time resolution is super-fine (not one-second intervals, ala time_t).

    For Internet-standard message-IDs, use a long random number combined with the time or something (anything) that is very likely to always be unique, forever. Internet-standard message-IDs (the kind I also use internally in Synchronet/SMB and the QWK extensions) have no "serialno" concept and thus *any* amount and kind of text is valid.

    digital man

    Synchronet/BBS Terminology Definition #15:
    CVS = Concurrent Versioning System
    Norco, CA WX: 65.0øF, 25.0% humidity, 0 mph WSW wind, 0.00 inches rain/24hrs

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From apam@VERT/SANDWICH to Digital Man on Thursday, November 01, 2018 05:54:00
    As for your method, it might be fine. Or it might have the potential
    to generate duplicate serialno's if you're not keeping track of the
    last one used or the time resolution is super-fine (not one-second intervals, ala time_t).

    I do keep track of the last one used, and if that file is deleted it will choose the current time (and create the file). It's seconds too, at some
    point the 32 bit limitation will overflow, and then count up to where it started, it would eventually create duplicates.

    For Internet-standard message-IDs, use a long random number combined
    with the time or something (anything) that is very likely to always
    be unique, forever. Internet-standard message-IDs (the kind I also
    use internally in Synchronet/SMB and the QWK extensions) have no
    "serialno" concept and thus *any* amount and kind of text is valid.

    If this is the case, I could use libuuid and just generate a uuid for
    each message. libuuid is a bit of a black box to me, but I think it uses
    time as well as other sources of uniqueness. It would look something
    like:

    <84949cc5-4701-4a84-895b-354c584a981b@sandwich.hopto.org>

    Perhaps that would be better?

    Andrew

    ---
    * MagickaBBS * The Fat Sandwich - sandwich.hopto.org:2023
  • From Digital Man@VERT to apam on Wednesday, October 31, 2018 10:51:52
    Re: RE: HEADERS.DAT
    By: apam to Digital Man on Thu Nov 01 2018 05:54 am

    For Internet-standard message-IDs, use a long random number combined with the time or something (anything) that is very likely to always
    be unique, forever. Internet-standard message-IDs (the kind I also
    use internally in Synchronet/SMB and the QWK extensions) have no "serialno" concept and thus *any* amount and kind of text is valid.

    If this is the case, I could use libuuid and just generate a uuid for
    each message. libuuid is a bit of a black box to me, but I think it uses time as well as other sources of uniqueness. It would look something
    like:

    <84949cc5-4701-4a84-895b-354c584a981b@sandwich.hopto.org>

    Perhaps that would be better?

    Looks better at a glance. Better than just <time>@<host>.

    digital man

    Synchronet "Real Fact" #75:
    Rob's alias "digital man" was inspired by a song on Rush's 1982 "Signals" album.
    Norco, CA WX: 73.5øF, 13.0% humidity, 1 mph ESE wind, 0.00 inches rain/24hrs

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From apam@VERT/HAPPYLND to digital man on Monday, November 15, 2021 11:25:00
    One other quick question,

    What is the c1e0 at the end of the whenwritten field in headers.dat?

    WhenWritten: 20190807093601-0700 c1e0

    I'm looking to get the correct Timezone for exported messages, and figure
    this header is how.

    Andrew

    --
    |03Andrew Pamment |08(|11apam|08)
    |13Happy|10Land |14v2.0|08!|07

    ---
    þ Talisman þ HappyLand v2.0 - telnet://happylandbbs.com:11892/
  • From Digital Man@VERT to apam on Sunday, November 14, 2021 18:53:32
    Re: HEADERS.DAT
    By: apam to digital man on Mon Nov 15 2021 11:25 am

    One other quick question,

    What is the c1e0 at the end of the whenwritten field in headers.dat?

    WhenWritten: 20190807093601-0700 c1e0

    It's a location-based timezone. It contains the same details as the "-0700" UTC offset, but can be more unique (and specific) when there are multiple time zones with the same UTC offset. See https://synchro.net/docs/smb.html#Data%20types if you want more details.

    I'm looking to get the correct Timezone for exported messages, and figure this header is how.

    If you just want the UTC offset, the ISO date/time string has it too.
    --
    digital man

    Synchronet/BBS Terminology Definition #60:
    Phreak = Telephone system hack[er]
    Norco, CA WX: 76.4øF, 31.0% humidity, 3 mph NNE wind, 0.00 inches rain/24hrs

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From apam@VERT/HAPPYLND to Digital Man on Monday, November 15, 2021 15:40:00
    If you just want the UTC offset, the ISO date/time string has it too.

    I was more concerned about the messages I'm sending out to dovenet, as I
    logged into Freeway, and it showed my messages as being from the future
    (my local time with a UTC offset - which should be +10:00)

    So I was thinking I should set the WhenWritten field (and when imported/exported while at it) but will synchronet be happy with just the
    ISO date/time or will i need to implement that location based timezone
    bit on the end too?

    I'm looking at: http://wiki.synchro.net/ref:qwk

    Andrew

    --
    |03Andrew Pamment |08(|11apam|08)
    |13Happy|10Land |14v2.0|08!|07

    ---
    þ Talisman þ HappyLand v2.0 - telnet://happylandbbs.com:11892/
  • From Digital Man@VERT to apam on Monday, November 15, 2021 10:25:47
    Re: HEADERS.DAT
    By: apam to Digital Man on Mon Nov 15 2021 03:40 pm

    If you just want the UTC offset, the ISO date/time string has it too.

    I was more concerned about the messages I'm sending out to dovenet, as I logged into Freeway, and it showed my messages as being from the future
    (my local time with a UTC offset - which should be +10:00)

    So I was thinking I should set the WhenWritten field (and when imported/exported while at it) but will synchronet be happy with just the ISO date/time or will i need to implement that location based timezone
    bit on the end too?

    I'm looking at: http://wiki.synchro.net/ref:qwk

    The SMB/hex timezone representation is optional. It's only used (and override the UTC offset provided in the ISO date/time) if it's present.
    --
    digital man

    Synchronet "Real Fact" #104:
    The official Synchronet YouTube channel went live on May 6, 2019
    Norco, CA WX: 78.5øF, 30.0% humidity, 0 mph SW wind, 0.00 inches rain/24hrs

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