- sub { $self->watch_read(1) }
-}
-
-sub main_cb ($$$) {
- my ($http, $fh, $bref) = @_;
- sub {
- my ($self) = @_;
- my $r = sysread($self->{sock}, $$bref, 8192);
+ if (my $cb = delete $self->{cb}) {
+ # this may call async_pass when headers are done
+ $cb->(delete $self->{arg});
+ } elsif (my $sock = $self->{sock}) {
+ my $http = $self->{http};
+ # $self->{sock} is a read pipe for git-http-backend or cgit
+ # and 65536 is the default Linux pipe size
+ my $r = sysread($sock, my $buf, 65536);