$OpenBSD: patch-libgssdp_gssdp-socket-functions_c,v 1.1.1.1 2011/07/04 15:18:31 jasper Exp $

From 31c9cabc36c6959ef43be63af047c9b6f8490632 Mon Sep 17 00:00:00 2001
From: Jens Georg <mail@jensge.org>
Date: Thu, 30 Jun 2011 21:51:11 +0200
Subject: [PATCH] Fix functionality on OpenBSD

https://bugzilla.gnome.org/show_bug.cgi?id=653775

--- libgssdp/gssdp-socket-functions.c.orig	Wed Dec  1 16:07:59 2010
+++ libgssdp/gssdp-socket-functions.c	Mon Jul  4 15:58:37 2011
@@ -90,8 +90,13 @@ gssdp_socket_option_set (GSocket    *socket,
 
 gboolean
 gssdp_socket_enable_loop (GSocket *socket,
-                          gboolean enable,
+                          gboolean _enable,
                           GError **error) {
+#if defined(__OpenBSD__)
+        guint8 enable = (guint8) _enable;
+#else
+        gboolean enable = _enable;
+#endif
         return gssdp_socket_option_set (socket,
                                         IPPROTO_IP,
                                         IP_MULTICAST_LOOP,
@@ -102,8 +107,13 @@ gssdp_socket_enable_loop (GSocket *socket,
 
 gboolean
 gssdp_socket_set_ttl (GSocket *socket,
-                      int      ttl,
+                      int      _ttl,
                       GError **error) {
+#if defined(__OpenBSD__)
+        guint8 ttl = (guint8) _ttl;
+#else
+        int ttl = _ttl;
+#endif
         return gssdp_socket_option_set (socket,
                                         IPPROTO_IP,
                                         IP_MULTICAST_TTL,
@@ -143,14 +153,19 @@ gssdp_socket_mcast_interface_set (GSocket      *socket
                                         error);
 }
 
-#ifdef G_OS_WIN32
+#if defined(G_OS_WIN32) || defined(__OpenBSD__)
 gboolean
 gssdp_socket_reuse_address (GSocket *socket,
                             gboolean enable,
                             GError **error) {
         return gssdp_socket_option_set (socket,
                                         SOL_SOCKET,
+#if defined(__OpenBSD__)
+                                        SO_REUSEPORT,
+#else
                                         SO_REUSEADDR,
+#endif
+
                                         (char *) &enable,
                                         sizeof (enable),
                                         error);
