?? patch_vlc-0.8.2
字號:
--- vlc-0.8.2/modules/misc/network/ipv4.c 2005-06-25 14:43:10.000000000 +0100+++ vlc-0.8.2UDP-Lite/modules/misc/network/ipv4.c 2006-06-08 20:17:48.000000000 +0100@@ -168,6 +168,8 @@ * Its use leads to great confusion and is currently discouraged. * This function returns -1 in case of error. *****************************************************************************/+/* XXX UDP-Lite (RFC 3828) hack */+#include <netinet/udplite.h> static int OpenUDP( vlc_object_t * p_this, network_socket_t * p_socket ) { char * psz_bind_addr = p_socket->psz_bind_addr;@@ -179,6 +181,7 @@ socklen_t i_opt_size; struct sockaddr_in sock; vlc_value_t val;+ int cscov = 8; /* (minimal) checksum coverage length for UDP-Lite */ /* If IP_ADD_SOURCE_MEMBERSHIP is not defined in the headers (because it's not in glibc for example), we have to define the@@ -192,18 +195,22 @@ }; #endif - /* Open a SOCK_DGRAM (UDP) socket, in the AF_INET domain, automatic (0)- * protocol */- if( (i_handle = socket( AF_INET, SOCK_DGRAM, 0 )) == -1 )+ /* Open a SOCK_DGRAM (*UDP-Lite*) socket, using the PF_INET domain */+ if( (i_handle = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDPLITE )) == -1 ) { #if defined(WIN32) || defined(UNDER_CE) msg_Warn( p_this, "cannot create socket (%i)", WSAGetLastError() ); #else- msg_Warn( p_this, "cannot create socket (%s)", strerror(errno) );+ msg_Warn( p_this, "Cannot create UDP-Lite socket (%s)", strerror(errno) ); #endif return( -1 ); } + /* set socket options at UDP-Lite socket level: receiver specifies minimal+ * required checksum coverage length, sender sets the exact checksum coverage */+ setsockopt(i_handle, SOL_UDPLITE, UDPLITE_RECV_CSCOV, &cscov, sizeof(int));+ setsockopt(i_handle, SOL_UDPLITE, UDPLITE_SEND_CSCOV, &cscov, sizeof(int));+ /* We may want to reuse an already used socket */ i_opt = 1; if( setsockopt( i_handle, SOL_SOCKET, SO_REUSEADDR,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -