As part of the ongoing project to create a credentials-sharing "standard" for me to use as a framework across a number of other applications, I've been troubleshooting problems in the Admin program, which is used to modify the tables on the server side. I'm sure this isn't the most elegant or simple solution, but it's the solution I coded and after four or five days now of studying, planning, building, and debugging I'm reluctant to have to start over.
Anyway, after hunting down most of the bugs (with your help in a few cases), I now have a working administration program in all but one respect - it won't save the changes to the server.
CGClear Admin v 0.0.4 (4th Alpha Build) - http://pastebin.com/k1u5zTd4
CGClear Server v 0.0.2 (2nd Alpha Build) - http://pastebin.com/U4YGWCVh
According to the program design, the administrator and the server confirm each other's identity with a "trust" variable (I'm having a hard time thinking of a real-life computing equivalent. Certificate maybe?), before the server accepts the new data. The admin program initiates this process at Admin:322 as part of the SAVE command beginning from Admin:317. The server then looks at the message from the admin and should be handling it from Server:268 onward.
Admin is NOT accepting the credentials from the server, even though the relevant variable, trust, is set to "anything" in both sets of code. It instead falsely executes the error handling code from Admin:337 onward.
I know that at the very least, the Admin is directly verifying itself, as the server correctly displays "Receiving Credentials Update" (Server:268), and that the Admin is identifying itself correctly, as the server does NOT list its error code, and instead gets stuck in the receiving loop, and responds to no further modem inputs.
I also know that the Admin and the Server trust variables are identical, which means that the programs SHOULD talk to each other.
I'm at wits end and honestly have no idea what's going on. As near as I can tell, the if/else from Admin:322-339 is simply doing the opposite of what it should.
Once this last problem with the interaction is solved, the "standard" is technically fully developed. I'll be adding everyone who helped in both threads related to it to an acknowledgement section in the docs.