-
Notifications
You must be signed in to change notification settings - Fork 13
/
changelog.txt
2067 lines (1846 loc) · 100 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Change Log Update (00.00.153)
* 2023-12-24
+ Reworking more Smart Pointers, make sure everything has proper reference counting, remove constants and replace new with make_shared().
+ Rework DeadlineTimer to use the IO Service for monitoring and function callbacks.
- Found issues with threads eating memory and not freeing properly, so removed all thread spawns for the time being, most were on timers.
Change Log Update (00.00.152)
* 2023-11-23
+ Reworking Smart Pointers removing all New references where possible, and
Also making sure all destructors are setup properly, espeically when they
are virtual classes, should have virtual destructors to match.
Change Log Update (00.00.151)
* 2023-06-15 -> 2023-10-07
+ Revision 2 Rework consists of a break down and rewrite of the core system to resolve system and deallocation issues.
+ Updated Telnet Responses to only reply one to avoid loops
+ Fix for ANSI detections, if it contains, then default to CP437, Set max rows/cols to 100, and undetected
defaults to 80x24, add some logging on bad utf8 sequences causing lots of logging
+ Added ESC[6n Cursor Position Detection for Screen size for Terminals and Telnet Clients that don't support NAWS
+ Cleaner Separation of Source and Header Files, lots of Core Refactoring for Cleaner Session deallocation.
+ Update Node Number handling and logging to properly capture which logging per active session.
+ Added IP Addresses on connection statements to review where connection are coming from
+ Fixed Matrix menu redraws on lightbars that will turn the cursor back off when it's a lightbar menu on redisplays.
+ Fixed SQLiteWrapped De allocation issues.
+ Added Human Shield or ESC Twice at login that will disconnects after 8 seconds for Bot hammering.
+ Added new WARN logging level, for items that are not errors but can be considered invalid.
+ Fixed circular dependencies from the logging and configuration files.
+ Changed both Logging and Encoding from Allocated Singletons to Reference Singletons for smarter allocation handling and usage.
+ Updated Project files for Release builds that will create smaller and more optimized executables.
- Removed incomplete FormManager for now, needs to be rewritten and wasn't in use yet.
- Removed Window, OSX project builds, right now only working with Linux and Docker to keep things simple for early development.
Trying to maintain too many platforms and manual build system wastes too much time in the early stages.
- Files logging is temporally removed. Along with yaml formatting of output, wastes too much screen real estate
Change Log Update (00.00.150)
* 2022-05-26
+ Updates for ReadTheDocs
Created Build Guilds for Linux, OS/X, Docker.
+ Mass Cleanup of source files typo cleanups.
Change Log Update (00.00.149)
* 2022-05-08
+ Corrections to OSX Project, Makefile(s) and dependencies in the Install Doc.
Change Log Update (00.00.148)
* 2022-05-06
+ Setup first user created on a new system will be updated to SysOp access
This makes configuring and system setup a lot easier than trying to manually update the SQLite database
+ Also Did some refactoring on the mod_signup module re-using code and passing in functions
instead of code duplication. Some more work can be done here later on.
Change Log Update (00.00.147)
* 2022-05-05
+ Created Dockerfile (Dockerfile.linux-image.build) and docker-compose for generating
a local Docker image with build environment from the pulled branch.
Initial testing and recompiles can be made, but it not setup for GIT pushes.
WIP - Addon to this would be to setup GIT commits and changes for active development.
+ Fixed Yaml (xml_config.yaml) Load issues.
config.hpp hidden_input_field_char was an unsigned char which seems to be an
issue in the latest yaml-cpp v7.0. Converted the variable to a std::string.
+ Added a missed "use_address" configuration option.
Change Log Update (00.00.146)
* 2019-07-27
+ Entire Project update and rework so each environment strictly uses it's own
folder for storing it's projects make files. This avoid one app overwrite another
and one environment overwritten another.
+ Makefiles, each project has a .mk Makefile now. Developer paths are also removed
and each make file per environment is now easier to compile from the command line.
(Exception is windows) since it needs hard coded library paths, (Code Lite recommended here)
+ Linux (build-linux.sh) and OSX (build-osx.sh) script file are now updated and reworked to
build the complete project from the command line easier then ever before.
These scripts will now build all dependencies, tools, unit tests and the full projects
from the script located in the Build folder. All compiled executables are copied back to the
build folder once completed so you can run you system right away.
The build script now has an added command line parameter -j# (# being the number of CPU Core)
using a number greater then 1 on multi-core machines will increate the command line compile time
(Example I have 4 CPU's each with 2 Cores - I use -j8 and it compiles pretty quick on my Desktop)
And in my VMware's I allocate 2 CPU's usually and it's a bit slower to compile.
+ Moved OSX-INSTALL.TXT to the Build/Docs folder, and also created an initial LINUX-INSTALL.TXT
this is mainly for installing libraries and dependencies prior to building the project and
should make things a lot easier.
+ Added Socket HOT Fixes for some issues with SDL_Net. Also small updates on creating the new
LOG Folder when it doesn't exist on startup of the program the first time.
+ Project dependency cleanup, removed libs and paths no longer needed.
+ NOTE- the MenuConvert and PromptConvert tools still used boost, eventually I'll remove it and
use the new internal directory methods I've re-written.
Change Log Update (00.00.145)
* 2019-01-03
+ Fixed some logging level issues, missed logging on encoding so wasn't
reading the pre-set level from the config file properly.
+ Also made all selected logging levels output to console as well as file.
+ Updated ANSI FSE Templates to 1 extra column to the right.
Change Log Update (00.00.144)
* 2019-01-01 - 2019-01-02
+ Fixed Typo on Critical Logging text.
+ Fixed missing () parenthesis on SDL Socket Error Method passed to logging.
+ Corrections to Ansi Parser, CR should only move to beginning of Line, LF should
only move down a line. This can different from a telnet client that gets a
variety. Then need to be pre-normalized for consistence display with CRLF on
all screens. This fixes cross platform ANSI Templates.
+ Some more code cleanup, removed debugging for final testing, Putty, EtherTerm
and Linux terminal on both platform are now all matching output and display properly.
Next, final OSX testing.
+ OSX Project tested and synced. All Good.
Change Log Update (00.00.143)
* 2018-12-24 - 2018-12-31
+ Starting roughing out new logging class for different logging levels. Added new
default INFO logging level to CONFIG and incremented file version. Config can be
deleted and auto re-created for latest version. Also making this a header only class.
Testing example: Logging::instance()->xrmLog<Logging::INFO_LOG>("Test1", 2, 4.5);
Logging with export to YAML and or Console Text for logging level set in config.
+ More work on the logging system using variadic templates for parameter packs.
+ Add missed type.. next to setup filtering on log levels, add buffer queue for
async log writes.
+ A little more on testing logging yaml console output. File output i think will be
queued and handled by main thread leaving the i/o thread free for all session / socket work.
+ WIP - Large Refactoring for new logging and output noise reduction. Startup has been
reworked a little, and next is to go through remaining systems to move output to
console, info, debug logging levels
+ Cont. Logging and Cleanup. Ready for Multi-Platform Testing on Encoding and Logging next.
+ Initial Linux Testing Completed, Next check OSX
+ Updated OSX projects to sync with Linux and Windows. Notice some templates are off,
think adjustments are needed for new lines
Change Log Update (00.00.142)
* 2018-10-31 - 2018-01-23
+ Started initial work on the Full Screen message editor
+ Initial Templates are now displaying and expanded depending on users screen size.
+ Fixed issue with ESC detection on SingleHotKey input vs GetLine Input Had to
updated to push tailing '\0' on Individual ESC so it would detect it wasn't
a sequence such as arrow key(s).
+ Rolled back some test changes on Ansi Parser
First Step in Ansi Parser Update, Screen Buffer character sequence store to
std::string from unsigned char. Next work through the ansi parser calls one
by one to see where things break.
+ Added Initial code for checking utf-8 sequence for rework
+ Small fixes to the Level editor for boolean output
+ Unit Test corrections.
+ Found some issues with High-Ascii and UTF-8 parsing of string. Started unit test
for drilling down. Now need to update the rest of the methods to properly handle
high ASCII mix-ins
+ Rewrote numberOfCharacters, now properly handles mix of HighAscii and Utf-8 when
counting glyphs vs. bytes.
+ Updated Erase String to handle High ASCII with Unicode mix.
+ Added using Tests for updated methods covering extras (HighAscii Tests).
+ Cleaned up some message warning for stub classes not yet reworked.
+ Updated the State_Manager - which handles incoming data from the client to parse
and handle High ASCII input with Multi-bytes sequence parsing.
+ Worked on the Ansi Sequence parser to now handle glyphs instead of single characters.
Some more work need to be done to pass the current encoding used or selected at login
since chars > 127 - 255 in UTF-8 are considered partially 2 Bytes glyphs and there is
no real working detection to differentiate them from high ASCII. Right now it's hard
coded for High ASCII until encoding is passed through. (Temp Fix).
+ Started a Map cache of the translation table. This will store the UTF-16 WIDE CP437
translations with their 8 bit CP437 characters for quick translations back from UTF-8.
+ Initial setup for tracking encoding selection on connection, then deciding on internal
translations to single encoding for internal usage.
+ Creating new Encoding class singleton to separate encoding methods from CommonIO methods.
The singleton will keep pre-loaded mappings for object sharing vs each instance having a
separate copy. Creating Encoding-tests branch to further test internal UTF-8 internal processing.
+ Also created a Multi-Byte to Wide for using the new Mappings, and updated the existing
Wide to Milti-Byte. Left is to write and test the translation from UTF-8 back to CP437.
+ Added new Encoding class Files.
+ Corrected some Initialization on the Encoding Class.
+ ANSI screens and Menu prompts are now default Encoded UTF-8 on load, Parsers are testing
well, next to Decode back to CP437 on output.
+ Initial Tests from Linux Terminal To Windows Machine is good now, had to add Win API specific
translations for Wide and MultiByte Characters.
Initial Tests from Windows CP437 on CP437 -> UTF8 -> CP437 is working much better now.
More internal systems now need to be converted to UTF-8.
+ Sync Linux Project, Also handle UTF-8 -> UCS2 / UTF-16 conversion and exclude extra null bytes.
+ Updated OSX Project and Encoding to Convert Cp437 -> UCS2 -> UTF8 and back, long struggle.
Found some issues with .yaml file reading errors which need to be debugged on OSX now.
+ Debugged issues with YAML and loading the CONFIG Dao multiple times per sessions. Don't
appears to have issues with other instances for Text Prompts, Menu's Etc.. CONFIG should
anyway's be moved to a single shared instance and removed for loading in the Menu Base Constructor.
So far commented out and using default constructor no longer crashes in OSX. Other Platforms
not an issue but lets make this smarted for all.
NOTE: out.SetStringFormat(YAML::DoubleQuoted); could be a nice option but ass double quotes
around all keys as well as string values.
+ Re sync Linux Project with latest changes. Notes, xrm convert project need encoding and should
be updated lateron to encoding data to UTF-8 for yaml files.
+ Re-enabled older idea that was already in place to use Gobal Node Manager "Communicator"
to store the configuration. Updated code to pull this for session instances and then pass this
around as needed. - Next Back to Encoding..
+ Adding Encoding for On Text Generated Internal Methods Also some Internal cleanup.
+ Initial Encoding Completed for Internal UTF-8, Continue Testing and debugging on Windows now.
Reworked some of the editors as well.
+ Fixed several issues with encoding and display output of screens. Especially the Full Screen editor
templating which found most of the issues. code is full of debugging, cleanup will follow!!
+ Removed Debugging out. Next add some logging levels and get rid of a lot of STDOUT debugging.
Change Log Update (00.00.141)
* 2018-10-31
+ Completed Level Editor.
Change Log Update (00.00.140)
* 2018-10-31
+ Level Editors display screen set, next is to plug in all fields for
making edits for saving changes.
Change Log Update (00.00.139)
* 2018-10-30
+ Setup the Prompt and Display Text Files for the Level Editor Screen Next is
to plug in the for screen display.
Change Log Update (00.00.138)
* 2018-10-30
+ Added Copy Levels for the Level Editor. Next is work on Editing the Individual
level field options.
Change Log Update (00.00.137)
* 2018-10-27
+ Correction to type-o on iLevel case in SQL Field Creation.
+ Added sort on Level in Level Editor display screen.
Change Log Update (00.00.136)
* 2018-10-27
+ Fixed checking on Populated list before clearing in Editors.
Change Log Update (00.00.135)
* 2018-10-20
+ Fixed Issue with Foreign Key on for Security Table on User Table.
Change Log Update (00.00.134)
* 2018-10-14
+ Some work on the Level Editor save, update, delete and copy methods.
+ Next is to work on display and editing of the fields and flags.
Change Log Update (00.00.133)
* 2018-10-04
+ Wip on Level Editor, Started work on Level Display screen.
Change Log Update (00.00.132)
* 2018-10-03
+ Updated DbStartup Class to generate default Access Levels for first
time table creating and system defaults. This will also be used for testing the Level Editor.
+ Added Notes on what table exists when the startup does table checking.
Change Log Update (00.00.131)
* 2018-10-03
+ WIP Rework for Level Editor
+ Fixed Editing formatting and styling that was off.
Change Log Update (00.00.130)
* 2018-09-16
+ Created OSX_INSTALL.TXT for compiling the program
+ Basic dependency setup for OS/X using Homebrew package manager.
Change Log Update (00.00.129)
* 2018-08-19
+ Added in the Level Access Mod to the menu system. Now slowly reworking
the initial display to pull and display all levels and add new ones.
+ Sync OSX Project with Latest Module Additions
+ Sync Linux project for latest module file additions
+ Also updates new message and file area modules with their own definitions.
Change Log Update (00.00.128)
* 2018-08-19
+ Renamed Module Config_Sys to FormManager Editor
+ Added Initial Module Files for Message Base and File Areas Editors for rework.
Change Log Update (00.00.127)
* 2018-08-18
+ Added AccessLevelDao to Db_Startup class to create table if it doesn't exist.
+ Added new AccessLevelDao method to lookup access_level by level.
Change Log Update (00.00.126)
* 2018-08-18
+ Added Bool Flags for Access_Level models, each individual level can have it's own limits on/off
+ Updated DAO objects to match new Access Level object.
+ Some cleanup on text
Change Log Update (00.00.125)
* 2018-08-15
+ Initial Stub for Level Editor. Started from rework of Menu editor.
Change Log Update (00.00.124)
* 2018-08-12
+ Created default Build folder for Runtime execution with default menus,
prompts, and ANSI screen files.
+ Added some build scripts for Linux and OSX to update Makefiles and
build the executable without Codelite IDE. Package dependences still
need to be installed and available.
- Starting on Level Editor next.
Change Log Update (00.00.123)
* 2018-08-05
+ Sync OSX Project.
+ Caught and fixed some issues with CppCheck.
+ Sync Linux Project with latest changes, also small correction on
SqliteWrapped for error output.
+ Added Challenge Question and Answer to User Extended Field Editor.
+ Updated User Editor, when updating an existing password or challenge
answer, use the existing salt because it's used by both, so if one
changes it, the other would have issues.
Change Log Update (00.00.122)
* 2018-08-04
+ Tested User Editor, fixes small display issues and some field
key displays
Change Log Update (00.00.121)
* 2018-08-03
+ Added password update for user editor.
NOTE: need to add challenge question/answer updates too.
+ Finished Most of the Field Inputs, need to ass one for setting password
w/ encryption then saving final user record changes.
+ Completed about half of the asking input on prompts for extended users.
+ Added new Extended Prompts for User Fields. Next is to code up their
input and updating the user record.
Change Log Update (00.00.120)
* 2018-08-02
+ Updated SQLiteWrapped Code Base. Fixed Casing issues and updated some
methods with more descriptive naming.
Change Log Update (00.00.119)
* 2018-07-31
+ Updates to the extended display of colors.
+ Added Screen display prompts for user Extended Display. Next is to
code setting all fields on changes.
+ A bit more work on normalizing theme colors in the editors. Added new
getDefaultPromptRaw which will not try to parse to ESC sequences and
added extra leading and input colors, this is for displaying and
building screen with screen display prompts vs input prompts.
Change Log Update (00.00.118)
* 2018-07-29
+ Completed Display of User Extended Fields for Editing. Also worked in
theme colors, next is to update the fields on input, write a password
update method, then a final user save method.
+ Menu editor is now using more theme colors for borders and title information
and hard coded screen elements. User Editor will follow suite.
+ Added Mod_Base default box, prompt, and stat colors, for more use of
theme colors in modules.
+ Added MenuEditor the menu field text display to the prompts file along
with menu option display, and the new getDisplayPrompt to pull instead
of displaying on the fly so the screen can be build first before pushing to
the user.
+ Also Added to the User Editor to follow the same normalization once it's ready.
+ Some Cleanup on, next Update the other displays. Also lateron add MCI Codes
and option to just use ANSI Screen.
+ Update Menu Options, address configurable prompts so the screen layout or
colors can be customized.
+ Added Extended Header Field const.
+ Laying out fields for Extended User Edit Display.
+ Completed initial User Display View. When making changes need to update the
new m_users_list with changes, and also when changing to next or previous
user until quit and save or exit without saving is selected.
+ Some User Editor Corrections, updated next/previous user to keep track of
array index, this is shared with normal ALL view and filtered view, and gets
re-populated on filtering. The next and previous with now move properly along the
available users searched. Also incorrect selections will not redisplay the user
listing again until a valid selection is made.
+ Updated Boolean prompts to just ask for T/F versus typing out True and also
added header count showing current our of total records when switch between next
and previous users in the list. Next it assigning updated value to record,
then saving or ignoring changes.
Change Log Update (00.00.117)
* 2018-07-27
+ Added move to next / previous user in field editor. Changed record load
to use pre-loaded list of users order by handle, that will keep the search
results and then Iterator through that when changing users.
+ Coding up the prompt displays on field commands.
+ Completed initial prompts for User Field editing on main view to .yaml file.
Next is to create the prompts for the Extended Information View and finish
coding up the field assignments.
+ Some minor Spell checking on files currently being worked on.
Change Log Update (00.00.116)
* 2018-07-26
+ Adding User List filtering for quick searches.
+ Added new user access flags to sting method to display all user flags as letters.
+ Added more User Fields, will probably add a second screen for extended options
and keep it smaller and more optimized.
+ Fixed UnitTests for forms that rely on config class. Added new options
and some indexes needed to be incremented.
+ Moved Output of std::time_t with printable date to a methods in common_io.
+ Some cleanup, started on User Extended Display.
+ Some more tweaks and updates, reworked birthday output fir display in user editor.
Change Log Update (00.00.115)
* 2018-07-26
+ Started on User Field Editor and displaying available options to edit. Also
added new field to config file password_default_user, config file version has
been incremented, the file must be updated manually, or the file removed and
will auto re- generate on startup of the program otherwise it will result in
version mismatch and not startup.
+ Completed USER_ADD, USER_DELETE, USER_COPY with default renaming of user_name,
handle and emails.
Change Log Update (00.00.114)
* 2018-07-25
+ Building Initial User Editor Prompts and Input State Methods
+ Setup to use RealName when Handle is not used or empty.
+ User List setup with (3) Rows with ID and Handles. If handle is blank,
then use real name.
Change Log Update (00.00.113)
* 2018-07-23
+ Start on Mod User Editor.
+ Worked out kinks in paging display, if there are more menus or command module.
Change Log Update (00.00.112)
* 2018-07-21
+ Added Command View Display info Header, which gives information on toggling
the views
+ Updated OSX project with latest changes.
+ Updated and Tested Linux Project. All good.
+ Added Generic Menu View in Menu Editor, users can now make changes and
previews the screen before saving.
+ Added Change Options Prompt, was missing and using the menu change prompt
+ Tweaked the default prompt descriptions and some cleanup.
Everything is testing good.
+ Completed command field assignments.
also make next/previous command jumping hot keys, [ ] and ENTER is too annoying
when cycling options and most likely legacy obv/2 did the same.
+ Added Option ID current / total in the display for when moving from/to next
or previous option.
+ Added Option Fields and Prompts for Each field
+ Some slight refactoring for box drawing characters, Completed more state setup
for Option Field editing.
+ Create Menu Option Editor for editing individual fields, Screen layout.
Change Log Update (00.00.111)
* 2018-07-20
+ Completed Option Move.
+ Completed Option Copy, and a little extra cleanup.
+ Completed Menu Option Delete.
+ Added Menu Option Create initial.
+ Some cleanup and also update black fields for Add/Change/Edit/Delete
will return on empty input and also abort on ESC.
+ Menu is saving changes properly, change Quit to default Save and added
Exit without saving while menu changes are stored in memory.
+ Finished adding menu fields, added |PD to display to field prompts
which display the prompt description as help text when editing fields.
+ Updated Input to allow blacks and clearing fields out.
+ Various Prompt updates
+ Added checking when editing a menu to only reload if menu is not
already loaded. Then on exit we now need to add save/abort question.
+ Some small tweaks and got initial input field formatted properly with
leadoff data if Entry already exists it will populate it to edit or
modify the existing.
+ Added Menu Parsing for Prompts in the modules, mainly with |OT pipes
for general placeholders for in Editor headers for Menu Name and other data.
Change Log Update (00.00.110)
* 2018-07-19
+ Menu Field Edit now properly leads into editing Menu Options (Commands)
+ Initial Menu Field edit display is completed
+ Updated new Toggled Options Views to (3) Separate states
+ Some State Updates for the Menu to Options screens.
+ Adding Menu Option Display and Initial Editing functions and callbacks.
Change Log Update (00.00.109)
* 2018-07-18
+ Menu Editor, Fixed ordering of input Methods, Also added getLineInput for parsing
keys. Ready to start building out method and pipe sequence parsing.
Initial MenuEditor Option/Command display completed.
+ Updated Padding (Left/Right) when the string it empty, it will now padd properly.
+ Cleanup on some socket output for debugging Async processing.
+ Completed Copy Menu Source/Destination
+ MenuEditor, delete function is completed and tested.
+ Completed Menu Add Command, Creates a new default menu with a default
menu command for starting out.
+ Updated Menu editor, added Copy, and changed "change" to "edit" for input keys.
+ Added initial input method for Add/Change/Delete and checking if the
menu exists or not in the folder.
+ Added colors to menu list, need to add more baseColors for the mods for
Theme default colors lateron.
Change Log Update (00.00.108)
* 2018-07-03
+ Corrected some login issues with rework, removed Enum no longer being used
corrected the issue with the state.
Change Log Update (00.00.107)
* 2018-06-24
+ Started Initial Rework for Menu Editor
Change Log Update (00.00.106)
* 2018-06-24
+ Some cleanup after rewrite, updated all project files to the latest
+ Reworked UUID generation support when boost was removed to use new libraries.
+ Removed ARM folder. ARM was for older Pi's running raspberry on an outdated setups,
the current Linux project builds and handles both x86 and ARM builds.
- Next work on sysop interfaces
Change Log Update (00.00.105)
* 2018-03-18
+ Large re-write removing Boost Libraries for core and unit tests
Minor Boost items like system/file system are used in the menu and prompt
converter programs for ease of use.
+ Ripped out Boost ASIO for Async Socket Communication, Timers, File System
and Locale support. This was a large rewrite to get things working on OSX better.
+ Replace ASIO with SDL2_Net library used in EtherTerm, This removes SSL socket support
which wasn't used at the time, but also adding libssh in the process for SSH
server connections to be hooked up at a later date.
+ Created an IO_Service to mimic ASIO to use SDL2_Net Sockets and connections in
an asynchronous way to use the existing code base.
+ Created Deadline Timers for asynchronous waits with callbacks to mimic Boost's
deadline timers to keep existing functionality.
+ Wrote some new directory methods that are cross-platform to replace the use
of Boost File system.
+ Added UTF-CPP project to replace Boost Local for parsing and supporting utf-8
character data and strings. It's not as robust with translations but for now
should handle input and parsing strings correctly.
+ Create an OSX Codelite program for building the system, tested on High Sierra.
+ Switched from Boost Regex to std Regex in c++11.
+ Fixed some issues with Regex expressions used when tested in clang vs gcc
also added Regex Expression Exception catching.
Change Log Update (00.00.104)
* 2018-02-05
+ SqliteWrapped, update making file lib naming so if users run this manually
from the command line it matches the cases the project and xrm-server expect.
Also fixed for Jenkins build processing so it doesn't have to rename it.
Change Log Update (00.00.103)
* 2018-02-05
+ Corrected issues with Linux (ARM) Builder and G++7 Compiler in Arch Linux.
+ Hooked in Jenkins build processing, on-demand builds are setup now, next will
hooking up commits and pull-requests.
Change Log Update (00.00.102)
* 2017-08-20
+ Updated Classes with explicit for empty and single variable constructors
+ Also added override keyword for all virtual class implementations
+ (Win32) added missing DAO classes for unit test linkage.
Change Log Update (00.00.101)
* 2017-06-18
+ Working on FormManager and ModSysConfig code. Initial code to parse
ANSI template sizes and determined how many options will fit per page
is done. Now working on code to parse and display the Templates
With the menu command / Form Options in lightbar format.
Change Log Update (00.00.100)
* 2017-06-07
+ Testing Arch Linux Port of ARM. Found some issues with OpenSSL
Version 1.01 has changed it's API. Corrections are now added
to detect and handle newer and older API Calls for SHA1
Which can probably be removed later on also.. Was testing a fix
for Enthral as well.
- Other issues with Arch for ARM is GCC version 7, lots of new
and crazy warnings, needs to look into this.
- Note, the previous ARM setup was more for any Linux using GCC (Debian) Jessie
with version 4.9 and lower. the ARM folder will be renamed lateron for
Compatibility of older distro's for now at least.
- Note, Codelite will build and compile on Arch ARM which has the latest
libs and features.. One plus, other is that doc's suck and you have to
keep recompiling and adding missing libs as you go for just about everything
in Arch.. haha.
Change Log Update (00.00.99)
* 2017-05-28
+ Several Updates to compile and run on ARM platform - testing (Raspberry Pi2).
+ Updated Threads, downgraded std::thread to use pthread for Posix for gcc 4.9.1
compatibility ARM. GCC < 5.1 doesn't appear to work correctly, known issue.
+ Also changed from std::time methods for std::get_date and std::put_date, also
not compatible with GCC < 5.1 for ARM compatibility. Switched to Boost::Date_Time
+ Corrected Shutdown issues with menu logoff command trying to execute or cycle
stacked commands once the sessions has closed. The system will not exit the menu
command look when a logoff command is executed.
+ Fix for UTF-8 output encoding, optimized byte parsing, only noticeable on ARM.
+ Created a new ARM folder for standalone make file.
+ Added README in ARM folder with build instructions and notes.
+ Created Makefile xrm-unittest-arm in Unit Test Folder for building and running
all unit tests.
Change Log Update (00.00.98)
* 2017-05-27
+ Bugfix Database Global Variable, new DBStartUp Class needs to set this
and not use local variable.
Change Log Update (00.00.97)
* 2017-05-20
+ Create ModSysConfig to use new FormManager. Still work in progress to use
multi-page forms
+ Created DBStartup class that will handle creating and check all tables
moved out of main to keep it cleaner.
+ Added AccessLevelDao, with each level having it's own limits for users
Still need to implement user login pulling limits from the access level assigned
+ LastCallers will use SessionStats for pulling last x successful logins
+ Cleanup DAO, removed unused includes.
+ Cleaned Up Grouping Model, don't mix file and message conferences.
+ Synced All Updates with Linux Platform.
Change Log Update (00.00.96)
* 2017-05-12
+ Completed Refactoring of All Dao object to now use the BaseDao for concurrency.
+ Created Dao Integration Tests for Initial DAO Refactors with mock databases
and clean up.
+ Synced all Linux Project Files
- Eventually complete all Integration Tests.
Change Log Update (00.00.95)
* 2017-05-07
+ Create new BaseDao Object for Standard SQL Database base calls.
+ Updated ConferenceDao to inherit BaseDao
+ Updated OnelinerDao to inherit BaseDao
+ Created Integration UnitTests for Calling ConferenceDao testing all BaseDao
Methods to make sure everything is solid.
+ Added new getAllRecordsCount() to baseDao
- Working on refactoring the remaining DAO objects to inherit from BaseDao
Change Log Update (00.00.94)
* 2017-05-05
+ Removed AccessLevel yaml file, this will be redone in Database with DAO
+ Added new Protocol yaml file for File Transfer Protocol Configuration
Change Log Update (00.00.93)
* 2017-05-05
+ Completed Network DAO (FidoNet and IP Network Address Mappings)
+ Completed Oneliners DAO
- Next:
- Look at last callers, pull from sessions stats, or make standalone table.
- Convert AccessLevel yaml to database table.
Change Log Update (00.00.92)
* 2017-05-04
+ Completed Grouping DAO (Groups Conferences and Message/File Areas)
+ Completed Message Area DAO
- Network DAO for Fido / IP Address for Message Areas and Networks
Change Log Update (00.00.91)
* 2017-05-04
+ Completed FileArea DAO
+ Added new model files for Conference Grouping
- Create more Dao objects for reading/writing the Models to database.
Change Log Update (00.00.90)
* 2017-05-03
+ Added new model files for File Areas, Message Areas, Network Addresses
and BBS Listing.
- Create Dao objects for reading/writing the database for the new models.
Change Log Update (00.00.89)
* 2017-05-03
+ More work on the FormManager and System Configuration Form along with
Implementation. Still working on the best way to implement so playing
with different ideas right now.
+ Create Conference Model, and DAO for database read/writes.
- Will be adding Message and File Area models and DAO's next.
Change Log Update (00.00.88)
* 2017-05-02
+ Updates to Process, Added Separate UpdateState for Process Handling
If were inside a process, skip ESC sequence testing, just pass through
all data as is to the process.
+ Cleanup processes on next look, make sure if a process is not running to
pop it off the stack for cleanup.
Change Log Update (00.00.87)
* 2017-05-02
+ External Processes (Windows / Posix)
Created Classes and methods for executing external processes, doors, scripts
Tried Boost Process but didn't work as needed and ASIO calls were not working
implemented initial platform specific processes execution.
- Need to implement screen buffer save / restore on return from external process
- Add Flags to clear the screen on external processes execution
- Add checks if user hangs up, process will also be terminated (testing needed)
- Look at implementing either Python or V8 Java Script engine for scripting.
Change Log Update (00.00.86)
* 2017-04-29
+ Windows Project Updates
- Updated Boost from 55 to latest 64, compiled with ICU and Boost Python now.
- Cleaned up all Project Files, removed unused libs and include folders.
- Cleared new Boost Warning in Config.hpp model for Boost UUID generation.
+ Resynced Linux Projects
- Researching Door/Script Server Now for externals.
Change Log Update (00.00.85)
* 2017-04-17
+ Completed Initial work on SessionStats objects and Database DAO calls.
+ Added Startup creation of stats on connection.
+ Fixed minor compiler warnings left over on signed vs unsigned comparisons and
Unused Database variables.
+ Synced Linux projects and Database checks on both platforms Windows and Linux.
+ Updated Users Records, removed fields not needed for individual users,
and moved some fields to SessionStats which is better for tracking statistics.
Change Log Update (00.00.84)
* 2017-04-10
+ Completed more work on Unit Tests and Configuration Form
+ Remodeled some of the folder structure, split data and model into (2) sets app and sys
Sys for Core System Data and Models, and App for Application Data and Models ie..
LastCallers, OneLiners, etc..
+ Sync Linux workspaces and project with the new structure. All Unit Tests are passing.
- Moving from Form Work right now to getting some applications data doing and logon sequence.
Going to work on getting more Tables setup and Data Access Objects going now.
Change Log Update (00.00.83)
* 2017-04-08
+ Some slight refactoring to ACS String Validations, Call a single method instead of doing it manually
+ Started Unit Test for FormSystemConfiguration. Unit Tests help test and map out the best way to
write the dynamic menu form options. Using YAML for serialization and mapping class fields.
Change Log Update (00.00.82)
* 2017-04-08
+ Added Menu Option ACS Level/Flag Checking, Any options not available are removed from display.
+ Added Menu ACS Level/Flag with Menu Pre-Load, if menu is not accessible, the user stays at the current.
Some more testing on this is needed along with check if it should jump to fallback.
Change Log Update (00.00.81)
* 2017-04-07
+ Added iFilePoints to User Table and Model
+ Added iMessageLevel to User Table and Model
+ Config, changed kilobyte to megabyte for more modern limits and tracking.
+ Incremented config version also.
+ Re sync Linux Project with Latest Updates. Tested good.
+ Added pull from config file for starting menu once the user has been authorized.
+ Added check for User AutoValidation on Signup, If so, the system will upgrade
from unauthorized level 10 (new user), to 20 default level set in config file.
Otherwise it should sit at level 10 until the sysop validates the user.
+ Added new AccessLevels Models and DAO for storing security levels with descriptions
NOTE: Add Defaults for each level, instead of single set from config, each level
can have it's own customized defaults.
- Next will be implementing Access and Security checks in menus and options to enforce the rules.
+ Setting up initial Configuration Form
- Testing Yaml for Class Reflection on Form Manager
- Updated Menu And Options to Hold Pass through Form Values still WIP
Change Log Update (00.00.80)
* 2017-03-31
+ Start on FormManager Code, Created first FormSystemConfiguration with FormBase class
Further work will start on layout of building custom menu options, with input and yes/no bars
For Configuration interfaces.
Change Log Update (00.00.79)
* 2017-03-30
+ Updated Menu Version to 1.0.1
Change Menu and Option Groups to ACS_String
+ Complete Initial Access Condition System handling Security levels
and (2) Control sets of AR flags with unit tests
+ Updated User Records and Database Schema for Control Flags, Should have been
Integer for Bit values instead of a string
+ Fixed issue with Sysop menu and the pre gosysop menu that is suppose to ask
for sysop password. The prompt is not yet setup for input, bit the menu
will no longer get stuck when trying to return to the starting menu
+ Fixed issue with menu prompts, when the menu was changing the system was
executing the clean input (used for when menu command return without execution
the system will clear the input text on the screen. Added a check if the menu
changes to no longer attempt to clear input text since everything is re-drawn
this will no longer overwrite the menu prompt.
+ Tested Changes in Linux, Updated Linux project and refreshed build folder.
+ Fixed and updates were done for Theme Colors and Users Colors for Yes/No Bars
Make sure to remove the xrm-config.yaml and users.sqlite3 database and let the
system recreate and re-apply as a new user for correct colors on lightbars.
Change Log Update (00.00.78)
* 2017-03-15
+ Corrected Issues with YES/NO Lightbar padding on pipe and control color codes.
The system now parses these to ANSI ESC Sequences prior to screen drawing
so they are no longer pushed forward.
+ Also Added in user's theme colors for yes/no prompts.
+ Newuser signup now properly assigns the logged in user to the session.
+ Corrected Theme color being pull from config instead of signed on users record.
+ Newuser creation now sets user defaults pulling from default configuration colors.
+ Default colors are now pulled from configuration, and set to the initial instantiation
of the user record using default system theme colors until the user logs in and the
system takes over using the user's default theme colors.
+ Corrected final issue with stacked commands and menu changes. If the menu changes
while processing stacked commands, we need to then exist the loop gracefully and
no longer attempt to execute or loop commands that no longer exist.
Change Log Update (00.00.77)
* 2017-03-12
+ Finished Initial Update for Single Lightbar Menu prompts.
+ Corrected some issues with Stacked Commands on these special case menus.
+ Removed CRLF after ENTER on lightbars menus is used, commands not executed
should not push the screen and keep the same display.
+ Updated Login prompts, this mean the build folder will be updated and/or
the login.yaml should be removed and regenerated with new defaults.
+ Corrected issues in AnsiProcessor with last line calculations.
Updates last line used detection methods so the single line prompts
will now display properly under the menu prompt.
- WIP have to look at the quit menu option or fallback in the sysop menu,
Quit is not returning to the menu that called it.
Change Log Update (00.00.76)
* 2017-03-06 / 2017-03-09
+ Fixed Several Linux display issues due to lapse in testing in this environment
once functionally was added.
+ Fixed Issues with Generic Menu Template Display, Top and Mid. Some old DOS
system save clear screens with just ESC2J so had to add a ESC[1;1H to move
to cursor to the top of the screen.
+ Also Fix MID ansi issues where some telnet clients will wrap ESC[C right
cursor pushes. However, the Linux terminal will wait at the end of the line
until a displayable character is found. This is not fixed to check in between
spacing sequences for ANSI optimizations.
+ Also refactored and some code cleanup. Some generic some was added and might
be moved to the common libraries lateron if it's needed by future systems.
+ Tested and corrected issues with yaml message prompts. Instead of letting
YAML write the output which force converts to UTF-8. We now write out the
yaml format manually when it comes to menu prompts.. All text prompts have %DF
for displaying files and don't need too much high ASCII. However if the need arises,
can work out some MCI codes where the file will write out yaml and MCI codes will
be replaces with CP437 sequences. Add to the TODO list!
+ Fixes For Bottom of Used Screen Detection, Thanks to Putty and 24 Lines
Was able to test and fix a detection issue and now new prompts will
properly show under the menu prompt on any screen length.
+ Created New MenuPromptConvert project for converting legacy Menu Prompt Data to
individual .yaml files
+ Create Model and DAO's for new Menu Prompt Layouts and the new code is plugged in
and working nicely
- Update MenuPrompt out of yaml to save as raw text to keep CP437 encoding. YAML
forces UTF-8 output which will corrupt the CP437 characters saved.
+ Also added random menu prompts when no prompt is selected as an option.
+ Updated User Record / Database table, changing menu prompt from an int index to
the name of the file for easier lookup and selection.
Change Log Update (00.00.75)
* 2017-02-06
+ Updated Build (Data Files) Archive which is linked on the Wiki.
Fixed some display issues with default file menu settings, Some stacked
commands should have been marked hidden.
+ Corrected Issues with Starting and Fallback menus, Now able to pass through
From Message / Scan, and Quick Back to Main
From File / Scan, and Quick Back to Main without issues.
+ Updated Menu Templates, no longer forcing a New line between mid and end screens
The end template should add a CR is one is desired.
- Single line Bar Menu's are will a WIP.
Change Log Update (00.00.74)
* 2017-01-05
+ Quick Fix, on %%DF Filename display in text prompts.
+ Also added .ASC file load if .ANS is not found.
Change Log Update (00.00.73)
* 2017-01-04
+ mod prompts (Signup, Login, Pre-Login) setting up default prompt theme colors
will also carry over to menu's to match system/user preference colors.
+ Added max screen rows used, so we can pull the lines drawn on the screen
then display the prompt by default under the last items draw no matter where the cursor is.
+ Large refactoring of all Modules (Signup, Login, Pre-Login), go rid of some code smells
and reorganized methods to have better naming to cut down on comments needed.
+ Reformatted all module text prompts to use default theme colors, pipe colors can stuff work
but now everything is customizable by default on system color settings. More on this to come.
+ Fixed lightbar drawing issues on pull down menu's.. most noticeable was the matrix menu.
- Mocked up the yes/no light bars, still a WIP
- Need to switch input to hotkey for N Menu functions.
- Started working on text prompt formatting for unformatted strings, default coloring for
strings not using pipe colors to add some configurable default feel to the system
- Added |PD in text prompts, this will display the prompt description (XRM Special)
Users can add extra notes or instructions in the description of the prompt and display it along
with the text.
Change Log Update (00.00.72)
* 2016-12-21
+ Issues with Sysop menu corrected, it was actually a C++ issue looping vectors.
Correct other container looks even through they weren't showing issues
Better Safe then Sorry!
+ Implemented more menu switching logic, for commands that change and skip execution
of FIRSTCMD keys.
+ Started on Special Menu Action Prompts, menu's that display a special string with control
characters and get prompt with lightbars yes/no, or other user input. this will
take some time to complete, as there is a lot of logic to all of the options.
+ Add masking for output on login password and the newuser passwords
+ Also started implementing theme color logic for prompt strings
parsing the following control sequences for system or user selected colors.
^R - Regular Color ^S - Status Color
^P - Prompt Color ^E - Input Color
^V - Inverse Color ^X - Box Color
^M - Goes down a line
- Main focus right now is on menu options and switching between menu and getting all
custom logic going.
Change Log Update (00.00.71)
* 2016-12-19
+ Started Working -/ and -\ Menu Loading commands for switching menu's.
Initial tests are working good. Sysop menu didn't want to load but all
others appear to be working properly. Will look into the Sysop menu!
+ Corrected some overdraw issues from the screen buffer for MID ANSI's.
'\0' Null characters or not plotted characters in the buffer were defaulting
to spaces. When the MID ansi codes are drawn out these spaces would then over
write the left and ride borders of the ANSI templates. Instead i not loop
and check for a sequence of \0 characters, then push out ESC[C to move
the cursor forward instead of overwriting. ANSI menu screens with templates
are now displaying properly.
+ Menu Option Ordering, YAML does not guarantee that Sequences are loaded in the
same order they are present in the file. Updated the Menu DAO (Data Access Object)
to now sort by the index field assigned to all menu options to keep the proper
ordering.
Change Log Update (00.00.70)
* 2016-12-18
+ Started Shelling Menu Option Commands
Started On Control Commands which handles allot of the core menu
features like switching menu's, setting fallbacks, and displaying strings.
+ Incremented Config File Version to 1.0.1, added new fields
for invalid_password_attempts, and invalid_newuser_password_attempts
to avoid endless loops and when to kick out on invalid attempts.
Change Log Update (00.00.69)
* 2016-12-18
+ Re-synced Linux Workspace
+ Corrected and Updated Unit Tests for Field Input
Change Log Update (00.00.68)
* 2016-12-18
+ Completed Function Mapping for All Menu Command Functions.
Used std::map to easily use a lookup by the first command key value.
allot cleaner then a switch statement.
Change Log Update (00.00.67)
* 2016-12-17
+ Started Menu Commands Controls for Functions we need to build out
Still a work in progress, might go with dynamic function array
instead of long switch statements. But that's just fancy
and doesn't really do much.
Change Log Update (00.00.66)
* 2016-12-17
+ Added MCI Code parsing for Menu Prompt. Pulling the Menu Prompt
Field for Menu Name, Added Time Left, and Time Now
Which are not implemented since were not keeping track of time
limits yet.
+ Also update previous field input length limits to match legacy
|FL
* 2016-12-16
+ Some Menu System/Base Code Refactoring, Variable Name Cleanup
Working to keep better design and naming principals
Change Log Update (00.00.65)
* 2016-12-14
+ Fixes for MID Ansi Template Processing, Now uses internal
Ansi Processor for parsing implied ESC Sequences ESC[;20H
where the missing sequence is considered the current row
instead of default row 1. We draw the screen internally
then push out the processed screen for correct drawing.
Change Log Update (00.00.64)
* 2016-11-30
+ Menu Option Cleanup and split out to separate methods.
+ Split up Menu Input into Pull down and Standard Input
Pull down Accepts Hotkey's, while Standard is line mode.
+ Added new code to handle stacked commands when using
ENTER to make lightbar selection
+ Split Regex Expressions into constants that can be
passed in to the Code Map for different screens.
Makes it easier to setup different screens and their
custom MCI code replacements per interface.
+ Completed Generic Menu Template processing. When the
Menu HelpId is empty, or no ansi exist the Generic
Template is used for Top, Mid, and Bottom. All
valid Menu options are then populated. Drawing the
Menu ANSI Screen. This is also used for the Menu
Library's and Selectable Themes across the system.
+ Added some Missing Include for Boost Lexical Cast.
+ Corrected missed parsing on Pull down Menu Hotkey's.
- Initial Menu Prompts are pulling and are displayed.
Need to add MCI parsing for data and position.
Also need to debug the baseProcessAndDeliver for Menu screens.
- Also need to setup user selection for available menu prompts.
Change Log Update (00.00.63)
* 2016-11-29
+ Split Standard menu input, (InputField) with wildcards for menu commands
And Lightbars. For Instance Matrix (Lightbar) vs Main (Standard)
Pull down menu are hot keys CTRL keys for movement and automatically
Hotkey interpretation while normal menu are full line input
with the ability to set T* then typing t, transfer and any test starting
with T will execute the command.
+ Corrections to Database Layout, added COLLATE NOCASE for Handle, Name, and Email Fields
Tested with standard and Unicode input.
- WIP generic menu templates top, mid, bottom.
Change Log Update (00.00.62)
* 2016-11-21
+ Added some initial config flag validation to catch any possible
conflicts on manual configuration.
+ Sign_up and Login mods, move encryption out of class instance
and just call it when used.
+ Complete Login sequence, Added user lookup by Id, Handle, RealName, and Email.
+ Turned off User Index on Table, can't have unique if values are turned off
fe.. Handle, RealName, Email, if any of these are not used they are blank,
and blank can't be unique.
+ Add check for disconnect on invalid attempts. Also add to config file.
+ Added STDIO error output for database for debugging, attached &m_database_log
in session data.
+ Corrections on queries, added c_str() to table name variables, was missed.
- WIP, Successful login marks authorized, then moves to main menu.
Also need to add invalid attempt, kick back to matrix or logoff.
Change Log Update (00.00.61)
* 2016-11-20
+ MenuBase has been converted over to using the new .yaml menu files.
Only tested matrix.yaml at the moment, still more code need to be added
for jumping to other menus, and then implementing menu features to come.
+ Update getProgramPath to pass executable name. So multiple utilities
sharing the same object will have the correct filename removed from the