Commits
- Commit:
2ec74a9e9c334f3245765a6e6f35b7977f5b420e
- From:
- Omar Polo <op@omarpolo.com>
- Date:
drop double process name from some gotd logs
i.e. "listen: listen: shutting down" -> "listen: shutting down"
the procname is already prepended by vlog()
ok jamsek
- Commit:
3931a8a4404d58250d0d16467474bfba2cc215c2
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
rename a function for clarity
- Commit:
da76b65174488c46bf80a5af7896dfdc3ae60fee
- From:
- Mark Jamsek <mark@jamsek.dev>
- Date:
zap trailing whitespace
- Commit:
839bbaae43d84a7eb75ef0b327239fd36c360ada
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotd, gotadmin: install packfiles and index files as 0444
gotd used 0600 (due to mkstemps(3)), gotadmin 0644; change it to 0444
since packfiles shouldn't change once created. Mirrors what git does.
ok stsp@
- Commit:
9a8e357c727600cb61ac6ec4c83259fa6d9a3081
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotd: implement the delete-refs capability
Allow clients to run "got send -d" against gotd. Clients will send a
zero-id as new id for a reference and, in the special but more common
case of just deleting and not updating, no pack file will be sent.
ok and tweaks by stsp@
- Commit:
3448a19afa20edfa1069b2d793abcda5a9006565
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
make gotd session process accept just one flush packet at a time
ok jamsek
- Commit:
0ff2c315fe0f2f0fe4a92cae73c8a4a9fd21a402
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
gotd: fix "bad packfile with zero objects" error while creating branches
Clients will send an empty pack file if they are only creating new
references and have no objects to upload. Make gotd handle this and
add a regression test which triggers the bug. Problem found by op@.
The new regression test caught an unrelated issue where the client
connection was left lingering after references had been updated,
which made 'got send' followed by 'got clone -l' fail with the
connection limit configured for the test suite (just one connection
is allowed at a time). Fix this as well.
ok op@
- Commit:
f9550d472ec2151070b5bef2bd3b950d9f8e7949
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
fix an issue where gotd fails to accept multiple have-lines from clients
ok op, jamsek
- Commit:
6da1c69cd7747c70dfbe29c9fb66fa03fa985459
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
fix an issue where multiple ref-updates are rejected by gotd
ok op@
- Commit:
00b3e9ae14f04a45f1ca7445bade6b41a6e8a1c5
- From:
- Omar Polo <op@omarpolo.com>
- Date:
replace malloc+memcpy with strndup. no functional change intended
ok stsp@
- Commit:
eac23c306591c21ddaa23930159d302f668ae34c
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
update client state tracking in the gotd parent process
The session process takes over the old state definitions under
a new name ("session state"). The parent only needs to keep
track of whether a client has been granted access, so it only
uses two states: NEW, and ACCCESS_GRANTED which is set as soon
as the auth process has granted repository access and before
the session and repo_read/repo_write children are started.
Because 'gotctl info' can no longer observe the session state
remove support code for printing it.
ok op@
- Commit:
2fc51af0411e9e5ab6f12a7cdb303fabd86571d7
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
do not forget to initialize delta_cache_fd in the session process
- Commit:
ae7c1b785440d9b4e2289d935ca85725f45680f1
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
add a gotd session process, split off from the parent process
The new session process is able to manipulate files in the repository
and keeps track of the read/write client session state.
The parent process now restricts its view of the filesystem to the
absolute path stored in argv[0], and combines this with unveil "x"
on this path. As a result the parent process can only re-exec itself.
small tweaks + ok op@