summaryrefslogtreecommitdiffstats
path: root/avahi-sharp/EntryGroup.cs
diff options
context:
space:
mode:
authorJames Willcox <snopr@snorp.net>2005-10-26 18:01:56 +0000
committerJames Willcox <snopr@snorp.net>2005-10-26 18:01:56 +0000
commit740bc001fb647255709b5385d5a8a19781722097 (patch)
tree3304bd16129de21fab3af89b7ab057a7f54e75c9 /avahi-sharp/EntryGroup.cs
parent404c44c11b3d63c6a53b81ed7b9231387305c33f (diff)
* correct the error handling in EntryGroup
* get rid of evil Thread.Abort git-svn-id: file:///home/lennart/svn/public/avahi/trunk@878 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'avahi-sharp/EntryGroup.cs')
-rw-r--r--avahi-sharp/EntryGroup.cs32
1 files changed, 17 insertions, 15 deletions
diff --git a/avahi-sharp/EntryGroup.cs b/avahi-sharp/EntryGroup.cs
index 4373178..3f8a94c 100644
--- a/avahi-sharp/EntryGroup.cs
+++ b/avahi-sharp/EntryGroup.cs
@@ -59,10 +59,10 @@ namespace Avahi
private static extern IntPtr avahi_entry_group_new (IntPtr client, EntryGroupCallback cb, IntPtr userdata);
[DllImport ("avahi-client")]
- private static extern void avahi_entry_group_commit (IntPtr group);
+ private static extern int avahi_entry_group_commit (IntPtr group);
[DllImport ("avahi-client")]
- private static extern void avahi_entry_group_reset (IntPtr group);
+ private static extern int avahi_entry_group_reset (IntPtr group);
[DllImport ("avahi-client")]
private static extern EntryGroupState avahi_entry_group_get_state (IntPtr group);
@@ -71,10 +71,10 @@ namespace Avahi
private static extern bool avahi_entry_group_is_empty (IntPtr group);
[DllImport ("avahi-client")]
- private static extern void avahi_entry_group_add_service_strlst (IntPtr group, int iface, Protocol proto,
- PublishFlags flags, IntPtr name, IntPtr type,
- IntPtr domain, IntPtr host, UInt16 port,
- IntPtr strlst);
+ private static extern int avahi_entry_group_add_service_strlst (IntPtr group, int iface, Protocol proto,
+ PublishFlags flags, IntPtr name, IntPtr type,
+ IntPtr domain, IntPtr host, UInt16 port,
+ IntPtr strlst);
[DllImport ("avahi-client")]
private static extern void avahi_entry_group_free (IntPtr group);
@@ -118,7 +118,8 @@ namespace Avahi
lock (client) {
handle = avahi_entry_group_new (client.Handle, cb, IntPtr.Zero);
- client.CheckError ();
+ if (handle == IntPtr.Zero)
+ client.ThrowError ();
}
}
@@ -140,16 +141,16 @@ namespace Avahi
public void Commit ()
{
lock (client) {
- avahi_entry_group_commit (handle);
- client.CheckError ();
+ if (avahi_entry_group_commit (handle) < 0)
+ client.ThrowError ();
}
}
public void Reset ()
{
lock (client) {
- avahi_entry_group_reset (handle);
- client.CheckError ();
+ if (avahi_entry_group_reset (handle) < 0)
+ client.ThrowError ();
}
}
@@ -184,13 +185,14 @@ namespace Avahi
IntPtr hostPtr = Utility.StringToPtr (host);
lock (client) {
- avahi_entry_group_add_service_strlst (handle, iface, proto, flags, namePtr, typePtr, domainPtr,
- hostPtr, port, list);
+ int ret = avahi_entry_group_add_service_strlst (handle, iface, proto, flags, namePtr, typePtr, domainPtr,
+ hostPtr, port, list);
+ if (ret < 0) {
+ client.ThrowError ();
+ }
}
avahi_string_list_free (list);
-
- client.CheckError ();
}
public static string GetAlternativeServiceName (string name) {