[vlc-commits] HTTP/2 debug helpers
Rémi Denis-Courmont
git at videolan.org
Sun Dec 13 17:20:28 CET 2015
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sat Nov 21 19:09:46 2015 +0200| [a64f235daefbb66f488d21f50643ca959d12bff6] | committer: Rémi Denis-Courmont
HTTP/2 debug helpers
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a64f235daefbb66f488d21f50643ca959d12bff6
---
modules/access/http/h2frame.c | 41 +++++++++++++++++++++++++++++++++++++++++
modules/access/http/h2frame.h | 4 ++++
2 files changed, 45 insertions(+)
diff --git a/modules/access/http/h2frame.c b/modules/access/http/h2frame.c
index a342d03..7b80f6b 100644
--- a/modules/access/http/h2frame.c
+++ b/modules/access/http/h2frame.c
@@ -260,6 +260,23 @@ struct vlc_h2_frame *vlc_h2_frame_settings_ack(void)
0);
}
+const char *vlc_h2_setting_name(uint_fast16_t id)
+{
+ static const char names[][20] = {
+ [0] = "Unknown setting",
+ [VLC_H2_SETTING_HEADER_TABLE_SIZE] = "Header table size",
+ [VLC_H2_SETTING_ENABLE_PUSH] = "Enable push",
+ [VLC_H2_SETTING_MAX_CONCURRENT_STREAMS] = "Concurrent streams",
+ [VLC_H2_SETTING_INITIAL_WINDOW_SIZE] = "Initial window size",
+ [VLC_H2_SETTING_MAX_FRAME_SIZE] = "Frame size",
+ [VLC_H2_SETTING_MAX_HEADER_LIST_SIZE] = "Header list size",
+ };
+
+ if (id >= sizeof (names) / sizeof (names[0]) || names[id][0] == '\0')
+ id = 0;
+ return names[id];
+}
+
struct vlc_h2_frame *vlc_h2_frame_ping(uint64_t opaque)
{
struct vlc_h2_frame *f = vlc_h2_frame_alloc(VLC_H2_FRAME_PING, 0, 0, 8);
@@ -306,3 +323,27 @@ vlc_h2_frame_window_update(uint_fast32_t stream_id, uint_fast32_t credit)
}
return f;
}
+
+const char *vlc_h2_strerror(uint_fast32_t code)
+{
+ static const char names[][20] = {
+ [VLC_H2_NO_ERROR] = "No error",
+ [VLC_H2_PROTOCOL_ERROR] = "Protocol error",
+ [VLC_H2_INTERNAL_ERROR] = "Internal error",
+ [VLC_H2_FLOW_CONTROL_ERROR] = "Flow control error",
+ [VLC_H2_SETTINGS_TIMEOUT] = "Settings time-out",
+ [VLC_H2_STREAM_CLOSED] = "Stream closed",
+ [VLC_H2_FRAME_SIZE_ERROR] = "Frame size error",
+ [VLC_H2_REFUSED_STREAM] = "Refused stream",
+ [VLC_H2_CANCEL] = "Cancellation",
+ [VLC_H2_COMPRESSION_ERROR] = "Compression error",
+ [VLC_H2_CONNECT_ERROR] = "CONNECT error",
+ [VLC_H2_ENHANCE_YOUR_CALM] = "Excessive load",
+ [VLC_H2_INADEQUATE_SECURITY] = "Inadequate security",
+ [VLC_H2_HTTP_1_1_REQUIRED] = "Required HTTP/1.1",
+ };
+
+ if (code >= sizeof (names) / sizeof (names[0]) || names[code][0] == '\0')
+ return "Unknown error";
+ return names[code];
+}
diff --git a/modules/access/http/h2frame.h b/modules/access/http/h2frame.h
index 1079f1f..6673c79 100644
--- a/modules/access/http/h2frame.h
+++ b/modules/access/http/h2frame.h
@@ -61,6 +61,8 @@ enum vlc_h2_error {
VLC_H2_HTTP_1_1_REQUIRED,
};
+const char *vlc_h2_strerror(uint_fast32_t);
+
enum vlc_h2_setting {
VLC_H2_SETTING_HEADER_TABLE_SIZE = 0x0001,
VLC_H2_SETTING_ENABLE_PUSH,
@@ -70,6 +72,8 @@ enum vlc_h2_setting {
VLC_H2_SETTING_MAX_HEADER_LIST_SIZE,
};
+const char *vlc_h2_setting_name(uint_fast16_t);
+
/* Our settings */
#define VLC_H2_MAX_HEADER_TABLE 4096 /* Header (compression) table size */
#define VLC_H2_MAX_STREAMS 0 /* Concurrent peer-initiated streams */
More information about the vlc-commits
mailing list