AgeCommit message (Collapse)AuthorLines
Serve only the files a dumb clone asks forBryce Kwon-16/+21
The object path check let any run of safe characters through, so a spelling such as info//alternates or info/./alternates reached the alternates file the exact name was refused for. Only a loose object, a pack with its index and info/http-alternates are served now, and any other path is not found.
Answer dumb-clone HEAD from the ref storeBryce Kwon-5/+27
A reftable repository keeps only a placeholder in its HEAD file, so a dumb clone was told HEAD named refs/heads/.invalid and checked nothing out. HEAD is now answered the way git's http-backend answers it.
Mark the parameters callbacks leave unusedBryce Kwon-1/+1
With these and the two changes before them, cgit builds under git's DEVELOPER=1 settings, which also annotate their own callbacks this way.
Withhold the alternates file on the dumb transportBryce Kwon-0/+8
It lists object directories by their path on the server, which a client fetching over http can neither use nor needs to learn. The http-alternates file written for such clients still goes out.
Send a clone file with its size in whole batchesBryce Kwon-4/+18
The dumb transport read a pack four kilobytes at a time through stdio and sent it without a length, so a client could not tell a cut-off transfer from a complete one.
Harden the page renderersBryce Kwon-2/+7
Clean up the whole treeBryce Kwon-6/+3
Trim the comments and dead code across the treeBryce Kwon-1/+0
Use standard HTTP reason phrasesBryce Kwon-4/+4
Restyle the sources and fix the audit's findingsBryce Kwon-36/+71
Point the fork's links and credits at itselfBryce Kwon-1/+1
AUTHORS now records the upstream developers as the project's history rather than as maintainers of the fork.
Cast signed chars before ctype callsBryce Kwon-1/+1
A plain char is undefined in the ctype functions for negative values, which a high byte produces wherever char is signed.
Reorganize into source, assets and librariesBryce Kwon-0/+138
The C sources move to source/, the served files to assets/, the bundled Git submodule to libraries/git and the filter scripts to extensions/. Everything the build generates now lands in build/, so a clean is a single remove and the tree stays clean.