Oops, I have made a little mistake that make the example
not compiling. This patch make it works, sorry :S
Sent: Wednesday, October 27, 2010 1:50 PM
Subject: [libvirt] [libvirt-csharp][PATCH] Make examples works on
monocompiled in 64 bits, simply the ConnectOpenAuth process,and finalise
renaming
Hi,
I have finally find the problem with examples on mono
compiled in 64 bits. The problem was the "ToInt32" method of an IntPtr which
failed on mono 64 bits (have to use ToInt64 instead).
This path solve this problem.
Also, I have put marshaling complexity of the
ConnectOpenAuth callback in bindings, this make the callback of ConnectOpenAuth
more simple to achieve the authentification. In the example, the callback is
treated like this :
private static int AuthCallback(ref ConnectCredential[]
creds, IntPtr cbdata)
{
AuthData
authData = (AuthData)Marshal.PtrToStructure(cbdata,
typeof(AuthData));
foreach (ConnectCredential cred in
creds)
{
switch
(cred.type)
{
case
ConnectCredentialType.VIR_CRED_AUTHNAME:
// Fill the user
name
cred.Result =
authData.user_name;
break;
case
ConnectCredentialType.VIR_CRED_PASSPHRASE:
// Fill the
password
cred.Result =
authData.password;
break;
default:
return
-1;
}
}
return
0;
}
The bindings user has no marshaling to do, and believe
me, it's simpler.
Finally, this patch finalize renaming.
Best regards,
Arnaud Champion
--
libvir-list mailing
list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list