Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to retain or delete messages #11

Open
pheller opened this issue Jul 8, 2022 · 0 comments
Open

Unable to retain or delete messages #11

pheller opened this issue Jul 8, 2022 · 0 comments

Comments

@pheller
Copy link
Member

pheller commented Jul 8, 2022

Server side was implemented in ProdigyReloaded/delivery-system#50

Client side issue is the collaboration between MSZB015X and MSZB014X, which is described in more detail below:

MSZB015X is the field post-processor for the Input fields that precede each of the 4 messages visible on a mailbox page. When the user has selected "delete" or "retain", the application mode is set as such, then when the user does as instructed and puts a "D" or "R" (dependent on mode) in the input field, then navigates from that input field, MSZB015X is invoked. We have several examples of this program. The nearest older version to the rest of the ~ 1989 era MSZ* programs is dated 1988, and the nearest younger version is dated ~ 1994. The problem with the 1988 version is that there were breaking changes to the variable allocations such that they do not line up with the 1989 programs. The 1994 version seems to agree on the variables, but changed to "X" in the input field, and updates the message table inconsistently with the expectations of MSZB014X.

MSZB014X is a program that is attached as a filter to the navigation action, such that when one leaves the messaging app, MSZB014X is invoked. This program checks to see if a flag is set to process message dispositions, which is set by MSZB015X. Then, it iterates over the message_tables (a series of 3 byte values for each message; 1st byte appears to be the action: 1 for delete, and 2 for retain.; the 2nd and 3rd bytes are the 16-bit big-endian index number of the message).

For each message appearing in this list that has a delete or retain disposition, its index is appended to a discrete list of indices for the related disposition. Then, MSZB014X ultimately sends a message to the server of the following form:

Assuming the client intended to delete 2 messages, index 1 and 3, and retrain 3 messages, indices 2, 4, 6, it would send this message:

<< 0x1, 0x4, 0x0002, 0x0001, 0x0003, 0x5, 0x0003, 0x0002, 0x0004, 0x0006, 0xFF >>

So the task here is to build a new MSZB015X, that does as the older version does in terms of preparing the message tables for MSZB014X, but implements all the features that would have been expected in the 1989/1990 version - which includes paging through the inbox while in delete/retain mode. And, to also recompile the older MSZB014X such that the variable allocations align with the expectations of the 1989/1990 collaborating programs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant