Changeset 831:38475738cd72 in roaraudio
- Timestamp:
- 09/27/08 01:15:12 (16 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/socket.c
r830 r831 728 728 729 729 int roar_socket_open_http (int mode, int fh, char * host, int port) { 730 return -1; 730 char buf[1024]; 731 int len; 732 733 if ( port == 0 || host == NULL ) 734 return -1; 735 736 if ( *host == '/' ) // AF_UNIX 737 return -1; 738 739 if ( (len = snprintf(buf, 1024, "CONNECT %s:%i HTTP/1.0\r\nUser-Agent: libroar\r\n\r\n", host, port)) == -1 ) 740 return -1; 741 742 if ( write(fh, buf, len) != len ) 743 return -1; 744 745 while ( (len = read(fh, buf, 1024)) ) { 746 if ( len == 1024 ) { // overlong lion 747 return -1; 748 } else if ( len == 2 && buf[0] == '\r' && buf[1] == '\n' ) { 749 break; 750 } else if ( len == 1 && (buf[0] == '\r' || buf[0] == '\n') ) { // bad proxy or devel trying to debug ;) 751 break; 752 } else if ( len >= 4 && buf[len-4] == '\r' && buf[len-3] == '\n' && buf[len-2] == '\r' && buf[len-1] == '\n' ) { 753 break; 754 } 755 } 756 757 return 0; 731 758 } 732 759
Note: See TracChangeset
for help on using the changeset viewer.