diff --git a/CMakeLists.txt b/CMakeLists.txt index fb8c69b..00dc923 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,7 +52,7 @@ option(TESSESFRAMEWORK_ENABLE_APPS "Enable Tesses Framework cli apps" ON) option(TESSESFRAMEWORK_INSTALL_DEVELOPMENT "Enable Installing Tesses Framework Development Packages" ON) option(TESSESFRAMEWORK_ENABLE_STATIC "Enable Tesses Framework Static Libraries" ON) option(TESSESFRAMEWORK_ENABLE_SHARED "Enable Tesses Framework Shared Libraries" ON) -option(TESSESFRAMEWORK_LOGTOFILE "TessesFramework Log to file" ON) +option(TESSESFRAMEWORK_LOGTOFILE "TessesFramework Log to file" OFF) file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include) diff --git a/src/Filesystem/MemoryFilesystem.cpp b/src/Filesystem/MemoryFilesystem.cpp index 07ef07d..2f04189 100644 --- a/src/Filesystem/MemoryFilesystem.cpp +++ b/src/Filesystem/MemoryFilesystem.cpp @@ -16,7 +16,11 @@ namespace Tesses::Framework::Filesystem { if(!this->canRead) return 0; if(this->pos >= this->data->file.size()) return 0; + #if defined(_WIN32) + size_t toRead = min(sz, (size_t)(this->data->file.size()-this->pos)); + #else size_t toRead = std::min(sz, (size_t)(this->data->file.size()-this->pos)); + #endif memcpy(buff, this->data->file.data() + this->pos, toRead); this->pos += toRead; diff --git a/src/Http/HttpServer.cpp b/src/Http/HttpServer.cpp index 01ec078..742fb8a 100644 --- a/src/Http/HttpServer.cpp +++ b/src/Http/HttpServer.cpp @@ -107,7 +107,11 @@ namespace Tesses::Framework::Http uint8_t finField = fin ? 0b10000000 : 0; uint8_t opcode2 = i == 0 ? opcode : 0; uint8_t firstByte = finField | (opcode2 & 0xF); + #if defined(_WIN32) + size_t len = min((size_t)4096,msg->data.size() - offset); + #else size_t len = std::min((size_t)4096,msg->data.size()- offset); + #endif strm->WriteByte(firstByte); write_len_bytes((uint64_t)len); strm->WriteBlock(msg->data.data() + offset,len); @@ -368,7 +372,11 @@ namespace Tesses::Framework::Http static bool parseUntillBoundaryEnd(Tesses::Framework::Streams::Stream* src, Tesses::Framework::Streams::Stream* dest, std::string boundary) { bool hasMore=true; + #if defined(_WIN32) + uint8_t* checkBuffer = new uint8_t[boundary.size()]; + #else uint8_t checkBuffer[boundary.size()]; + #endif int b; size_t i = 0; size_t i2 = 0; @@ -432,6 +440,9 @@ namespace Tesses::Framework::Http { dest->Write(buffer,offsetInMem); } + #if defined(_WIN32) + delete checkBuffer; + #endif return hasMore; } @@ -567,16 +578,16 @@ namespace Tesses::Framework::Http }); TF_LOG("Before printing interfaces"); - std::cout << "\e[34mInterfaces:\n"; + std::cout << "\x1B[34mInterfaces:\n"; for(auto _ip : NetworkStream::GetIPs()) { - std::cout << "\e[32m"; + std::cout << "\x1B[32m"; std::cout << _ip.first << ": "; - std::cout << "\e[35mhttp://"; + std::cout << "\x1B[35mhttp://"; std::cout << _ip.second << ":" << std::to_string(this->port) << "/\n"; } - if(!svr->IsValid()) std::cout << "\e[31mError, we failed to bind or something\e[39m\n" << std::endl; - std::cout << "\e[31mAlmost Ready to Listen\e[39m\n"; + if(!svr->IsValid()) std::cout << "\x1B[31mError, we failed to bind or something\x1B[39m\n" << std::endl; + std::cout << "\x1B[31mAlmost Ready to Listen\x1B[39m\n"; TF_LOG("After printing interfaces"); } HttpServer::~HttpServer() diff --git a/src/Http/HttpStream.cpp b/src/Http/HttpStream.cpp index 35c58e3..a30c4e1 100644 --- a/src/Http/HttpStream.cpp +++ b/src/Http/HttpStream.cpp @@ -57,7 +57,11 @@ namespace Tesses::Framework::Http if(this->length == 0) return 0; if(this->length > 0) { + #if defined(_WIN32) + len = min((size_t)(this->length - this->position), len); + #else len = std::min((size_t)(this->length - this->position), len); + #endif if(len > 0) len = this->strm->Read(buff,len); this->position += len; @@ -69,7 +73,11 @@ namespace Tesses::Framework::Http { if(this->offset < this->read) { + #if defined(_WIN32) + len = min((size_t)(this->read - this->offset), len); + #else len = std::min((size_t)(this->read - this->offset), len); + #endif if(len > 0) len = this->strm->Read(buff,len); this->offset += len; @@ -99,8 +107,12 @@ namespace Tesses::Framework::Http else { this->offset=0; + #if defined(_WIN32) + len = min((size_t)(this->read - this->offset), len); + #else len = std::min((size_t)(this->read - this->offset), len); + #endif if(len > 0) len = this->strm->Read(buff,len); this->offset += len; @@ -124,7 +136,11 @@ namespace Tesses::Framework::Http if(this->length == 0) return 0; if(this->length > 0) { + #if defined(_WIN32) + len = min((size_t)(this->length - this->position), len); + #else len = std::min((size_t)(this->length - this->position), len); + #endif if(len > 0) len = this->strm->Write(buff,len); this->position += len; diff --git a/src/Mail/Smtp.cpp b/src/Mail/Smtp.cpp index 6878727..c13879a 100644 --- a/src/Mail/Smtp.cpp +++ b/src/Mail/Smtp.cpp @@ -13,7 +13,11 @@ namespace Tesses::Framework::Mail size_t offset = 0; do { if(!first) myStr.append("\r\n"); + #if defined(_WIN32) + read = min(72, txt.size()-offset); + #else read = std::min(72, txt.size()-offset); + #endif if(read > 0) myStr.insert(myStr.end(),txt.begin()+offset,txt.begin()+offset+read); diff --git a/src/Streams/BufferedStream.cpp b/src/Streams/BufferedStream.cpp index 0d1c356..fa7d3dc 100644 --- a/src/Streams/BufferedStream.cpp +++ b/src/Streams/BufferedStream.cpp @@ -31,7 +31,11 @@ namespace Tesses::Framework::Streams { { if(this->offset < this->read) { + #if defined(_WIN32) + sz = min(sz,this->read-this->offset); + #else sz = std::min(sz,this->read-this->offset); + #endif memcpy(buff, this->buffer+this->offset, sz); this->offset+=sz; return sz; @@ -40,8 +44,11 @@ namespace Tesses::Framework::Streams { { this->read = this->strm->Read(this->buffer, this->bufferSize); this->offset=0; - + #if defined(_WIN32) + sz = min(sz,this->read-this->offset); + #else sz = std::min(sz,this->read-this->offset); + #endif memcpy(buff, this->buffer+this->offset, sz); this->offset+=sz; return sz; diff --git a/src/Streams/MemoryStream.cpp b/src/Streams/MemoryStream.cpp index 2134983..c8632d5 100644 --- a/src/Streams/MemoryStream.cpp +++ b/src/Streams/MemoryStream.cpp @@ -14,7 +14,11 @@ namespace Tesses::Framework::Streams size_t MemoryStream::Read(uint8_t* buff, size_t sz) { if(this->offset >= this->buffer.size()) return 0; + #if defined(_WIN32) + size_t toRead = min(sz, this->buffer.size()-this->offset); + #else size_t toRead = std::min(sz, this->buffer.size()-this->offset); + #endif memcpy(buff, this->buffer.data() + this->offset, toRead); this->offset += toRead; return toRead; diff --git a/src/Streams/NetworkStream.cpp b/src/Streams/NetworkStream.cpp index 1a6eb09..0481509 100644 --- a/src/Streams/NetworkStream.cpp +++ b/src/Streams/NetworkStream.cpp @@ -498,7 +498,7 @@ namespace Tesses::Framework::Streams { { if(!this->success) return 0; - ssize_t r = NETWORK_RECV(this->sock,(char*)buff,sz,0); + auto r = NETWORK_RECV(this->sock,(char*)buff,sz,0); if(r <= 0) { @@ -513,7 +513,7 @@ namespace Tesses::Framework::Streams { if(!this->success) return 0; - ssize_t sz2 = NETWORK_SEND(this->sock,(const char*)buff,sz, 0); + auto sz2 = NETWORK_SEND(this->sock,(const char*)buff,sz, 0); if(sz2 <= 0) { this->endOfStream=true; return 0; @@ -526,7 +526,7 @@ namespace Tesses::Framework::Streams { if(!this->success) return 0; struct sockaddr_storage storage; socklen_t addrlen=(socklen_t)sizeof(storage); - ssize_t r = NETWORK_RECVFROM(this->sock,(char*)buff,sz,0, (struct sockaddr*)&storage, (socklen_t*)&addrlen); + auto r = NETWORK_RECVFROM(this->sock,(char*)buff,sz,0, (struct sockaddr*)&storage, (socklen_t*)&addrlen); ip = StringifyIP((struct sockaddr*)&storage); port = GetPort((struct sockaddr*)&storage); if(r < 0) return 0; @@ -555,7 +555,7 @@ namespace Tesses::Framework::Streams { } SetPort((struct sockaddr*)&addr, port); - ssize_t sz2 = NETWORK_SENDTO(this->sock,(const char*)buff,sz, 0, (const sockaddr*)&addr, (socklen_t)sizeof(addr)); + auto sz2 = NETWORK_SENDTO(this->sock,(const char*)buff,sz, 0, (const sockaddr*)&addr, (socklen_t)sizeof(addr)); if(sz2 < 0) return 0; return (size_t)sz2; } diff --git a/src/Streams/Stream.cpp b/src/Streams/Stream.cpp index 3becabc..03aade7 100644 --- a/src/Streams/Stream.cpp +++ b/src/Streams/Stream.cpp @@ -100,13 +100,22 @@ namespace Tesses::Framework::Streams { void Stream::CopyTo(Stream& strm, size_t buffSize) { size_t read; + #if defined(_WIN32) + uint8_t* buffer = new uint8_t[buffSize]; + #else + uint8_t buffer[buffSize]; + #endif do { read = this->Read(buffer,buffSize); strm.WriteBlock(buffer, read); } while(read > 0); strm.Flush(); + + #if defined(_WIN32) + delete buffer; + #endif } Stream::~Stream() { diff --git a/src/TextStreams/StreamReader.cpp b/src/TextStreams/StreamReader.cpp index 09495b5..544eaf7 100644 --- a/src/TextStreams/StreamReader.cpp +++ b/src/TextStreams/StreamReader.cpp @@ -25,10 +25,17 @@ namespace Tesses::Framework::TextStreams { bool StreamReader::ReadBlock(std::string& str, size_t len) { + #if defined(_WIN32) + uint8_t* buff = new uint8_t[len]; + #else uint8_t buff[len]; + #endif len = strm->ReadBlock(buff,len); if(len == 0) return false; str.append((const char*)buff, len); + #if defined(_WIN32) + delete buff; + #endif return true; } StreamReader::~StreamReader()