CGUL
From PDP/Grid Wiki
Jump to navigationJump to searchCGUL: The C Grand Unified Library
Purpose
The CGUL's purpose is to centralize library code used by various security middleware components.
Features
- Access to Unix privilege information
- Networking
- File handling
- Logging
- SSL wrappers
C code conventions
- Code should be portable across POSIX-compliant platforms
- Header files should be regarded as documentation
- Prototypes in header files should contain variable names for clarity
- Header files should not contain memory allocation or initializers
- The use of global variables is highly discouraged
- Code should be commented using Doxygen syntax (Cheat sheet)
- Logging should only be done through CGUL logging function
- The use of stdout or stderr directly is highly discouraged - stderr may only be accessed through the logging function
- Comments should describe whether use of a standard library function is thread-safe or not
- Comments should describe relevant or non-obvious side effects of a standard library function
- Thread-safe functions should have their names suffixed with '_r'
- Internal components of the CGUL should not depend on each other (except maybe logging)
Unresolved issues
Code authorship attribution
Next to including a general AUTHORS file, it might be possible to generate a list of specific authors per file using 'svn blame' information. This can be catted into the source code files in a make task.
SVN Activity
View into SVN grid-mw-security/cgul