[libsoup] uri: add support for WebSocket schemes
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup] uri: add support for WebSocket schemes
- Date: Sun, 1 Mar 2015 15:39:46 +0000 (UTC)
commit cbe988d9df00870db1f9c8af817ad7a1e5ea483b
Author: Lionel Landwerlin <llandwerlin gmail com>
Date: Mon Jan 20 13:41:02 2014 +0000
uri: add support for WebSocket schemes
docs/reference/libsoup-2.4-sections.txt | 2 ++
libsoup/libsoup-2.4.sym | 2 ++
libsoup/soup-uri.c | 27 +++++++++++++++++++++++++--
libsoup/soup-uri.h | 3 +++
4 files changed, 32 insertions(+), 2 deletions(-)
---
diff --git a/docs/reference/libsoup-2.4-sections.txt b/docs/reference/libsoup-2.4-sections.txt
index d6a444a..f7fcd75 100644
--- a/docs/reference/libsoup-2.4-sections.txt
+++ b/docs/reference/libsoup-2.4-sections.txt
@@ -706,6 +706,8 @@ SOUP_URI_SCHEME_DATA
SOUP_URI_SCHEME_FILE
SOUP_URI_SCHEME_FTP
SOUP_URI_SCHEME_RESOURCE
+SOUP_URI_SCHEME_WS
+SOUP_URI_SCHEME_WSS
soup_uri_uses_default_port
SOUP_URI_IS_VALID
SOUP_URI_VALID_FOR_HTTP
diff --git a/libsoup/libsoup-2.4.sym b/libsoup/libsoup-2.4.sym
index 5596b4f..08892f8 100644
--- a/libsoup/libsoup-2.4.sym
+++ b/libsoup/libsoup-2.4.sym
@@ -19,6 +19,8 @@ _SOUP_URI_SCHEME_FTP
_SOUP_URI_SCHEME_HTTP
_SOUP_URI_SCHEME_HTTPS
_SOUP_URI_SCHEME_RESOURCE
+_SOUP_URI_SCHEME_WS
+_SOUP_URI_SCHEME_WSS
soup_add_completion
soup_add_idle
soup_add_io_watch
diff --git a/libsoup/soup-uri.c b/libsoup/soup-uri.c
index fcd7d53..b16927d 100644
--- a/libsoup/soup-uri.c
+++ b/libsoup/soup-uri.c
@@ -155,11 +155,30 @@
*
* Since: 2.42
*/
+/**
+ * SOUP_URI_SCHEME_WS:
+ *
+ * "ws" (WebSocket) as an interned string; you can compare this
+ * directly to a #SoupURI's <literal>scheme</literal> field using
+ * <literal>==</literal>.
+ *
+ * Since: 2.50
+ */
+/**
+ * SOUP_URI_SCHEME_WSS:
+ *
+ * "wss" (WebSocket over TLS) as an interned string; you can compare
+ * this directly to a #SoupURI's <literal>scheme</literal> field using
+ * <literal>==</literal>.
+ *
+ * Since: 2.50
+ */
static void append_uri_encoded (GString *str, const char *in, const char *extra_enc_chars);
static char *uri_normalized_copy (const char *str, int length, const char *unescape_extra);
gpointer _SOUP_URI_SCHEME_HTTP, _SOUP_URI_SCHEME_HTTPS;
+gpointer _SOUP_URI_SCHEME_WS, _SOUP_URI_SCHEME_WSS;
gpointer _SOUP_URI_SCHEME_FTP;
gpointer _SOUP_URI_SCHEME_FILE, _SOUP_URI_SCHEME_DATA, _SOUP_URI_SCHEME_RESOURCE;
@@ -172,6 +191,10 @@ soup_uri_parse_scheme (const char *scheme, int len)
return SOUP_URI_SCHEME_HTTPS;
} else if (len == 8 && !g_ascii_strncasecmp (scheme, "resource", len)) {
return SOUP_URI_SCHEME_RESOURCE;
+ } else if (len == 2 && !g_ascii_strncasecmp (scheme, "ws", len)) {
+ return SOUP_URI_SCHEME_WS;
+ } else if (len == 3 && !g_ascii_strncasecmp (scheme, "wss", len)) {
+ return SOUP_URI_SCHEME_WSS;
} else {
char *lower_scheme;
@@ -186,9 +209,9 @@ soup_uri_parse_scheme (const char *scheme, int len)
static inline guint
soup_scheme_default_port (const char *scheme)
{
- if (scheme == SOUP_URI_SCHEME_HTTP)
+ if (scheme == SOUP_URI_SCHEME_HTTP || scheme == SOUP_URI_SCHEME_WS)
return 80;
- else if (scheme == SOUP_URI_SCHEME_HTTPS)
+ else if (scheme == SOUP_URI_SCHEME_HTTPS || scheme == SOUP_URI_SCHEME_WSS)
return 443;
else if (scheme == SOUP_URI_SCHEME_FTP)
return 21;
diff --git a/libsoup/soup-uri.h b/libsoup/soup-uri.h
index fca97f7..35e670c 100644
--- a/libsoup/soup-uri.h
+++ b/libsoup/soup-uri.h
@@ -37,9 +37,12 @@ GType soup_uri_get_type (void);
#define SOUP_URI_SCHEME_FILE _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_FILE, "file")
#define SOUP_URI_SCHEME_DATA _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_DATA, "data")
#define SOUP_URI_SCHEME_RESOURCE _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_RESOURCE, "resource")
+#define SOUP_URI_SCHEME_WS _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_WS, "ws")
+#define SOUP_URI_SCHEME_WSS _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_WSS, "wss")
extern gpointer _SOUP_URI_SCHEME_HTTP, _SOUP_URI_SCHEME_HTTPS;
extern gpointer _SOUP_URI_SCHEME_FTP;
extern gpointer _SOUP_URI_SCHEME_FILE, _SOUP_URI_SCHEME_DATA, _SOUP_URI_SCHEME_RESOURCE;
+extern gpointer _SOUP_URI_SCHEME_WS, _SOUP_URI_SCHEME_WSS;
SoupURI *soup_uri_new_with_base (SoupURI *base,
const char *uri_string);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]