Commit graph

43 commits

Author SHA1 Message Date
Tim-Philipp Müller
62d4c0b179 libs: fix API export/import and 'inconsistent linkage' on MSVC
Export rtsp-server library API in headers when we're building the
library itself, otherwise import the API from the headers.

This fixes linker warnings on Windows when building with MSVC.

Fix up some missing config.h includes when building the lib which
is needed to get the export api define from config.h

https://bugzilla.gnome.org/show_bug.cgi?id=797185
2018-09-24 09:36:21 +01:00
Tim-Philipp Müller
2eb4d1b810 Update for g_type_class_add_private() deprecation in recent GLib 2018-06-24 12:48:11 +02:00
Mathieu Duponchelle
9046b5d083 session-pool: remove nullable return annotation
create_watch can only return NULL from the API guards, no
need for nullable.
2018-02-14 17:11:19 +01:00
Mathieu Duponchelle
c725ef01a4 All around: add annotations and API guards 2018-02-12 19:16:11 +01:00
Olivier Crête
ee3a7b61ef rtsp-session-pool: Avoid dollar sign ($) in session ids
Live555 in VLC strips off dollar signs and then gets very confused,
we don't loose too much entropy by just skipping it.
2015-12-15 16:57:37 -05:00
Kent-Inge Ingesson
d2f1997c4b rtsp-session: Use monotonic time for RTSP session timeout
Changed RTSP session timeout handling to monotonic time
and deprecating the API for current system time.

This fixes timeouts when the system time changes.

https://bugzilla.gnome.org/show_bug.cgi?id=743346
2015-02-19 10:43:30 +02:00
Sebastian Rasmussen
94f3e18c5b Revert "rtsp-session-pool: Make sure session IDs are properly URI-escaped"
This reverts commit 935e8f852d.

RFC 2326 states that session IDs may consist of alphanumeric as well as
the safe characters $-_.+ -- N.B. the percent character is not allowed.

Previously the session ID was URI-escaped, this meant that any character
which was not alphanumeric or any of the characters +-._~ would be
percent encoded. While the RFC (surprisingly) mentions that linear white
space in session IDs should be URI-escaped, it does not say anything
about other characters. Moreover no white space is allowed in the
session ID. Finally the percent character which is the result of
URI-escaping is not allowed in a session ID.

So there is no reason to do any URI-escaping, and now it is removed.

https://bugzilla.gnome.org/show_bug.cgi?id=742869
2015-01-14 18:43:37 +01:00
Wim Taymans
301585b30f session-pool: signal session-removed outside of the lock
Release the lock before emiting the session-removed signal.
2014-07-10 12:20:15 +02:00
Wim Taymans
945c93fde0 filter: Release lock in filter functions
Release the object lock before calling the filter functions. We need to
keep a cookie to detect when the list changed during the filter
callback. We also keep a hashtable to make sure we only call the filter
function once for each object in case of concurrent modification.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732950
2014-07-10 11:36:55 +02:00
Wim Taymans
964ca3c988 session-pool: add session-removed signal
Add a signal to be notified when a session is removed from the pool.
2014-06-30 15:14:34 +02:00
Evan Nemerson
34e6ac3b9f introspection: add (nullable) annotations to return values
https://bugzilla.gnome.org/show_bug.cgi?id=730952
2014-06-26 19:08:16 +02:00
Linus Svensson
9219509bcf rtsp-session-pool: Fixes annotation
Fixes annotation for gst_rtsp_session_pool_create() and memory leaks
in the sessionpool test.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728060
2014-04-12 06:15:03 +02:00
Sebastian Rasmussen
b1b5301577 gobject-introspection: Add annotations to support language bindings
In addition a few cosmetic changes:

 * Adjust the order of arguments
 * Fix typo: occured -> occurred
 * Fix indentation after Return:-clauses

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726941
2014-03-24 00:36:42 +00:00
Tim-Philipp Müller
33c4bdfa01 rtsp-server: sprinkle some allow-none annotations for g-i 2013-11-18 10:47:04 +00:00
Wim Taymans
b0f609ce7f rtsp: allow NULL func in filters
Passing a null function make the filters return a list of
refcounted objects.
2013-11-15 16:35:05 +01:00
Sebastian Dröge
935e8f852d rtsp-session-pool: Make sure session IDs are properly URI-escaped
https://bugzilla.gnome.org/show_bug.cgi?id=643812
2013-10-30 22:16:54 +01:00
Wim Taymans
0b3644a21b docs: improve docs 2013-07-11 16:57:14 +02:00
Wim Taymans
8b4c9570fa session-pool: make vmethod to create a session
Make a vmethod to create a sessions so that subclasses can create
custom session objects
2013-07-11 16:28:09 +02:00
Patricia Muscalu
aa50aac669 rtsp-session-pool: corrected session timeout detection
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701253
2013-05-30 13:13:05 +02:00
Olivier Crête
b9d111372e Document locking and its order 2013-03-11 11:07:19 +01:00
Wim Taymans
ad00c5e792 rtsp: make object details private
Make all object details private
Add methods to access private bits
2012-11-29 11:11:05 +01:00
Wim Taymans
1d53c46d23 MediaMapping -> MountPoints
Describes better what the object manages.
2012-11-26 12:37:55 +01:00
Tim-Philipp Müller
4dba434f16 Fix FSF address 2012-11-04 00:14:25 +00:00
Sebastian Pölsterl
e11e855ac8 rtsp-server: fixed comments and GIR annotations
https://bugzilla.gnome.org/show_bug.cgi?id=680777
2012-10-18 19:17:01 +01:00
Wim Taymans
6cc2fb9bfc rtsp-server: port to new thread API 2012-05-11 09:42:47 +02:00
Sebastian Dröge
e9ef6f6254 Merge remote-tracking branch 'origin/0.10'
Conflicts:
	gst/rtsp-server/rtsp-session-pool.c
2012-03-29 15:12:21 +02:00
Sebastian Dröge
1f442d45b6 rtsp-server: Don't use deprecated GLib API 2012-03-27 10:13:20 +02:00
Wim Taymans
4c59e211e2 rtsp-server: port to GIO
Port to GIO
2012-03-07 15:04:29 +01:00
Miguel Angel Cabrera Moya
17ce0df09a session: use full charset for RTSP session ID
As specified in RFC 2326 section 3.4 use full valid charset to make guessing
session ID more difficult.

https://bugzilla.gnome.org/show_bug.cgi?id=643812
2011-03-07 18:39:43 +00:00
Wim Taymans
9e97faf2db server: improve debugging in various objects 2011-01-12 18:14:48 +01:00
Edward Hervey
eb83fc6318 rtsp-server: Run gst-indent
Since it wasn't using the upstream common previously, there was no
indentation check before commiting.
2010-12-11 10:48:42 +01:00
Sebastian Pölsterl
6d227be7a9 Use GStreamer's debugging subsystem 2009-11-21 19:20:23 +01:00
Wim Taymans
a4c90c28c7 sessionpool: add function to filter sessions
Add generic function to retrieve/remove sessions.
2009-06-30 21:27:53 +02:00
Wim Taymans
1be35624da Do some more session cleanup
Make session timeout kill the TCP connection that currently watches the
session.
Remove the client timeout property.
2009-03-11 19:38:06 +01:00
Wim Taymans
b86451dc76 Pass GTimeVal around for performance reasons
Get the current time only once and pass it around so that sessions don't have to
get the current time anymore.

Add experimental support for a GSource that dispatches when the session needs to
be cleaned up.
2009-02-13 19:58:17 +01:00
Wim Taymans
e1154c92d6 Some more session timeout handling
Move the session header setting code to a central place so that we always add
the timeout parameter too.

Handle timeouts by running the session cleanup code.

Stop media before cleaning up.
2009-02-13 12:57:45 +01:00
Wim Taymans
c5b06ab5f8 Use getters and setters in property code
Use the getters and setters for the timeout property instead of locking
ourselves.
2009-02-10 16:21:17 +01:00
Wim Taymans
ae9da4c5b0 Add more timeout stuff
Add method to check if a session is expired.
Add method to perform cleanup on a session pool.
2009-02-04 20:10:39 +01:00
Wim Taymans
aedd4652f3 Add beginnings of session timeouts and limits
Add the timeout value to the Session header for unusual timeout values.

Allow us to configure a limit to the amount of active sessions in a pool. Set a
limit on the amount of retry we do after a sessionid collision.

Add properties to the sessionid and the timeout of a session. Keep track of
creation time and last access time for sessions.
2009-02-04 19:52:50 +01:00
Wim Taymans
e789a8fdf3 Cleanup of sessions and more
Fix the refcounting of media and sessions in the client. Properly clean up the
session data when the client performs a teardown.

Add Server header to responses.

Allow for multiple uri setups in one session.

Add Range header to the PLAY response and add the range attribute to the SDP
message.

Fix the session pool remove method, it used the wrong key in the hashtable. Also
give the ownership of the sessionid to the session object.
2009-02-04 17:00:42 +01:00
Wim Taymans
a3522af4f8 Allow custom session pools to override the session id allocation algorithms
Add some comments.
2009-01-20 19:41:53 +01:00
Wim Taymans
243b524f51 Do some more cleanup of the session pool. 2009-01-19 19:32:28 +01:00
Wim Taymans
7889395787 Split in library and example program 2009-01-08 13:18:55 +01:00
Renamed from src/rtsp-session-pool.c (Browse further)