MCPcopy Create free account
hub / github.com/libgit2/git2go / smartTransportCallback

Function smartTransportCallback

transport.go:299–331  ·  view source on GitHub ↗

export smartTransportCallback

(
	errorMessage **C.char,
	out **C.git_transport,
	owner *C.git_remote,
	handle unsafe.Pointer,
)

Source from the content-addressed store, hash-verified

297
298//export smartTransportCallback
299func smartTransportCallback(
300 errorMessage **C.char,
301 out **C.git_transport,
302 owner *C.git_remote,
303 handle unsafe.Pointer,
304) C.int {
305 registeredSmartTransport := pointerHandles.Get(handle).(*RegisteredSmartTransport)
306 remote, ok := remotePointers.get(owner)
307 if !ok {
308 // create a new empty remote and set it
309 // as a weak pointer, so that control stays in golang
310 remote = createNewEmptyRemote()
311 remote.weak = true
312 }
313
314 managed := &managedSmartSubtransport{
315 remote: remote,
316 callback: registeredSmartTransport.callback,
317 subtransport: (*C._go_managed_smart_subtransport)(C.calloc(1, C.size_t(unsafe.Sizeof(C._go_managed_smart_subtransport{})))),
318 }
319 managedHandle := pointerHandles.Track(managed)
320 managed.handle = managedHandle
321 managed.subtransport.handle = managedHandle
322
323 runtime.LockOSThread()
324 defer runtime.UnlockOSThread()
325
326 ret := C._go_git_transport_smart(out, owner, cbool(registeredSmartTransport.stateless), managed.subtransport)
327 if ret != 0 {
328 pointerHandles.Untrack(managedHandle)
329 }
330 return ret
331}
332
333//export smartTransportSubtransportCallback
334func smartTransportSubtransportCallback(

Callers 1

smart_transport_callbackFunction · 0.85

Calls 6

createNewEmptyRemoteFunction · 0.85
cboolFunction · 0.85
GetMethod · 0.80
getMethod · 0.80
TrackMethod · 0.80
UntrackMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…