/* * Contrary to typical network IO callbacks, Secure Transport write callback is * expected to write *all* passed data, not just as much as it can, and any * other case would be considered a failure. * * This behavior is actually not specified in the Apple documentation, but is * required for things to work correctly (and incidentally, that's also how * Apple implements it in its projects at opensource.apple.com). * * Libgit2 streams happen to already have this very behavior so this is just * passthrough. */ static OSStatus write_cb(SSLConnectionRef conn, const void *data, size_t *len) { git_stream *io = (git_stream *) conn; if (git_stream_write(io, data, *len, 0) < 0) { return -36; /* "ioErr" from MacErrors.h which is not available on iOS */ } return noErr; }
static int bio_write(BIO *b, const char *buf, int len) { git_stream *io = (git_stream *) b->ptr; return (int) git_stream_write(io, buf, len, 0); }
static int bio_write(BIO *b, const char *buf, int len) { git_stream *io = (git_stream *) BIO_get_data(b); return (int) git_stream_write(io, buf, len, 0); }