summaryrefslogtreecommitdiff
path: root/tools/socket.c
diff options
context:
space:
mode:
authorFrank Schmirler <vdr@schmirler.de>2010-12-02 08:59:14 +0100
committerFrank Schmirler <vdr@schmirler.de>2010-12-02 08:59:14 +0100
commit5a270cc3ab659a98b4bb674acb77982f7e1ecb14 (patch)
tree5f2f51c096f192a9b32af9ffd8244eeb6637ad06 /tools/socket.c
parente6249bf957a943920b11abbd9efac1efa18b1d00 (diff)
downloadvdr-plugin-streamdev-5a270cc3ab659a98b4bb674acb77982f7e1ecb14.tar.gz
vdr-plugin-streamdev-5a270cc3ab659a98b4bb674acb77982f7e1ecb14.tar.bz2
Snapshot 2007-05-09
Diffstat (limited to 'tools/socket.c')
-rw-r--r--tools/socket.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/tools/socket.c b/tools/socket.c
index 4b5167d..e9266c5 100644
--- a/tools/socket.c
+++ b/tools/socket.c
@@ -6,6 +6,15 @@
#include <errno.h>
#include <fcntl.h>
+// default class: best effort
+#define DSCP_BE 0
+// gold class (video): assured forwarding 4 with lowest drop precedence
+#define DSCP_AF41 34 << 2
+// premium class (voip): expedited forwarding
+#define DSCP_EF 46 << 2
+// actual DSCP value used
+#define STREAMDEV_DSCP DSCP_AF41
+
cTBSocket::cTBSocket(int Type) {
memset(&m_LocalAddr, 0, sizeof(m_LocalAddr));
memset(&m_RemoteAddr, 0, sizeof(m_RemoteAddr));
@@ -141,3 +150,8 @@ bool cTBSocket::Shutdown(int how) {
return ::shutdown(*this, how) != -1;
}
+
+bool cTBSocket::SetDSCP(void) {
+ int dscp = STREAMDEV_DSCP;
+ return ::setsockopt(*this, SOL_IP, IP_TOS, &dscp, sizeof(dscp)) != -1;
+}