- 02 Dec, 2020 1 commit
-
-
Dridi Boukelmoune authored
-
- 30 Nov, 2020 4 commits
-
-
Nils Goroll authored
... unless we f*up, which is the sole purpose of its existence
-
Nils Goroll authored
-
Nils Goroll authored
this needs to live within the exclusive circle of cache_vcl.h includers, so I went for cache_vrt_vcl.c just because of the name.
-
Nils Goroll authored
This is the refactoring we agreed on to enable an alternative implementation of #3454. This PR does not yet introduce the copy callback needed to add the functionality suggested in #3454. We replace the .free pointer of struct vmod_priv with a pointer to a methods struct with callbacks. As of this commit, it only contains the .free callback renamed to .fini. The purpose of the refactoring is to allow addition of more callbacks later. The new struct vmod_priv_methods also contains a .type member pointing to a string to contain an arbitrary description of the type of data any priv holds which uses these methods. Implementation: relevant changes are in cache_vrt_priv.c and vrt.h, other changes are to the documentation and bundled vmods. The implementation is a simple refactoring for indirection of the call to the .fini callback via the methods structure.
-
- 27 Nov, 2020 2 commits
-
-
Nils Goroll authored
This change also exposed #3385 See #3470 for a suggestion how to get out of this This reverts commit 5cbb3586.
-
Nils Goroll authored
-
- 25 Nov, 2020 4 commits
-
-
Dridi Boukelmoune authored
Flexelint complains that this truncation is suspicious, which is fair. The pdiff() function allows for a more expressive, and hopefully less suspicious alternative with a bit of hardening in the process.
-
Dridi Boukelmoune authored
This way it can be used almost anywhere in the code base and out of tree, not just in the cache process. The function was slightly polished after prior discussions with phk and slink.
-
Federico G. Schwindt authored
stdbool.h gets pulled in indirectly, which defines bool to _Bool. Since we are not using the bool type here, just undefine it.
-
ThijsFeryn authored
-
- 24 Nov, 2020 5 commits
-
-
Dridi Boukelmoune authored
Better diff with the --word-diff --ignore-all-space options.
-
Dridi Boukelmoune authored
Having now the guarantee that VCL sources are always null-terminated we can use standard string.h functions to detect long strings. We can also generalize vcc_decstr() to work with all kinds of strings. Instead of duplicating the code in 3 locations with slight variations, encode the specificities of each type of string into a struct and have one location to parse them. Bonus deduplication, inline C parsing is identical. This is loosely inspired by vcl_fixed_token() and we could further reduce the size of the loop in vcc_Lexer() by extracting more logic.
-
Dridi Boukelmoune authored
And with that we know for sure that we always have null-terminated VCL sources.
-
Andrew Wiik authored
-
Andrew Wiik authored
-
- 23 Nov, 2020 6 commits
-
-
Nils Goroll authored
For a first byte timeout on a new connection, we emit FetchError: first byte timeout For a first byte timeout being reached on a recycled connection, we should keep the error message similar. Ref eecd409d
-
Nils Goroll authored
Dridi, phk and myself all stared at this piece of code and see no issue: res has been calloc'ed l elements. For any res[i] and res[j] access, i and j are less than l, respectively. l is not increased after the initial count of elements in s. Ref 9947307d Flexelint error: _ res[i] = vp; mgt/mgt_vcl.c 749 Warning 661: Possible access of out-of-bounds pointer (1 beyond end of data) by operator '[' [Reference: file mgt/mgt_vcl.c: lines 719, 722, 727, 744, 747, 749] mgt/mgt_vcl.c 719 Info 831: Reference cited in prior message mgt/mgt_vcl.c 722 Info 831: Reference cited in prior message mgt/mgt_vcl.c 727 Info 831: Reference cited in prior message mgt/mgt_vcl.c 744 Info 831: Reference cited in prior message mgt/mgt_vcl.c 747 Info 831: Reference cited in prior message mgt/mgt_vcl.c 749 Info 831: Reference cited in prior message
-
Dridi Boukelmoune authored
The plain text output is a suitable input for tsort(1), initially meant to find the correct discard order, I realized that it would be more reliable to let vcl.discard figure that one out. It wouldn't really work in my initial scenario: varnishadm vcl.deps | <filter some VCLs out> | tsort | xargs -n 1 varnishadm vcl.discard The filtering part only worked for direct dependencies but we can have two levels with return(vcl). I'm keeping this command only for setup analysis, the output can easily be turned into a graphviz dot file for example.
-
Dridi Boukelmoune authored
To put it simply, let's take a simple CLI script: vcl.discard vcl1 vcl.discard vcl2 [...] vcl.discard vclX We can now achieve the same with a single command: vcl.discard vcl1 vcl2 ... vclX But there is slighty more to it, because vcl.discard operates on both VCLs and VCL labels, and dependencies can exist between both. So in addition to operate on multiple VCLs it also does so in the correct order.
-
Dridi Boukelmoune authored
This is going to be useful once vcl.discard can take multiple VCL names at once.
-
Dridi Boukelmoune authored
The first operation consists in checking the ability to discard the requested VCL, the second part effectively performs the VCL deletion.
-
- 20 Nov, 2020 3 commits
-
-
Reza Naghibi authored
-
Nils Goroll authored
closes #3379
-
Nils Goroll authored
avoiding local variables and VPI_BundleStrands() Fixes #3392
-
- 18 Nov, 2020 13 commits
-
-
Nils Goroll authored
-
Nils Goroll authored
I do not understand the global -esym does not work, but the warning is definitely bogus, the (unisgned)-1 argument is intentional and a documented feature.
-
Nils Goroll authored
we see this issue in two places (for libvcc and varnishd), hope this will silence both
-
Nils Goroll authored
-
Nils Goroll authored
it does not register use via tbl/sess_attr.h
-
Nils Goroll authored
leaving these in the "to be reviewed" section because I am not entirely sure. I think these cases are: - ses_set_attr / beresp_filter_fixed: flexelint bug? Looks like it does not register use via macros - ObjGetU32/Lck_DestroyClass API - HTTP_IterHdrPack / SYMTAB_NOERR cases we do not want to make static by design
-
Nils Goroll authored
-
Nils Goroll authored
Solve comparison between unsigned and -1 by moving a cast to where we need it. the existing code already implied that a VCL_INT be large enough to hold uid_t / gid_t.
-
Nils Goroll authored
Ref 31164908 Fixes #3243
-
Nils Goroll authored
-
Nils Goroll authored
we do want to use FLAGX | FLAGY even if zero for clarity error: Info 835: A zero has been given as right argument to operator '|'
-
Nils Goroll authored
Another case of struct instance names which we want to have, even though we do not currently use them.
-
Nils Goroll authored
Yes, we do not actually use the mode name, but we still want to have it for debugging and clarity. Info 754: local struct member 'vsc_sf_mode::name' (line 57, file ../../lib/libvarnishapi/vsc.c) not referenced
-
- 16 Nov, 2020 2 commits
-
-
Nils Goroll authored
Fixes #3243
-
Nils Goroll authored
-