- 14 Feb, 2020 5 commits
-
-
Ondřej Surý authored
-
Ondřej Surý authored
-
Ondřej Surý authored
The AlwaysBreakAfterReturnType: TopLevelDefinitions was unwrapping the declarations of the functions in the header files.
-
Ondřej Surý authored
-
Ondřej Surý authored
adjust clang-format options to get closer to ISC style See merge request !3061
-
- 13 Feb, 2020 6 commits
-
-
Evan Hunt authored
-
Evan Hunt authored
- add util/cformat.sh, which runs clang-format on all C files with the default .clang-format, and on all header files with a slightly modified version. - use correct bracing after multi-line control statements - stop aligning variable declarations to avoid problems with pointer alignment, but retain aligned declarations in header files so that struct definitions look cleaner. - static function prototypes in C files can skip the line break after the return type, but function prototypes in header files still have the line break. - don't break-before-brace in function definitions. ISC style calls for braces on the same line when function parameters fit on a single line, and a line break if they don't, but clang-format doesn't yet support that distinction. one-line function definitions are about four times more common than multi-line, so let's use the option that deviates less.
-
Ondřej Surý authored
Add curly braces using uncrustify and then reformat with clang-format back Closes #46 See merge request !3057
-
Ondřej Surý authored
The command used to reformat the files in this commit was: ./util/run-clang-tidy \ -clang-tidy-binary clang-tidy-11 -clang-apply-replacements-binary clang-apply-replacements-11 \ -checks=-*,readability-braces-around-statements \ -j 9 \ -fix \ -format \ -style=file \ -quiet clang-format -i --style=format $(git ls-files '*.c' '*.h') uncrustify -c .uncrustify.cfg --replace --no-backup $(git ls-files '*.c' '*.h') clang-format -i --style=format $(git ls-files '*.c' '*.h')
-
Ondřej Surý authored
-
Ondřej Surý authored
Both clang-tidy and uncrustify chokes on statement like this: for (...) if (...) break; This commit uses a very simple semantic patch (below) to add braces around such statements. Semantic patch used: @@ statement S; expression E; @@ while (...) - if (E) S + { if (E) { S } } @@ statement S; expression E; @@ for (...;...;...) - if (E) S + { if (E) { S } } @@ statement S; expression E; @@ if (...) - if (E) S + { if (E) { S } }
-
- 12 Feb, 2020 16 commits
-
-
Michal Nowak authored
Run Coverity Scan only when specific variables are present See merge request !3050
-
Michal Nowak authored
Submissions to Coverity Scan should be limited to those originated from release branches and only from a specific schedule which holds COVERITY_SCAN_PROJECT_NAME and COVERITY_SCAN_TOKEN variables.
-
Ondřej Surý authored
Reformat source code with clang-format Closes #46 See merge request !2156
-
Ondřej Surý authored
-
Ondřej Surý authored
-
Ondřej Surý authored
-
Ondřej Surý authored
-
Michał Kępień authored
Minor README tweaks See merge request !3036
-
Michał Kępień authored
-
Mark Andrews authored
Merge branch '1616-autosign-not-waiting-long-enough-for-zone-to-be-signed-v9_11-and-maybe-others-master' into 'master' wait for apex NSEC3 to be generated Closes #1616 See merge request !3043
-
Mark Andrews authored
(cherry picked from commit c99ad5c8)
-
Michal Nowak authored
Add Coverity Scan to CI See merge request !2979
-
Michal Nowak authored
This job requires two CI variables to be set: - COVERITY_SCAN_PROJECT_NAME: project name, which is associated with the BIND branch for which this job is executed, e.g. "bind-master", - COVERITY_SCAN_TOKEN: project token.
-
Mark Andrews authored
Resolve "rpz system test failed because protoype responses timed out." Closes #1602 See merge request !3040
-
Mark Andrews authored
-
Witold Krecicki authored
Don't limit the size of uvreq/nmhandle pool artificially. See merge request !3031
-
- 11 Feb, 2020 6 commits
-
-
Stephen Morris authored
-
Witold Krecicki authored
There was a hard limit set on number of uvreq and nmhandles that can be allocated by a pool, but we don't handle a situation where we can't get an uvreq. Don't limit the number at all, let the OS deal with it.
-
Ondřej Surý authored
Convert all atomic operations in isc_rwlock to release-acquire memory ordering Closes #1428 See merge request !2985
-
Ondřej Surý authored
The memory ordering in the rwlock was all wrong, I am copying excerpts from the https://en.cppreference.com/w/c/atomic/memory_order#Relaxed_ordering for the convenience of the reader: Relaxed ordering Atomic operations tagged memory_order_relaxed are not synchronization operations; they do not impose an order among concurrent memory accesses. They only guarantee atomicity and modification order consistency. Release-Acquire ordering If an atomic store in thread A is tagged memory_order_release and an atomic load in thread B from the same variable is tagged memory_order_acquire, all memory writes (non-atomic and relaxed atomic) that happened-before the atomic store from the point of view of thread A, become visible side-effects in thread B. That is, once the atomic load is completed, thread B is guaranteed to see everything thread A wrote to memory. The synchronization is established only between the threads releasing and acquiring the same atomic variable. Other threads can see different order of memory accesses than either or both of the synchronized threads. Which basically means that we had no or weak synchronization between threads using the same variables in the rwlock structure. There should not be a significant performance drop because the critical sections were already protected by: while(1) { if (relaxed_atomic_operation) { break; } LOCK(lock); if (!relaxed_atomic_operation) { WAIT(sem, lock); } UNLOCK(lock)l } I would add one more thing to "Don't do your own crypto, folks.": - Also don't do your own locking, folks.
-
Evan Hunt authored
-
- 10 Feb, 2020 6 commits
-
-
Ondřej Surý authored
Cleanup support for specifying PKCS#11 engine as part of the label See merge request !2943
-
Ondřej Surý authored
-
Ondřej Surý authored
The code for specifying OpenSSL PKCS#11 engine as part of the label (e.g. -l "pkcs11:token=..." instead of -E pkcs11 -l "token=...") was non-functional. This commit just cleans the related code.
-
Ondřej Surý authored
NULL the destroyed pointer early See merge request !3026
-
Ondřej Surý authored
Also disable the semantic patch as the code needs tweaks here and there because some destroy functions might not destroy the object and return early if the object is still in use.
-
Ondřej Surý authored
Our destroy functions usually look like this: void foo_destroy(foo_t **foop) { foo_t foo = *foop; ...destroy the contents of foo... *foop = NULL; } nulling the pointer should be done as soon as possible which is not always the case. This commit adds simple semantic patch that changes the example function to: void foo_destroy(foo_t **foop) { foo_t foo = *foop; *foop = NULL; ...destroy the contents of foo... }
-
- 09 Feb, 2020 1 commit
-