has anyone else noticed that makenl is generating 10 character serial numbers?
21:07:21.has anyone else noticed that makenl is generating 10 character serial numbers?
Still okay with MakeNL 3.4.8 (Linux) compiled with GNU C on Oct 20 2018
has anyone else noticed that makenl is generating 10 character serial numbers?
has anyone else noticed that makenl is generating 10 character
serial numbers?
Still okay with MakeNL 3.4.8 (Linux) compiled with GNU C on Oct
20 2018 21:07:21.
interesting... mine is also 3.4.8... compiled 2018 Oct 22 with gcc
(Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0... hummm... are you 32bit or
64bit?
has anyone else noticed that makenl is generating 10 character serial numbers?
has anyone else noticed that makenl is generating 10 character
serial numbers?
the problem is here... specifically, %08lx does not set the maximum length... only the minimum...
fprintf(MailFILE, "\x01MSGID: %d:%d/%d %08lx\r\n",
MyAddress[A_ZONE],
MyAddress[A_NET], MyAddress[A_NODE], GetSequence());
You are correct. This is only a problem in 64-bit versions, because in 32-bit versions an unsigned long int will never exceed 8 hexadecimal characters.
Thanks for the report; I'll get it fixed.
On 2019 Jul 28 14:14:20, I wrote to you:
has anyone else noticed that makenl is generating 10 character
serial numbers?
the problem is here... specifically, %08lx does not set the maximum length... only the minimum...
fprintf(MailFILE, "\x01MSGID: %d:%d/%d %08lx\r\n",
MyAddress[A_ZONE],
MyAddress[A_NET], MyAddress[A_NODE], GetSequence());
something like this should work but i'm not a C coder and haven't
tried to actually compile something to test this with...
char* serialnum = printf("%08lx", GetSequence());
if (strlen(serialnum) > 8)
{
serialnum = serialnum + strlen(serialnum) - 8;
}
fprintf(MailFILE, "\x01MSGID: %d:%d/%d %s\r\n", MyAddress[A_ZONE],
MyAddress[A_NET], MyAddress[A_NODE], serialnum);
)\/(ark
Once men turned their thinking over to machines in the hope that this
would set them free. But that only permitted other men with machines
to enslave them.
... Why do croutons come in airtight packages? It's just stale bread.
You are correct. This is only a problem in 64-bit versions,
because in 32-bit versions an unsigned long int will never exceed
8 hexadecimal characters.
Thanks for the report; I'll get it fixed.
This is already fixed in 3.5.1.
I am now really confused - I use 3.5.0 compiled on a X64 system and itproduces
8 char sequence numbers.
FWIW: i'm in the process of hacking in NOKILLSENT to the notify and
submit verbs so i/we can turn off the killsent attribute if i/we
desire... i decided to make it for each type of msg instead of global because you may want to kill sent notify receipts and/or notify
errors... my gripe is that my segments are killed and i want to keep them... no, i don't want to be copying them all over the drive when it
is not necessary ;)
Sysop: | Coz |
---|---|
Location: | Anoka, MN |
Users: | 2 |
Nodes: | 4 (0 / 4) |
Uptime: | 190:50:08 |
Calls: | 184 |
Calls today: | 1 |
Files: | 5,413 |
Messages: | 222,750 |