summaryrefslogtreecommitdiff
authorharlekin <harlekin>2002-04-20 21:23:38 (UTC)
committer harlekin <harlekin>2002-04-20 21:23:38 (UTC)
commit679083ca18ddbf4762578d1aa010203ea188586c (patch) (side-by-side diff)
treeeada9fcd708aedbbe8c6ef207942125ce4ad97a9
parentb452044ec1b3327f25f8552045b4229c8af39bf7 (diff)
downloadopie-679083ca18ddbf4762578d1aa010203ea188586c.zip
opie-679083ca18ddbf4762578d1aa010203ea188586c.tar.gz
opie-679083ca18ddbf4762578d1aa010203ea188586c.tar.bz2
no / needed at the url end
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/libmad/libmadplugin.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/core/multimedia/opieplayer/libmad/libmadplugin.cpp b/core/multimedia/opieplayer/libmad/libmadplugin.cpp
index 4665408..7978805 100644
--- a/core/multimedia/opieplayer/libmad/libmadplugin.cpp
+++ b/core/multimedia/opieplayer/libmad/libmadplugin.cpp
@@ -215,82 +215,85 @@ int LibMadPlugin::tcp_open(char *address, int port) {
/**
* Read a http line header.
* This function read character by character.
* @param tcp_sock the socket use to read the stream
* @param buf a buffer to receive the data
* @param size size of the buffer
* @return the size of the stream read or -1 if an error occured
*/
int LibMadPlugin::http_read_line(int tcp_sock, char *buf, int size) {
int offset = 0;
do
{
if (std::read(tcp_sock, buf + offset, 1) < 0)
return -1;
if (buf[offset] != '\r') /* Strip \r from answer */
offset++;
}
while (offset < size - 1 && buf[offset - 1] != '\n');
buf[offset] = 0;
return offset;
}
int LibMadPlugin::http_open(const QString& path ) {
qDebug("Open http");
char *host;
int port;
char *request;
int tcp_sock;
char http_request[PATH_MAX];
char filename[PATH_MAX];
- char c;
+ // char c;
char *arg =strdup(path.latin1());
QString errorMsg;
/* Check for URL syntax */
// if (strncmp(arg, "http://", strlen("http://"))) {
// qDebug("Url syntax error");
// return (0);
// }
qDebug("Parse URL");
port = 80;
host = arg + strlen("http://");
- if ((request = strchr(host, '/')) == NULL) {
- qDebug("Url syntax 2error %s", host);
- return (0);
- }
+
+ // we need to think of something better than that
+ //if ((request = strchr(host, '/')) == NULL) {
+ // qDebug("Url syntax 2error %s", host);
+ // return (0);
+ // }
+
*request++ = 0;
if (strchr(host, ':') != NULL) /* port is specified */
{
port = atoi(strchr(host, ':') + 1);
*strchr(host, ':') = 0;
}
qDebug("Open a TCP socket");
if (!(tcp_sock = tcp_open(host, port))) {
perror("http_open");
errorMsg="http_open "+(QString)strerror(errno);
QMessageBox::message("OPiePlayer",errorMsg);
return (0);
}
snprintf(filename, sizeof(filename) - strlen(host) - 75, "%s", request);
/* Send HTTP GET request */
/* Please don't use a Agent know by shoutcast (Lynx, Mozilla) seems to be reconized and print
* a html page and not the stream */
snprintf(http_request, sizeof(http_request), "GET /%s HTTP/1.0\r\n"
/* "User-Agent: Mozilla/2.0 (Win95; I)\r\n" */
"Pragma: no-cache\r\n" "Host: %s\r\n" "Accept: */*\r\n" "\r\n", filename, host);
qDebug("send");
send(tcp_sock, http_request, strlen(http_request), 0);
qDebug("Parse server reply");
#if 0
qDebug("do 0");
do
read(tcp_sock, &c, sizeof(char));