diff --git a/BBSHTMLConfig.c b/BBSHTMLConfig.c index 027c786..b0b398c 100644 --- a/BBSHTMLConfig.c +++ b/BBSHTMLConfig.c @@ -118,6 +118,7 @@ void ReleaseWebMailStruct(WebMailInfo * WebMail); VOID TidyWelcomeMsg(char ** pPrompt); int MailAPIProcessHTTPMessage(struct HTTPConnectionInfo * Session, char * response, char * Method, char * URL, char * request, BOOL LOCAL, char * Param, char * Token); void UndoTransparency(char * input); +int GetMessageSlotFromMessageNumber(int msgno); char UNC[] = ""; char CHKD[] = "checked=checked "; @@ -2442,8 +2443,8 @@ VOID ProcessMsgFwdUpdate(struct HTTPConnectionInfo * Session, char * MsgPtr, cha set_fwd_bit(Msg->fbbs, BBSNumber); User->ForwardingInfo->MsgCount++; clear_fwd_bit(Msg->forw, BBSNumber); - if (FirstMessageIndextoForward > Msg->number) - FirstMessageIndextoForward = Msg->number; + if (FirstMessageIndextoForward > GetMessageSlotFromMessageNumber(Msg->number)) + FirstMessageIndextoForward = GetMessageSlotFromMessageNumber(Msg->number); } *RLen = SendMessageDetails(Msg, Reply, Session->Key); diff --git a/BBSUtilities.c b/BBSUtilities.c index 90b4c7b..e803500 100644 --- a/BBSUtilities.c +++ b/BBSUtilities.c @@ -531,7 +531,20 @@ struct MsgInfo * GetMsgFromNumber(int msgno) return MsgnotoMsg[msgno]; } - + +int GetMessageSlotFromMessageNumber(int msgno) +{ + int i; + + for (i=1; i <= NumberofMessages; i++) + { + if (MsgHddrPtr[i]->number == msgno) + return i; + } + + return 0; +} + struct UserInfo * AllocateUserRecord(char * Call) { struct UserInfo * User = zalloc(sizeof (struct UserInfo)); diff --git a/BPQINP3.c b/BPQINP3.c index aa4929c..a62ecba 100644 --- a/BPQINP3.c +++ b/BPQINP3.c @@ -491,7 +491,7 @@ VOID UpdateNode(struct ROUTE * Route, UCHAR * axcall, UCHAR * alias, int hops, { APPL=&APPLCALLTABLE[App]; - if (APPL->APPLHASALIAS == 0 && CompareCalls(axcall, APPL->APPLCALL)) + if (CompareCalls(axcall, APPL->APPLCALL)) { Debugprintf("INP3 for an APPLCALL - discarding"); return; @@ -557,7 +557,7 @@ Found: if (Dest->DEST_STATE & 0x80) // Application Entry { Debugprintf("INP3 Application Entry - discarding"); - return; // Tsble Full + return; } // Update ALIAS @@ -565,7 +565,6 @@ Found: ConvFromAX25(Dest->DEST_CALL, call); Debugprintf("INP3 Updating Node %s Hops %d RTT %d", call, hops, rtt); - if (alias[0] > ' ') memcpy(Dest->DEST_ALIAS, alias, 6); diff --git a/BPQMail.c b/BPQMail.c index 7b3c365..6b70ad9 100644 --- a/BPQMail.c +++ b/BPQMail.c @@ -1155,6 +1155,7 @@ // Validate Mode and Frequency and fix formatting in Connected Message (71) // Fix using OpenBCM on other than Telnet connections (75) // Fix sending + in Webmail (80) +// Fix forwarding problem when using Web interface to change message routing (73) #include "bpqmail.h" #include "winstdint.h" diff --git a/Bpq32.c b/Bpq32.c index f8e0878..a7a6627 100644 --- a/Bpq32.c +++ b/Bpq32.c @@ -1282,6 +1282,7 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses // Fix possible stuck L2 session when handling SREJ (79) // Allow sending CTRL/G From console (Windows) (80) // Fix Webmail autorefresh extra threads problem (websock connection lost handling) (82) +// Fix overwriting application alias (83) #define CKernel diff --git a/ChatUsers.txt b/ChatUsers.txt deleted file mode 100644 index 4db7940..0000000 --- a/ChatUsers.txt +++ /dev/null @@ -1,2 +0,0 @@ -GM8BPQ 0 John ?_qth¬26¬0 -G8BPQ 0 John ?_qth¬26¬0 diff --git a/L3Code.c b/L3Code.c index 48f71bc..7c1d5b8 100644 --- a/L3Code.c +++ b/L3Code.c @@ -277,7 +277,7 @@ VOID PROCESSNODEMESSAGE(MESSAGE * Msg, struct PORTCONTROL * PORT) { APPL=&APPLCALLTABLE[App]; - if (APPL->APPLHASALIAS == 0 && CompareCalls(Msg->ORIGIN, APPL->APPLCALL)) + if (CompareCalls(Msg->ORIGIN, APPL->APPLCALL)) return; } @@ -386,7 +386,7 @@ VOID PROCESSNODEMESSAGE(MESSAGE * Msg, struct PORTCONTROL * PORT) NUMBEROFNODES++; } - // ALWAYS UPDATE ALIAS IN CASE NOT PRESENT IN ORIGINAL TABLE + // ALWAYS UPDATE ALIAS IN CASE NOT PRESENT IN ORIGINAL TABLE ptr1 = &Msg->L2DATA[1]; ptr2 = &DEST->DEST_ALIAS[0]; @@ -454,10 +454,10 @@ VOID PROCESSNODEMESSAGE(MESSAGE * Msg, struct PORTCONTROL * PORT) if (CheckExcludeList(ptr1) == 0) // Excluded continue; - for (n = 0; n < 32; n++) + for (n = 0; n < NumberofAppls; n++) { if (CompareCalls(ptr1, APPLCALLTABLE[n].APPLCALL)) - continue; + goto IgnoreNode; // Don't update our applications } // MAKE SURE ITS NOT CORRUPTED @@ -566,7 +566,7 @@ VOID PROCESSNODEMESSAGE(MESSAGE * Msg, struct PORTCONTROL * PORT) ptr1 += 7; - // UPDATE ALIAS + // UPDATE ALIAS# memcpy(DEST->DEST_ALIAS, ptr1, 6); diff --git a/RTKnown.txt b/RTKnown.txt deleted file mode 100644 index 5f639a8..0000000 --- a/RTKnown.txt +++ /dev/null @@ -1 +0,0 @@ -G8BPQ-1 1754642136 diff --git a/RigControl.c b/RigControl.c index c2b7c4d..279f085 100644 --- a/RigControl.c +++ b/RigControl.c @@ -5450,7 +5450,26 @@ void DecodeCM108(int Port, char * ptr) hid_device *handle = NULL; if (strlen(ptr) > 16) - CM108Device = _strdup(ptr); + { + path_to_open = _strdup(ptr); + + handle = hid_open_path(path_to_open); + + if (handle) + { + hid_close(handle); + CM108Device = _strdup(path_to_open); + } + else + { + char msg[128]; + sprintf(msg,"Port %d Unable to open CM108 device %s", Port, path_to_open); + WritetoConsole(msg); + } + } + + + else { VID = strtol(ptr, &next, 0); diff --git a/ScanHID.c b/ScanHID.c new file mode 100644 index 0000000..4d48d87 --- /dev/null +++ b/ScanHID.c @@ -0,0 +1,51 @@ +// ScanHID.cpp : Defines the entry point for the console application. +// + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#define _CRT_SECURE_NO_DEPRECATE + +#include +#include +#include + +#include "hidapi.h" + +int main(int argc, char* argv[]) +{ + char product[256]; + char sernum[256] = "NULL"; + + struct hid_device_info *devs, *cur_dev; + const char *path_to_open = NULL; + hid_device *handle = NULL; + + // Look for Device + + devs = hid_enumerate(0,0); // so we list devices(USHORT)VID, (USHORT)PID); + cur_dev = devs; + while (cur_dev) + { + wcstombs(product, cur_dev->product_string, 255); + if (cur_dev->serial_number) + wcstombs(sernum, cur_dev->serial_number, 255); + + if (product) + printf("HID Device %s VID %X PID %X Ser %s\r\n Path %s\r\n\r\n", product, cur_dev->vendor_id, cur_dev->product_id, sernum, cur_dev->path); + else + printf("HID Device %s VID %X PID %X Ser %s\r\n Path %s\r\n\r\n", "Missing Product", cur_dev->vendor_id, cur_dev->product_id, sernum, cur_dev->path); + + + cur_dev = cur_dev->next; + } + + + hid_free_enumeration(devs); + printf("Press any key to Exit"); + _getch(); + + +} + + + + diff --git a/Versions.h b/Versions.h index 34767b5..ccf1ddd 100644 --- a/Versions.h +++ b/Versions.h @@ -10,8 +10,8 @@ #endif -#define KVers 6,0,24,82 -#define KVerstring "6.0.24.82\0" +#define KVers 6,0,25,1 +#define KVerstring "6.0.25.1\0" #ifdef CKernel