summaryrefslogtreecommitdiff
authorspiralman <spiralman>2003-03-21 20:33:28 (UTC)
committer spiralman <spiralman>2003-03-21 20:33:28 (UTC)
commitdc1979978af5157e0a290175106f25bfdf1e9e0d (patch) (side-by-side diff)
treeecf9a634ce1bdfd04d4371a6ab8dc0f325792d37
parenteca4b3ca284e527d2a2580a74e8ba445aadca52f (diff)
downloadopie-dc1979978af5157e0a290175106f25bfdf1e9e0d.zip
opie-dc1979978af5157e0a290175106f25bfdf1e9e0d.tar.gz
opie-dc1979978af5157e0a290175106f25bfdf1e9e0d.tar.bz2
commented out debuging output and increased version to 0.1 (thought 0.0 was causing problems w/ ipkg)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/ubrowser/httpfactory.cpp8
-rw-r--r--noncore/net/ubrowser/opie-ubrowser.control2
2 files changed, 5 insertions, 5 deletions
diff --git a/noncore/net/ubrowser/httpfactory.cpp b/noncore/net/ubrowser/httpfactory.cpp
index b37e9f9..154d5d0 100644
--- a/noncore/net/ubrowser/httpfactory.cpp
+++ b/noncore/net/ubrowser/httpfactory.cpp
@@ -75,302 +75,302 @@ const QMimeSource * HttpFactory::data(const QString &abs_name) const
printf("%s %s %d\n", host.latin1(), file.latin1(), port);
if(port == 80)
{
portS="80";
}
// if(file.find(".png", file.length()-4) != -1 || file.find(".gif", file.length()-4) != -1 || file.find(".jpg", file.length()-4) != -1)
// {
// isImage=true;
// }
// comm->setStuff(host, portS, file, text, image, isImage);
// socket->connectToHost(host, port);
int con, bytesSent;
struct sockaddr_in serverAddr;
struct hostent * serverInfo = gethostbyname( host.latin1() );
if( serverInfo == NULL )
{
QMessageBox *mb = new QMessageBox("Error!",
"couldnt find ip address",
QMessageBox::NoIcon,
QMessageBox::Ok,
QMessageBox::NoButton,
QMessageBox::NoButton);
mb->exec();
perror("HttpFactory::data:");
return 0;
}
QByteArray data;
printf( "HttpFactory::data: %s\n", inet_ntoa(*((struct in_addr *)serverInfo->h_addr )) );
QString request("GET " + file + " HTTP/1.1\r\nHost: " + host + ':' + portS + "\r\nConnection: close\r\n\r\n");
con = socket( AF_INET, SOCK_STREAM, 0 );
if( con == -1 )
{
QMessageBox *mb = new QMessageBox("Error!",
"couldnt create socket",
QMessageBox::NoIcon,
QMessageBox::Ok,
QMessageBox::NoButton,
QMessageBox::NoButton);
mb->exec();
perror("HttpFactory::data:");
return 0;
}
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons( port );
serverAddr.sin_addr.s_addr = inet_addr( inet_ntoa(*((struct in_addr *)serverInfo->h_addr )) );
memset( &(serverAddr.sin_zero), '\0', 8 );
if(::connect( con, (struct sockaddr *)&serverAddr, sizeof(struct sockaddr)) == -1 )
{
QMessageBox *mb = new QMessageBox("Error!",
"couldnt connect to socket",
QMessageBox::NoIcon,
QMessageBox::Ok,
QMessageBox::NoButton,
QMessageBox::NoButton);
mb->exec();
perror("HttpFactory::data:");
return 0;
}
bytesSent = send( con, request.latin1(), request.length(), 0);
printf("HttpFactory::data: bytes written: %d out of: %d\n", bytesSent, request.length() );
printf("HttpFactory::data: request sent:\n%s", request.latin1());
data = this->processResponse( con, isText );
::close( con );
if(isText)
{
text->setText( QString( data ) );
return text;
}
else
{
image->setImage( QImage( data ) );
return image;
}
}
const QMimeSource * HttpFactory::data(const QString &abs_or_rel_name, const QString & context) const
{
printf("HttpFactory::data: using relative data func\n");
if(abs_or_rel_name.startsWith(context))
{
return data(abs_or_rel_name);
}
else
{
return data(context + abs_or_rel_name);
}
return 0;
}
const QByteArray HttpFactory::processResponse( int sockfd, bool &isText ) const
{
QByteArray inputBin( 1 );
QByteArray conClosedErr( 27 );
char conClosedErrMsg[] = "Connection to server closed";
QString currentLine;
bool done=false, chunked=false;
int dataLength = 0;
for( int i = 0; i < 27; i++)
{
conClosedErr[i] = conClosedErrMsg[i];
}
while( !done )
{
recv( sockfd, inputBin.data(), inputBin.size(), 0 );
currentLine += *(inputBin.data());
if( *(inputBin.data()) == '\n' )
{
if( currentLine.isEmpty() || currentLine.startsWith( "\r") )
{
printf( "HttpFactory::processResponse: end of header\n" );
if( chunked )
{
return recieveChunked( sockfd );
} else {
return recieveNormal( sockfd, dataLength );
}
done = true;
}
if( currentLine.contains( "Transfer-Encoding: chunked", false) >= 1 )
{
chunked = true;
printf( "HttpFactory::processResponse: chunked encoding\n" );
}
if( currentLine.contains( "Content-Type: text", false ) >= 1 )
{
isText = true;
printf( "HttpFactory::processResponse: content type text\n" );
if( currentLine.contains( "html", false ) >= 1)
{
browser->setTextFormat(Qt::RichText);
printf( "HttpFactory::processResponse: content type html\n" );
}
}
if( currentLine.contains( "Content-Type: image", false ) >= 1 )
{
isText = false;
printf( "HttpFactory::processResponse: content type image\n" );
}
if( currentLine.contains( "Content-Length", false ) >= 1 )
{
currentLine.remove( 0, 16 );
dataLength = currentLine.toInt();
printf( "HttpFactory::processResponse: content length: %d\n", dataLength );
}
if( currentLine.contains( "404", false ) >= 1 )
{
printf( "HttpFactory::processResponse: 404 error\n" );
return 0;
}
currentLine = "";
printf("HttpFactory::processResponse: reseting currentLine: %s\n", currentLine.latin1() );
}
}
}
const QByteArray HttpFactory::recieveNormal( int sockfd, int dataLen ) const
{
printf( "HttpFactory::recieveNormal: recieving w/out chunked encoding\n" );
QByteArray data( dataLen );
QByteArray temp( dataLen );
int recieved, i;
recieved = recv( sockfd, temp.data(), temp.size(), 0 );
- printf( "HttpFactory::recieveNormal: found some data: %s\n", (char *)temp.data() );
+// printf( "HttpFactory::recieveNormal: found some data: %s\n", (char *)temp.data() );
for( i = 0; i < recieved; i++ )
{
data[i] = temp[i];
}
dataLen -= recieved;
while( dataLen > 0 )
{
recieved = recv( sockfd, temp.data(), temp.size(), 0 );
dataLen -= recieved;
// printf( "HttpFactory::recieveNormal: found some more data: %s\n", (char *)temp.data() );
for( int j = 0; j < recieved; j++ )
{
data[i] = temp[j];
i++;
}
temp.fill('\0');
}
printf( "HttpFactory::recieveNormal: end of data\n" );
return data;
}
const QByteArray HttpFactory::recieveChunked( int sockfd ) const
{
printf( "HttpFactory::recieveChunked: recieving data with chunked encoding\n" );
QByteArray data;
QByteArray temp( 1 );
int recieved, i = 0, cSize = 0;
QString cSizeS;
- printf( "HttpFactory::recieveChunked: temp.size(): %d\n", temp.size() );
+// printf( "HttpFactory::recieveChunked: temp.size(): %d\n", temp.size() );
recv( sockfd, temp.data(), temp.size(), 0 );
while( *(temp.data()) != '\n' && *(temp.data()) != ';' )
{
// printf( "HttpFactory::recieveChunked: temp.size(): %d\n", temp.size() );
// printf( "HttpFactory::recieveChunked: temp.data(): %c\n", temp[0] );
cSizeS += temp[0];
recv( sockfd, temp.data(), temp.size(), 0 );
}
printf( "HttpFactory::recieveChunked: cSizeS: %s\n", cSizeS.latin1() );
cSize = cSizeS.toInt( 0, 16 );
printf( "HttpFactory::recieveChunked: first chunk of size: %d\n", cSize );
if( *(temp.data()) == ';' )
{
while( *(temp.data()) != '\n' )
{
recv( sockfd, temp.data(), temp.size(), 0 );
}
}
temp.fill( '\0', cSize );
data.fill( '\0', cSize );
while( cSize > 0 )
{
while( cSize > 0 )
{
recieved = recv( sockfd, temp.data(), temp.size(), 0 );
cSize -= recieved;
for( int j = 0; j < recieved; j++ )
{
data[i] = temp[j];
i++;
}
temp.fill('\0', cSize);
}
- printf( "HttpFactory::recieveChunked: current data:\n%s", data.data() );
+// printf( "HttpFactory::recieveChunked: current data:\n%s", data.data() );
temp.fill('\0', 1);
cSizeS = "";
cSize = 0;
recv( sockfd, temp.data(), temp.size(), 0 );
if( *(temp.data()) == '\r' )
{
recv( sockfd, temp.data(), temp.size(), 0 );
}
recv( sockfd, temp.data(), temp.size(), 0 );
while( *(temp.data()) != '\n' && *(temp.data()) != ';' )
{
// printf( "HttpFactory::recieveChunked: temp.size(): %d\n", temp.size() );
- printf( "HttpFactory::recieveChunked: temp.data(): %d\n", temp[0] );
+// printf( "HttpFactory::recieveChunked: temp.data(): %d\n", temp[0] );
cSizeS += temp[0];
recv( sockfd, temp.data(), temp.size(), 0 );
}
printf( "HttpFactory::recieveChunked: cSizeS: %s\n", cSizeS.latin1() );
cSize = cSizeS.toInt( 0, 16 );
printf( "HttpFactory::recieveChunked: next chunk of size: %d\n", cSize );
if( *(temp.data()) == ';' )
{
while( *(temp.data()) != '\n' )
{
recv( sockfd, temp.data(), temp.size(), 0 );
}
}
temp.fill( '\0', cSize );
data.resize( data.size() + cSize );
}
printf( "HttpFactory::recieveChunked: end of data\n" );
return data;
}
diff --git a/noncore/net/ubrowser/opie-ubrowser.control b/noncore/net/ubrowser/opie-ubrowser.control
index b60098b..17c716e 100644
--- a/noncore/net/ubrowser/opie-ubrowser.control
+++ b/noncore/net/ubrowser/opie-ubrowser.control
@@ -1,9 +1,9 @@
Files: bin/ubrowser apps/Applications/ubrowser.desktop pics/ubrowser/*.png
Priority: optional
Section: opie/applications
Maintainer: Thomas Stephens <spiralman@softhome.net>
Architecture: arm
-Version: 0.0-$SUB_VERSION
+Version: 0.1-$SUB_VERSION
Depends: opie-base
License: GPL
Description: a very small web browser