Every stream must have this struct as its first element, so the API can talk to it. You'd define your stream as
struct my_stream { git_stream parent; ... }
and fill the functions
Timeout for read and write operations; can be set to 0
to block indefinitely.
Timeout to connect to the remote server; can be set to 0
to use the system defaults. This can be shorter than the system default - often 75 seconds - but cannot be longer.