Jens Georg [Thu, 30 Jun 2011 19:51:11 +0000 (21:51 +0200)]
Fix functionality on OpenBSD
Jens Georg [Sat, 2 Jul 2011 13:28:30 +0000 (15:28 +0200)]
Fix discovery regressions introduced with
177f2772.
- Only M-SEARCH should be send from port different to 1900
- GSSDP needs to listen on that socket as well since clients
need to reply to the port M-SEARCH was sent from.
Jens Georg [Fri, 1 Jul 2011 18:18:55 +0000 (20:18 +0200)]
Drop "All rights reserved" from Nokia copyright.
Jens Georg [Fri, 1 Jul 2011 18:15:50 +0000 (20:15 +0200)]
Also check HTTP version and request path
HTTP version has to be 1.1 and request path "*"
Jens Georg [Thu, 30 Jun 2011 13:43:53 +0000 (15:43 +0200)]
Add missing goto on error while setting TTL
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=653733
Jens Georg [Wed, 29 Jun 2011 16:52:50 +0000 (18:52 +0200)]
MX header must be a positive integer
Jens Georg [Wed, 29 Jun 2011 16:52:38 +0000 (18:52 +0200)]
Check presence of MAN header
Jens Georg [Mon, 27 Jun 2011 15:13:34 +0000 (17:13 +0200)]
Do not send M-SEARCH/NOTIFY from port 1900
This fixes bgo#653380 and DLNA requirement 7.2.3.4.
Jens Georg [Thu, 16 Jun 2011 09:03:10 +0000 (11:03 +0200)]
Release 0.11.0
Sven Neumann [Tue, 14 Jun 2011 20:42:19 +0000 (22:42 +0200)]
Adjust documentation for the message-delay property.
The default value was changed recently, but the documentation still
referred to the old default value.
Jens Georg [Tue, 14 Jun 2011 06:57:54 +0000 (08:57 +0200)]
Send alive/byebye announcements three times
UPnP recommends to send the whole batch of announcements more than
once "due to the unreliable nature of UDP".
Jens Georg [Tue, 14 Jun 2011 06:57:53 +0000 (08:57 +0200)]
Bump default delay to 120ms
UPnP recommends a message delay of a "few hundred milliseconds".
Zeeshan Ali (Khattak) [Tue, 7 Jun 2011 13:23:25 +0000 (16:23 +0300)]
More concise description
Zeeshan Ali (Khattak) [Tue, 7 Jun 2011 13:16:10 +0000 (16:16 +0300)]
Add DOAP file
Jens Georg [Fri, 20 May 2011 11:44:54 +0000 (13:44 +0200)]
Revert "Send notify for all lower versions as well"
This reverts commit
c39bba86c215785afefd16a9eeab1def2556a4e2.
This is wrong according to UPnP spec. Announcements must only be sent
for the largest supported version.
The issue that was fixed with this is also fixed with
ad16c1ab2e14c8736bbef0397667ad782dc8d218.
Jens Georg [Fri, 20 May 2011 09:34:01 +0000 (11:34 +0200)]
Reply for M-SEARCH on versions <= our version
Jens Georg [Fri, 20 May 2011 09:27:37 +0000 (11:27 +0200)]
Keep resource version of target around
Jens Georg [Wed, 11 May 2011 12:12:18 +0000 (14:12 +0200)]
Make USN and ST match on M-SEARCH
This is required by UPnP.
Jens Georg [Sat, 30 Apr 2011 17:57:13 +0000 (20:57 +0300)]
Fix all warnings from g-ir-scanner
Jens Georg [Sat, 30 Apr 2011 17:51:41 +0000 (20:51 +0300)]
Update gobject-introspection automake integration
Zeeshan Ali (Khattak) [Fri, 3 Jun 2011 22:47:04 +0000 (01:47 +0300)]
Bump minor and LT versions
Bump minor version and LTVERSION now that we're breaking API/ABI.
Jens Georg [Wed, 2 Feb 2011 19:39:09 +0000 (20:39 +0100)]
Don't use anonymous structs
Needed for gtkmm-like bindings
Jens Georg [Wed, 19 Jan 2011 08:11:03 +0000 (09:11 +0100)]
Make gssdp-client implement GInitable
GObject way to pass a GError on construction.
Zeeshan Ali (Khattak) [Fri, 3 Jun 2011 21:57:46 +0000 (00:57 +0300)]
Only reply if a valid MX header is present
Fixes UPnP CTT test UDA-1.2.9.
Modified version of a patch from Jens Georg <mail@jensge.org>.
Jens Georg [Tue, 24 May 2011 10:11:29 +0000 (12:11 +0200)]
Don't send interleaved byebye/alive on startup
According to UPnP CTT, there should not be any byebye message after
the device sent an alive message. So we need to group the initial
byebye messages (also requested by the tool, UDA-1.1.3) to come
before the initial alive messages.
Partially fixes UDA-1.1.1 - UDA-1.1.3
Jens Georg [Fri, 27 May 2011 08:17:10 +0000 (10:17 +0200)]
Implement add_resource_simple using add_resource
Remove duplicate code
Sven Neumann [Wed, 4 May 2011 12:54:46 +0000 (14:54 +0200)]
Fix crash on target without a colon
Don't crash if a target without a colon is passed to
gssdp_resource_browser_set_target().
Zeeshan Ali (Khattak) [Tue, 26 Apr 2011 17:47:36 +0000 (20:47 +0300)]
Remove a redundant variable
Alberto Mardegan [Sun, 17 Apr 2011 08:18:10 +0000 (11:18 +0300)]
Better usage of g_set_error*
Use g_set_error instead of g_error_new; do not check if the error
pointer is non-NULL, because g_set_error() does that internally.
Also, use g_set_error_literal() whenever possible.
Alberto Mardegan [Sun, 17 Apr 2011 08:18:09 +0000 (11:18 +0300)]
Memory leak: always call g_propagate_error
Even if the "dest" error is NULL, we must call g_propagate_error()
because it free's the "src" error that would otherwise be leaked.
Alberto Mardegan [Sun, 17 Apr 2011 08:18:08 +0000 (11:18 +0300)]
Report failure even if no GError is given
If no GError was passed to the GInitable, in some error cases
gssdp_socket_source_do_init() would still return TRUE. This change fixes
that and simplifies error handling a bit.
Alberto Mardegan [Sun, 17 Apr 2011 08:18:07 +0000 (11:18 +0300)]
Avoid accessing members of a destroyed GError
After g_propagate_error() has been called, the original error has either
been destroyed or moved; this code was accessing the contents of the
GError after it had been free'd.
Jens Georg [Thu, 24 Mar 2011 21:17:08 +0000 (23:17 +0200)]
Release 0.10.0
Jens Georg [Thu, 24 Mar 2011 21:07:39 +0000 (23:07 +0200)]
Fix network calculation for IPv6
Zeeshan Ali (Khattak) [Tue, 8 Mar 2011 15:20:55 +0000 (17:20 +0200)]
Send notify for all lower versions as well
Zeeshan Ali (Khattak) [Tue, 8 Mar 2011 14:12:46 +0000 (16:12 +0200)]
Refactor a function
Refactor create_target_regex().
Zeeshan Ali (Khattak) [Thu, 3 Feb 2011 17:53:48 +0000 (19:53 +0200)]
Send alive message at least 3 times before expiry
We want to re-announce at least 3 times before the resource group expires
to cope with the unrelialble nature of UDP.
Read the paragraphs about 'CACHE-CONTROL' on pages 21-22 of UPnP Device
Architecture Document v1.1 for further details on this.
Luis de Bethencourt [Wed, 2 Feb 2011 11:54:14 +0000 (12:54 +0100)]
Clear the ChangeLog file
The ChangeLog was obsolete and since it's use has been replaced
by git log, an empty ChangeLog file is kept to satisfy autools.
Zeeshan Ali (Khattak) [Fri, 28 Jan 2011 13:54:29 +0000 (15:54 +0200)]
Release 0.9.2
Jens Georg [Wed, 26 Jan 2011 22:00:46 +0000 (23:00 +0100)]
Port network lookup code to Windows
Zeeshan Ali (Khattak) [Tue, 25 Jan 2011 15:08:12 +0000 (17:08 +0200)]
Add 'network' property to GSSDPClient
Jens Georg [Mon, 17 Jan 2011 19:54:27 +0000 (20:54 +0100)]
Streamline resource cleaning in socket_source_cb
Fixes Bug #2144.
Zeeshan Ali (Khattak) [Wed, 22 Dec 2010 10:03:58 +0000 (12:03 +0200)]
Require libsoup >= 2.26.1
Sven Neumann [Thu, 16 Dec 2010 13:41:21 +0000 (14:41 +0100)]
Fix issue introduced with commit
20dce239
The Reource struct is not any longer valid at the point we emit the
signal, so better not access it there.
Zeeshan Ali (Khattak) [Wed, 1 Dec 2010 15:10:05 +0000 (17:10 +0200)]
Release 0.9.1
Sven Neumann [Thu, 18 Nov 2010 21:33:49 +0000 (22:33 +0100)]
Fix potential crash in resource-unavailable()
Similar fix as for resource_expire(), emit the "resource-unavailable"
signal after having removed the resource from the list of available
resources.
Sven Neumann [Mon, 15 Nov 2010 08:58:40 +0000 (09:58 +0100)]
Fix potential crash in resource_expire()
GSSDPResourceBrowser emits "resource-unavailable" before it has removed
the resource from its cache. Now if the application changes the cache
in response to this signal emission the code will crash.
Fix this potential crash by emitting the signal after the resource
has been removed from the cache.
Zeeshan Ali (Khattak) [Fri, 12 Nov 2010 11:33:54 +0000 (13:33 +0200)]
Release 0.9.0
Zeeshan Ali (Khattak) [Fri, 12 Nov 2010 10:02:31 +0000 (12:02 +0200)]
Don't include private header in a public header
Jens Georg [Sun, 10 Oct 2010 19:39:29 +0000 (21:39 +0200)]
Don't print the whole packet on failure to send it
Only print destination and the error message.
Jens Georg [Sun, 2 May 2010 15:37:06 +0000 (17:37 +0200)]
Work-around some issues with gio on windows
glib uses a rather strange mechanism to init the winsock library (through
usage of g_inet_addres_*), so we better do it ourselves.
glib - rightly - doesn't set SO_REUSEADDR on g_socket_bind on windows
since it has different semantics. Nevertheless we need it on windows for
multicast sockets, so we add a helper function to set this socket option.
Jens Georg [Sun, 2 May 2010 14:13:50 +0000 (16:13 +0200)]
Port host IP address detection code to windows
Jens Georg [Fri, 26 Jun 2009 15:04:28 +0000 (17:04 +0200)]
Make it compile on mingw
Add headers and casts necessary to silence mingw. Additionaly
"interface" is a macro on Windows which leads to weird compiler errors;
renaming the variables was unavoidable
To make libtool generate DLLs on windows the linker flag -no-undefined
needs to be passed; otherwise libtool will only create static libraries.
Jens Georg [Tue, 7 Sep 2010 21:14:15 +0000 (23:14 +0200)]
Make GSSDPSocketSource a GObject
Zeeshan Ali (Khattak) [Fri, 8 Oct 2010 22:36:09 +0000 (01:36 +0300)]
Micro coding-style fix
Jens Georg [Sun, 2 May 2010 14:41:14 +0000 (16:41 +0200)]
Port GSSDP to GIO/GSocket
Ross Burton [Mon, 20 Sep 2010 10:47:18 +0000 (11:47 +0100)]
Pass all libs when building the tests, to please gold (#2196)
Zeeshan Ali (Khattak) [Thu, 16 Sep 2010 12:09:35 +0000 (15:09 +0300)]
Release 0.8.0
Jens Georg [Tue, 7 Sep 2010 20:20:42 +0000 (22:20 +0200)]
Properly catch errors in recvfrom
Errors previously were caught by sheer luck due to the fact that bytes
was declared size_t (unsigned), thus -1 mapping to typeof(size_t)_MAX
which most likely fullfilled the case of bytes > BUF_SIZE
Jens Georg [Wed, 8 Sep 2010 20:14:33 +0000 (22:14 +0200)]
Fix typo in socket-source
Zeeshan Ali (Khattak) [Tue, 24 Aug 2010 12:17:47 +0000 (15:17 +0300)]
Don't use deprecated libsoup API
Sven Neumann [Tue, 6 Jul 2010 13:34:06 +0000 (15:34 +0200)]
Flag string arg of GSSDPClient signal as static
Set the G_SIGNAL_TYPE_STATIC_SCOPE flag on the "from_ip" string
argument of the GSSDPClient::message-received signal.
Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Sven Neumann [Tue, 22 Jun 2010 10:08:53 +0000 (12:08 +0200)]
Chain up in dispose() and finalize().
Ross Burton [Wed, 21 Apr 2010 15:33:14 +0000 (16:33 +0100)]
Fix typo (thanks berrie@codevio.com)
Zeeshan Ali (Khattak) [Thu, 8 Apr 2010 13:16:40 +0000 (16:16 +0300)]
Release 0.7.2
Zeeshan Ali (Khattak) [Fri, 9 Apr 2010 12:43:20 +0000 (15:43 +0300)]
Use complete paths of sources in GIR build rule
Fixes `make distcheck`.
Zeeshan Ali (Khattak) [Tue, 6 Apr 2010 16:06:53 +0000 (19:06 +0300)]
Hide internal API from introspection scanner
Zeeshan Ali (Khattak) [Sat, 20 Feb 2010 13:20:45 +0000 (15:20 +0200)]
Add gobject-introspection check macro
Depending on gobject-introspection installation to check for
gobject-introspection is a bad idea. This patch inlines the check macro.
Jens Georg [Sat, 6 Mar 2010 20:01:53 +0000 (21:01 +0100)]
Add ACLOCAL_AMFLAGS so that autoreconf will obey ACLOCAL_FLAGS
Neil Roberts [Thu, 18 Mar 2010 16:40:45 +0000 (16:40 +0000)]
autogen.sh: Obey the ACLOCAL_FLAGS environment variable
This allows additional macro search paths to be searched by setting
the ACLOCAL_FLAGS variable. This is needed for jhbuild.
http://bugzilla.openedhand.com/show_bug.cgi?id=2039
Zeeshan Ali (Khattak) [Mon, 4 Jan 2010 17:12:26 +0000 (19:12 +0200)]
If target is not a URN, no need to deal with version
Zeeshan Ali (Khattak) [Thu, 31 Dec 2009 15:40:29 +0000 (17:40 +0200)]
Version in target must be at the end of the string
Ross Burton [Thu, 21 Jan 2010 08:38:12 +0000 (08:38 +0000)]
Use silent rules
Ross Burton [Thu, 21 Jan 2010 08:36:32 +0000 (08:36 +0000)]
Update ignores
Ross Burton [Thu, 21 Jan 2010 08:36:25 +0000 (08:36 +0000)]
Build introspection data
Ross Burton [Thu, 21 Jan 2010 08:36:11 +0000 (08:36 +0000)]
Check for gobject-introspection
Zeeshan Ali (Khattak) [Fri, 4 Dec 2009 13:11:45 +0000 (15:11 +0200)]
Prepare release 0.7.1
Olivier Crête [Tue, 1 Dec 2009 13:08:06 +0000 (18:38 +0530)]
Have specific GError code for interfaces without an IP address
Ross Burton [Wed, 2 Dec 2009 11:09:52 +0000 (11:09 +0000)]
If we can't create a request socket don't try to create a multicast socket
Mattias Wadman [Wed, 2 Dec 2009 11:06:26 +0000 (11:06 +0000)]
Use SO_REUSEPORT if present
Darwin and some BSDs don't have SO_REUSEADDR, but SO_REUSEPORT.
Signed-off-by: Ross Burton <ross@linux.intel.com>
iain [Tue, 24 Nov 2009 21:01:31 +0000 (21:01 +0000)]
Make GSSDPClient ignore Point to Point interfaces so that GUPnP stops putting stuff on my VPN connection
Olivier Crête [Tue, 8 Sep 2009 23:03:41 +0000 (19:03 -0400)]
Don't leak target regex
Ross Burton [Sun, 6 Sep 2009 10:16:04 +0000 (11:16 +0100)]
Remove gssdp_client_new_full (#1796)
Zeeshan Ali (Khattak) [Fri, 28 Aug 2009 13:52:57 +0000 (16:52 +0300)]
Release announcement for release 0.7
Zeeshan Ali (Khattak) [Fri, 28 Aug 2009 13:53:38 +0000 (16:53 +0300)]
Revert "Print interface and IP client gets bound to"
This reverts commit
4d48561a8e601c2fc3911839754507f9c369dd0a.
Zeeshan Ali (Khattak) [Thu, 27 Aug 2009 15:38:58 +0000 (18:38 +0300)]
Discard packets from different network
We need this code to make sure the right client received the packet. We
won't need to do this if there was any way to tell Mr. Unix that we are
only interested in receiving multicast packets on this socket from a
particular interface but AFAIK that is not possible, at least not in a
portable way.
Zeeshan Ali (Khattak) [Wed, 29 Jul 2009 18:20:57 +0000 (21:20 +0300)]
Add a getter for GSSDPClient:active
Zeeshan Ali (Khattak) [Tue, 21 Jul 2009 15:41:42 +0000 (18:41 +0300)]
Update copyrights in docs
Zeeshan Ali (Khattak) [Tue, 21 Jul 2009 15:29:21 +0000 (18:29 +0300)]
Update docs
Zeeshan Ali (Khattak) [Tue, 21 Jul 2009 12:02:59 +0000 (15:02 +0300)]
Prefer non-loopback IPv4 interfaces
Zeeshan Ali (Khattak) [Tue, 21 Jul 2009 07:03:50 +0000 (10:03 +0300)]
Print interface and IP client gets bound to
Zeeshan Ali (Khattak) [Mon, 20 Jul 2009 22:16:26 +0000 (01:16 +0300)]
No need to find the default route
The code is not just platform dependent but apparently it doesn't really
work either. Also do we really want to bind to default interface? Facts
to keep in mind:
1. If only loopback interface is up, there usually is no route set to it.
2. In case of multiple networks, the default route is usually set to the one
connecting to internet rather than the local network (right?).
Zeeshan Ali (Khattak) [Mon, 20 Jul 2009 13:43:21 +0000 (16:43 +0300)]
Client now binds to interface rather than IP
While in reality we still bind the sockets to IP, we can already fix
the API. We can later fix this completely without breaking any APIs.
Zeeshan Ali (Khattak) [Mon, 20 Jul 2009 12:58:03 +0000 (15:58 +0300)]
Correct behavior/docs for get_host_ip()
This function should also entertain loopback interface.
Zeeshan Ali (Khattak) [Wed, 15 Jul 2009 16:08:59 +0000 (19:08 +0300)]
Version-independent M-SEARCH response
Most (UPnP) resources have ":VERSION" prefix in their target and UPnP docs
and DLNA require us to respond to M-SEARCH requests even if the requested
version in M-SEARCH is different.
Zeeshan Ali (Khattak) [Tue, 14 Jul 2009 16:01:43 +0000 (19:01 +0300)]
Version-independent target match
DLNA and new UPnP docs make it very clear that clients should be able to
deal with any version of resource while announcing their interest in a
particular version.
Zeeshan Ali (Khattak) [Tue, 14 Jul 2009 13:43:46 +0000 (16:43 +0300)]
Put target compatibility in a separate function
Zeeshan Ali (Khattak) [Tue, 14 Jul 2009 11:11:45 +0000 (14:11 +0300)]
Add "active" property to GSSDPClient
If set to FALSE, the client won't send any messages on the network.
We need this to make sure that we don't send byebye messages after
a network interface (and hence the associated GUPnPContext) goes down.
Jens Georg [Fri, 1 May 2009 14:12:36 +0000 (16:12 +0200)]
Port gssdp-device-sniffer to GtkBuilder
Zeeshan Ali (Khattak) [Fri, 3 Jul 2009 16:23:09 +0000 (19:23 +0300)]
get_default_host_ip() is not supposed to return NULL
This fixes the crash happening due to recent changes in case of empty
routing table.