Squashed 'third_party/rawrtc/rawrtc-data-channel/' content from commit 7b1b8d57c

Change-Id: I84850720e2b51961981d55f67238f4d282314fff
git-subtree-dir: third_party/rawrtc/rawrtc-data-channel
git-subtree-split: 7b1b8d57c6d07da18cc0de8bbca8cc5e8bd06eae
diff --git a/src/sctp_transport/utils.c b/src/sctp_transport/utils.c
new file mode 100644
index 0000000..7c69e5b
--- /dev/null
+++ b/src/sctp_transport/utils.c
@@ -0,0 +1,38 @@
+#include <rawrtcdc/sctp_transport.h>
+
+/*
+ * Get the corresponding name for an SCTP transport state.
+ */
+char const* rawrtc_sctp_transport_state_to_name(enum rawrtc_sctp_transport_state const state) {
+    switch (state) {
+        case RAWRTC_SCTP_TRANSPORT_STATE_NEW:
+            return "new";
+        case RAWRTC_SCTP_TRANSPORT_STATE_CONNECTING:
+            return "connecting";
+        case RAWRTC_SCTP_TRANSPORT_STATE_CONNECTED:
+            return "connected";
+        case RAWRTC_SCTP_TRANSPORT_STATE_CLOSED:
+            return "closed";
+        default:
+            return "???";
+    }
+}
+
+/*
+ * Get the corresponding name for a congestion control algorithm.
+ */
+char const* rawrtc_sctp_transport_congestion_ctrl_algorithm_to_name(
+    enum rawrtc_sctp_transport_congestion_ctrl const algorithm) {
+    switch (algorithm) {
+        case RAWRTC_SCTP_TRANSPORT_CONGESTION_CTRL_RFC2581:
+            return "RFC2581";
+        case RAWRTC_SCTP_TRANSPORT_CONGESTION_CTRL_HSTCP:
+            return "HSTCP";
+        case RAWRTC_SCTP_TRANSPORT_CONGESTION_CTRL_HTCP:
+            return "HTCP";
+        case RAWRTC_SCTP_TRANSPORT_CONGESTION_CTRL_RTCC:
+            return "RTCC";
+        default:
+            return "???";
+    }
+}