refactor duplicated code in builtin-send-pack.c and transport.c