annotate libmpdemux/network.h @ 7492:5465cbd5c5ef

Modern versions of OpenSSH listen on localhost to forward the X11 connection (X11UseLocalhost defaults to yes). The following patch permits to consider as non local any DISPLAY environment which port is greater or equal to 10 else mplayer tries a local optimization on a distant X server which doesn't work. patch by Denis.Ducamp@groar.org
author arpi
date Mon, 23 Sep 2002 21:17:30 +0000
parents 2c34499ef4af
children 60624e692b95
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
903
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
1 /*
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
2 * Network layer for MPlayer
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
3 * by Bertrand BAUDET <bertrand_baudet@yahoo.com>
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
4 * (C) 2001, MPlayer team.
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
5 */
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
6
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
7 #ifndef __NETWORK_H
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
8 #define __NETWORK_H
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
9
3424
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
10 #include <fcntl.h>
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
11 #include <netdb.h>
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
12 #include <netinet/in.h>
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
13 #include <sys/time.h>
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
14 #include <sys/types.h>
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
15 #include <sys/socket.h>
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
16 #include <arpa/inet.h>
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
17
903
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
18 #include "url.h"
6455
c4078c1f9d53 Added a function prototype for reuse outside of network.c
bertrand
parents: 4729
diff changeset
19 #include "http.h"
4046
f732854e3d16 Kept the HTTP connection open after autodetect, so
bertrand
parents: 3453
diff changeset
20 #include "stream.h"
903
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
21
999
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
22 #define BUFFER_SIZE 2048
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
23
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
24 typedef enum {
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
25 streaming_stopped_e,
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
26 streaming_playing_e
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
27 } streaming_status;
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
28
3042
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
29 typedef struct streaming_control {
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
30 URL_t *url;
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
31 streaming_status status;
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
32 int buffering; // boolean
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
33 unsigned int prebuffer_size;
999
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
34 char *buffer;
3042
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
35 unsigned int buffer_size;
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
36 unsigned int buffer_pos;
6641
2cdaadd779ac Added the bandwidth variable. Used to set the max download bandwidth
bertrand
parents: 6455
diff changeset
37 unsigned int bandwidth; // The downstream available
3042
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
38 int (*streaming_read)( int fd, char *buffer, int buffer_size, struct streaming_control *stream_ctrl );
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
39 int (*streaming_seek)( int fd, off_t pos, struct streaming_control *stream_ctrl );
3453
10577da4a7b1 Added a data field in the streaming_ctrl_t struct, to store any
bertrand
parents: 3428
diff changeset
40 void *data;
999
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
41 } streaming_ctrl_t;
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
42
4729
f51bd827ed1c fixed MP3 ICY detection, return detected file format for open_stream
alex
parents: 4251
diff changeset
43 //int streaming_start( stream_t *stream, int *demuxer_type, URL_t *url );
4046
f732854e3d16 Kept the HTTP connection open after autodetect, so
bertrand
parents: 3453
diff changeset
44
3042
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
45 int streaming_bufferize( streaming_ctrl_t *streaming_ctrl, char *buffer, int size);
999
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
46
3042
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
47 int nop_streaming_read( int fd, char *buffer, int size, streaming_ctrl_t *stream_ctrl );
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
48 int nop_streaming_seek( int fd, off_t pos, streaming_ctrl_t *stream_ctrl );
841
c906b7600fc6 Included "netdb.h" file needed.
bertrand
parents:
diff changeset
49
3428
9acbded8e5ba Added the connect2Server prototype.
bertrand
parents: 3424
diff changeset
50 int connect2Server(char *host, int port);
9acbded8e5ba Added the connect2Server prototype.
bertrand
parents: 3424
diff changeset
51
6455
c4078c1f9d53 Added a function prototype for reuse outside of network.c
bertrand
parents: 4729
diff changeset
52 int http_send_request(URL_t *url);
c4078c1f9d53 Added a function prototype for reuse outside of network.c
bertrand
parents: 4729
diff changeset
53 HTTP_header_t *http_read_response(int fd);
c4078c1f9d53 Added a function prototype for reuse outside of network.c
bertrand
parents: 4729
diff changeset
54
7135
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
55 /*
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
56 * Joey Parrish <joey@yunamusic.com>:
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
57 *
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
58 * This define is to allow systems without inet_pton() to fallback on
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
59 * inet_aton(). The difference between the two is that inet_aton() is
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
60 * strictly for IPv4 networking, while inet_pton() is for IPv4 and IPv6
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
61 * both. Slightly limited network functionality seems better than no
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
62 * network functionality to me, and as all systems (Cygwin) start to
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
63 * implement inet_pton(), configure will decide not to use this code.
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
64 */
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
65 #ifdef USE_ATON
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
66 # define inet_pton(a, b, c) inet_aton(b, c)
841
c906b7600fc6 Included "netdb.h" file needed.
bertrand
parents:
diff changeset
67 #endif
7135
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
68
2c34499ef4af inet_aton fallback support by Joey Parrish <joey@yunamusic.com>
bertrand
parents: 6641
diff changeset
69 #endif