commit - ef5d8d39c705b2d3ec3cd7d009fc5d815ee28b75
commit + e49ea032f80f15db7a7534b3ad0f5bfd0aae321c
blob - bc9167c11f07085a6c16b8b189afe0d91b2930f0
blob + fdbcd0891fe736f8ee82c9dc8e62d367feb3032d
--- gotd/gotd.c
+++ gotd/gotd.c
err = got_error(GOT_ERR_PRIVSEP_MSG);
break;
}
+ err = send_request_timeout(iev, &gotd.request_timeout);
+ if (err)
+ break;
if (client_is_writing(client)) {
- err = send_request_timeout(iev,
- &gotd.request_timeout);
- if (err)
- break;
err = send_notification_config(iev,
proc->repo_name);
if (err)
if (proc_id != GOTD_PROC_LISTEN && proc_id != GOTD_PROC_AUTH &&
proc_id != GOTD_PROC_REPO_WRITE &&
- proc_id != GOTD_PROC_SESSION_WRITE && proc_id != GOTD_PROC_NOTIFY) {
+ proc_id != GOTD_PROC_REPO_READ &&
+ proc_id != GOTD_PROC_SESSION_WRITE && proc_id != GOTD_PROC_NOTIFY &&
+ proc_id != GOTD_PROC_SESSION_READ) {
if (gotd_parse_config(confpath, proc_id, secrets, &gotd) != 0)
return 1;
err(1, "pledge");
#endif
apply_unveil_repo_readonly(repo_path, 1);
- session_read_main(title, repo_path, pack_fds, temp_fds,
- &gotd.request_timeout);
+ session_read_main(title, repo_path, pack_fds, temp_fds);
/* NOTREACHED */
break;
case GOTD_PROC_SESSION_WRITE:
blob - e08c451332d81d5b63f413d50e4f42ca71f27be7
blob + 799e437da262754f2da049e9adcf164a7718e94f
--- gotd/session_read.c
+++ gotd/session_read.c
case GOTD_IMSG_DISCONNECT:
do_disconnect = 1;
break;
+ case GOTD_IMSG_REQUEST_TIMEOUT:
+ if (imsg_get_data(&imsg, &gotd_session.request_timeout,
+ sizeof(gotd_session.request_timeout)) == -1)
+ err = got_error_from_errno("imsg_get_data");
+ break;
case GOTD_IMSG_CONNECT_REPO_CHILD:
err = recv_repo_child(&imsg);
if (err)
void
session_read_main(const char *title, const char *repo_path,
- int *pack_fds, int *temp_fds, struct timeval *request_timeout)
+ int *pack_fds, int *temp_fds)
{
const struct got_error *err = NULL;
struct event evsigint, evsigterm, evsighup, evsigusr1;
gotd_session.pid = getpid();
gotd_session.pack_fds = pack_fds;
gotd_session.temp_fds = temp_fds;
- memcpy(&gotd_session.request_timeout, request_timeout,
- sizeof(gotd_session.request_timeout));
+ gotd_session.request_timeout.tv_sec = GOTD_DEFAULT_REQUEST_TIMEOUT;
+ gotd_session.request_timeout.tv_usec = 0;
gotd_session.repo_child_packfd = -1;
if (imsgbuf_init(&gotd_session.notifier_iev.ibuf, -1) == -1) {
blob - 5505ce95744a9ce3f739e8747e99604e4e7380f1
blob + fd0ac0b6caadc07f22574d9c51eb8cc9d76176ea
--- gotd/session_read.h
+++ gotd/session_read.h
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-void session_read_main(const char *, const char *, int *, int *,
- struct timeval *);
+void session_read_main(const char *, const char *, int *, int *);