Kevin Day [Sun, 2 Jun 2024 23:51:58 +0000 (18:51 -0500)]
Progress: Continue migrating the project, notably refactoring out controller_global_t.
A lot of the changes made it possible to remove th controller_global_t.
Restructure the code to do this.
Most of the compile errors are fixed.
I still need to go over the logic and fix things.
I still need to copy over some functions.
I still need to move the print functions around.
I still need to do runtime tests once all of the above is completed.
Kevin Day [Thu, 23 May 2024 04:41:32 +0000 (23:41 -0500)]
Update: Remove the ++first and ++last parameters and relating logic.
I have used this for a while and have decided these are not worth the effort.
The addition is very nice but the additional code and logic is just extra maintenance and complexity for very little gain.
Kevin Day [Thu, 9 May 2024 01:51:11 +0000 (20:51 -0500)]
Security: Potential buffer overflow on 0 length array.
The length_name_item variable can potentially be zero.
The assignment of "name_item[length_name_item] = 0;" will then result in an assignment on a 0 length array.
Kevin Day [Thu, 11 Apr 2024 03:46:56 +0000 (22:46 -0500)]
Progress: Continue migrating the project.
Start brining in the enumerations and types.
There is still a lot of inconsistency in the type delete functions to deal with.
Many of the "delete" functions may end up being replaced with a "resize" method.
This removes the "--init" parameter.
I figure I might as well simplify the design a little and have the init and controller be more separate.
Kevin Day [Tue, 9 Apr 2024 01:37:34 +0000 (20:37 -0500)]
Update: Better utilize functionality of C for extern types.
I am creating a string pointer and passing it through a structure to dynamically pass different progam names for each program.
This is fine for many languages that are not C/C++.
For C/C++, this can be done in a cleaner and more efficient way.
The extern type can be declared in the main project and use that.
Then, the final binary is the only case where the actual implementation of the extern variable must exist.
That means each program (init and controller) will define their own program name string.
No extra memory in the structure needs to be used.
This is cleaner, simpler, and more maintainable.
Kevin Day [Thu, 4 Apr 2024 03:20:54 +0000 (22:20 -0500)]
Progress: Begin migrating the project, doing some initial preparations.
Tweak the fakefile structure.
Remove the "as_init" fakefile mode.
Use library instead of object so that both controller and init may use the same library.
I may want to create a custon "init only" mode where init uses libinit.so rather than libcontroller.so.
Have the build settings pass "-D_controller_as_init_" directly for the init fakefile.
Add the child process exit code.
I may end up changing this again, but I wanted to start off very consistent with other projects design.
Finish the help printing process.
The program name is moved into the specific programs.
Add missing control group header file include.
Fix a mistake whee the main thread signal function is calling itself rather than the main signal handler.
This bad behavior results in a segfault.
Kevin Day [Thu, 4 Apr 2024 00:33:18 +0000 (19:33 -0500)]
Update: Remove bootstrap script.
This doesn't need to exist here now that this is in a separate project.
The bootstrap script is also very limited in design and the Controller project uses a lot more advanced functionality.