internal static void ziti_enroll_cb_impl(IntPtr ziti_config, int status, string msg, GCHandle enroll_context) { if (enroll_context.IsAllocated) { Enrollment.AfterEnrollWrapper w = (Enrollment.AfterEnrollWrapper)enroll_context.Target; w.wrapper.Dispose(); ZitiEnrollment.EnrollmentResult r = new ZitiEnrollment.EnrollmentResult(ziti_config) { Status = (ZitiStatus)status, Message = msg, Context = w.Context, }; if (r.Status.Ok()) { ZitiIdentityFormatNative fromZiti = Marshal.PtrToStructure <ZitiIdentityFormatNative>(ziti_config); r.ZitiIdentity = new ZitiIdentityFormat(fromZiti); } w.AfterEnroll(r); } else { Console.WriteLine("unexpected situation"); } }
public static void Enroll(string identityFile, Enrollment.AfterEnroll afterEnroll, object ctx) { var loop = API.DefaultLoop; Native.API.ziti_log_init(loop.nativeUvLoop, 11, Marshal.GetFunctionPointerForDelegate(NativeLogger)); Native.ziti_enroll_options opts = new Native.ziti_enroll_options() { jwt = identityFile, }; Enrollment.AfterEnrollWrapper w = new Enrollment.AfterEnrollWrapper() { AfterEnroll = afterEnroll, wrapper = new StructWrapper(opts), Context = ctx, }; Native.API.ziti_enroll(w.wrapper.Ptr, loop.nativeUvLoop, enroll_cb, GCHandle.Alloc(w)); }