mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 16:32:45 +00:00 
			
		
		
		
	LibCore: Remove all remaining C prefix references
LibCore's GZip is also moved into the Core namespace with this change.
This commit is contained in:
		
							parent
							
								
									4a271430f8
								
							
						
					
					
						commit
						57f1c919df
					
				
					 17 changed files with 42 additions and 34 deletions
				
			
		|  | @ -31,7 +31,7 @@ The service is advised to set this flag using [`fcntl`(2)](../man2/fcntl.md) and | ||||||
| unset `SOCKET_TAKEOVER` from the environment in order not to confuse its | unset `SOCKET_TAKEOVER` from the environment in order not to confuse its | ||||||
| children. | children. | ||||||
| 
 | 
 | ||||||
| LibCore provides `CLocalServer::take_over_from_system_server()` method that | LibCore provides `Core::LocalServer::take_over_from_system_server()` method that | ||||||
| performs the service side of the socket takeover automatically. | performs the service side of the socket takeover automatically. | ||||||
| 
 | 
 | ||||||
| If a service is configured as *lazy*, SystemServer will actually listen on the | If a service is configured as *lazy*, SystemServer will actually listen on the | ||||||
|  |  | ||||||
|  | @ -31,7 +31,9 @@ | ||||||
| #include <limits.h> | #include <limits.h> | ||||||
| #include <stddef.h> | #include <stddef.h> | ||||||
| 
 | 
 | ||||||
| bool CGzip::is_compressed(const ByteBuffer& data) | namespace Core { | ||||||
|  | 
 | ||||||
|  | bool Gzip::is_compressed(const ByteBuffer& data) | ||||||
| { | { | ||||||
|     return data.size() > 2 && data[0] == 0x1F && data[1] == 0x8b; |     return data.size() > 2 && data[0] == 0x1F && data[1] == 0x8b; | ||||||
| } | } | ||||||
|  | @ -102,7 +104,7 @@ static Optional<ByteBuffer> get_gzip_payload(const ByteBuffer& data) | ||||||
|     return data.slice(current, new_size); |     return data.slice(current, new_size); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Optional<ByteBuffer> CGzip::decompress(const ByteBuffer& data) | Optional<ByteBuffer> Gzip::decompress(const ByteBuffer& data) | ||||||
| { | { | ||||||
|     ASSERT(is_compressed(data)); |     ASSERT(is_compressed(data)); | ||||||
| 
 | 
 | ||||||
|  | @ -145,3 +147,5 @@ Optional<ByteBuffer> CGzip::decompress(const ByteBuffer& data) | ||||||
| 
 | 
 | ||||||
|     return destination; |     return destination; | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -28,8 +28,12 @@ | ||||||
| #include <AK/Optional.h> | #include <AK/Optional.h> | ||||||
| #include <AK/String.h> | #include <AK/String.h> | ||||||
| 
 | 
 | ||||||
| class CGzip { | namespace Core { | ||||||
|  | 
 | ||||||
|  | class Gzip { | ||||||
| public: | public: | ||||||
|     static bool is_compressed(const ByteBuffer& data); |     static bool is_compressed(const ByteBuffer& data); | ||||||
|     static Optional<ByteBuffer> decompress(const ByteBuffer& data); |     static Optional<ByteBuffer> decompress(const ByteBuffer& data); | ||||||
| }; | }; | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -38,26 +38,26 @@ namespace Core { | ||||||
| static ByteBuffer handle_content_encoding(const ByteBuffer& buf, const String& content_encoding) | static ByteBuffer handle_content_encoding(const ByteBuffer& buf, const String& content_encoding) | ||||||
| { | { | ||||||
| #ifdef CHTTPJOB_DEBUG | #ifdef CHTTPJOB_DEBUG | ||||||
|     dbg() << "CHttpJob::handle_content_encoding: buf has content_encoding = " << content_encoding; |     dbg() << "HttpJob::handle_content_encoding: buf has content_encoding = " << content_encoding; | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|     if (content_encoding == "gzip") { |     if (content_encoding == "gzip") { | ||||||
|         if (!CGzip::is_compressed(buf)) { |         if (!Gzip::is_compressed(buf)) { | ||||||
|             dbg() << "CHttpJob::handle_content_encoding: buf is not gzip compressed!"; |             dbg() << "HttpJob::handle_content_encoding: buf is not gzip compressed!"; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| #ifdef CHTTPJOB_DEBUG | #ifdef CHTTPJOB_DEBUG | ||||||
|         dbg() << "CHttpJob::handle_content_encoding: buf is gzip compressed!"; |         dbg() << "HttpJob::handle_content_encoding: buf is gzip compressed!"; | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|         auto uncompressed = CGzip::decompress(buf); |         auto uncompressed = Gzip::decompress(buf); | ||||||
|         if (!uncompressed.has_value()) { |         if (!uncompressed.has_value()) { | ||||||
|             dbg() << "CHttpJob::handle_content_encoding: Gzip::decompress() failed. Returning original buffer."; |             dbg() << "HttpJob::handle_content_encoding: Gzip::decompress() failed. Returning original buffer."; | ||||||
|             return buf; |             return buf; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| #ifdef CHTTPJOB_DEBUG | #ifdef CHTTPJOB_DEBUG | ||||||
|         dbg() << "CHttpJob::handle_content_encoding: Gzip::decompress() successful.\n" |         dbg() << "HttpJob::handle_content_encoding: Gzip::decompress() successful.\n" | ||||||
|               << "  Input size = " << buf.size() << "\n" |               << "  Input size = " << buf.size() << "\n" | ||||||
|               << "  Output size = " << uncompressed.value().size(); |               << "  Output size = " << uncompressed.value().size(); | ||||||
| #endif | #endif | ||||||
|  | @ -81,7 +81,7 @@ void HttpJob::on_socket_connected() | ||||||
| { | { | ||||||
|     auto raw_request = m_request.to_raw_request(); |     auto raw_request = m_request.to_raw_request(); | ||||||
| #if 0 | #if 0 | ||||||
|     dbg() << "CHttpJob: raw_request:"; |     dbg() << "HttpJob: raw_request:"; | ||||||
|     dbg() << String::copy(raw_request).characters(); |     dbg() << String::copy(raw_request).characters(); | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | @ -97,18 +97,18 @@ void HttpJob::on_socket_connected() | ||||||
|                 return; |                 return; | ||||||
|             auto line = m_socket->read_line(PAGE_SIZE); |             auto line = m_socket->read_line(PAGE_SIZE); | ||||||
|             if (line.is_null()) { |             if (line.is_null()) { | ||||||
|                 fprintf(stderr, "CHttpJob: Expected HTTP status\n"); |                 fprintf(stderr, "HttpJob: Expected HTTP status\n"); | ||||||
|                 return deferred_invoke([this](auto&) { did_fail(NetworkJob::Error::TransmissionFailed); }); |                 return deferred_invoke([this](auto&) { did_fail(NetworkJob::Error::TransmissionFailed); }); | ||||||
|             } |             } | ||||||
|             auto parts = String::copy(line, Chomp).split(' '); |             auto parts = String::copy(line, Chomp).split(' '); | ||||||
|             if (parts.size() < 3) { |             if (parts.size() < 3) { | ||||||
|                 fprintf(stderr, "CHttpJob: Expected 3-part HTTP status, got '%s'\n", line.data()); |                 fprintf(stderr, "HttpJob: Expected 3-part HTTP status, got '%s'\n", line.data()); | ||||||
|                 return deferred_invoke([this](auto&) { did_fail(NetworkJob::Error::ProtocolFailed); }); |                 return deferred_invoke([this](auto&) { did_fail(NetworkJob::Error::ProtocolFailed); }); | ||||||
|             } |             } | ||||||
|             bool ok; |             bool ok; | ||||||
|             m_code = parts[1].to_uint(ok); |             m_code = parts[1].to_uint(ok); | ||||||
|             if (!ok) { |             if (!ok) { | ||||||
|                 fprintf(stderr, "CHttpJob: Expected numeric HTTP status\n"); |                 fprintf(stderr, "HttpJob: Expected numeric HTTP status\n"); | ||||||
|                 return deferred_invoke([this](auto&) { did_fail(NetworkJob::Error::ProtocolFailed); }); |                 return deferred_invoke([this](auto&) { did_fail(NetworkJob::Error::ProtocolFailed); }); | ||||||
|             } |             } | ||||||
|             m_state = State::InHeaders; |             m_state = State::InHeaders; | ||||||
|  | @ -119,7 +119,7 @@ void HttpJob::on_socket_connected() | ||||||
|                 return; |                 return; | ||||||
|             auto line = m_socket->read_line(PAGE_SIZE); |             auto line = m_socket->read_line(PAGE_SIZE); | ||||||
|             if (line.is_null()) { |             if (line.is_null()) { | ||||||
|                 fprintf(stderr, "CHttpJob: Expected HTTP header\n"); |                 fprintf(stderr, "HttpJob: Expected HTTP header\n"); | ||||||
|                 return did_fail(NetworkJob::Error::ProtocolFailed); |                 return did_fail(NetworkJob::Error::ProtocolFailed); | ||||||
|             } |             } | ||||||
|             auto chomped_line = String::copy(line, Chomp); |             auto chomped_line = String::copy(line, Chomp); | ||||||
|  | @ -129,18 +129,18 @@ void HttpJob::on_socket_connected() | ||||||
|             } |             } | ||||||
|             auto parts = chomped_line.split(':'); |             auto parts = chomped_line.split(':'); | ||||||
|             if (parts.is_empty()) { |             if (parts.is_empty()) { | ||||||
|                 fprintf(stderr, "CHttpJob: Expected HTTP header with key/value\n"); |                 fprintf(stderr, "HttpJob: Expected HTTP header with key/value\n"); | ||||||
|                 return deferred_invoke([this](auto&) { did_fail(NetworkJob::Error::ProtocolFailed); }); |                 return deferred_invoke([this](auto&) { did_fail(NetworkJob::Error::ProtocolFailed); }); | ||||||
|             } |             } | ||||||
|             auto name = parts[0]; |             auto name = parts[0]; | ||||||
|             if (chomped_line.length() < name.length() + 2) { |             if (chomped_line.length() < name.length() + 2) { | ||||||
|                 fprintf(stderr, "CHttpJob: Malformed HTTP header: '%s' (%zu)\n", chomped_line.characters(), chomped_line.length()); |                 fprintf(stderr, "HttpJob: Malformed HTTP header: '%s' (%zu)\n", chomped_line.characters(), chomped_line.length()); | ||||||
|                 return deferred_invoke([this](auto&) { did_fail(NetworkJob::Error::ProtocolFailed); }); |                 return deferred_invoke([this](auto&) { did_fail(NetworkJob::Error::ProtocolFailed); }); | ||||||
|             } |             } | ||||||
|             auto value = chomped_line.substring(name.length() + 2, chomped_line.length() - name.length() - 2); |             auto value = chomped_line.substring(name.length() + 2, chomped_line.length() - name.length() - 2); | ||||||
|             m_headers.set(name, value); |             m_headers.set(name, value); | ||||||
| #ifdef CHTTPJOB_DEBUG | #ifdef CHTTPJOB_DEBUG | ||||||
|             dbg() << "CHttpJob: [" << name << "] = '" << value << "'"; |             dbg() << "HttpJob: [" << name << "] = '" << value << "'"; | ||||||
| #endif | #endif | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|  | @ -192,7 +192,7 @@ void HttpJob::start() | ||||||
|     m_socket = TCPSocket::construct(this); |     m_socket = TCPSocket::construct(this); | ||||||
|     m_socket->on_connected = [this] { |     m_socket->on_connected = [this] { | ||||||
| #ifdef CHTTPJOB_DEBUG | #ifdef CHTTPJOB_DEBUG | ||||||
|         dbg() << "CHttpJob: on_connected callback"; |         dbg() << "HttpJob: on_connected callback"; | ||||||
| #endif | #endif | ||||||
|         on_socket_connected(); |         on_socket_connected(); | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|  | @ -104,7 +104,7 @@ ByteBuffer IODevice::read(size_t max_size) | ||||||
| 
 | 
 | ||||||
| bool IODevice::can_read_from_fd() const | bool IODevice::can_read_from_fd() const | ||||||
| { | { | ||||||
|     // FIXME: Can we somehow remove this once CSocket is implemented using non-blocking sockets?
 |     // FIXME: Can we somehow remove this once Core::Socket is implemented using non-blocking sockets?
 | ||||||
|     fd_set rfds; |     fd_set rfds; | ||||||
|     FD_ZERO(&rfds); |     FD_ZERO(&rfds); | ||||||
|     FD_SET(m_fd, &rfds); |     FD_SET(m_fd, &rfds); | ||||||
|  |  | ||||||
|  | @ -37,7 +37,7 @@ namespace Core { | ||||||
| LocalSocket::LocalSocket(int fd, Object* parent) | LocalSocket::LocalSocket(int fd, Object* parent) | ||||||
|     : Socket(Socket::Type::Local, parent) |     : Socket(Socket::Type::Local, parent) | ||||||
| { | { | ||||||
|     // NOTE: This constructor is used by CLocalServer::accept(), so the socket is already connected.
 |     // NOTE: This constructor is used by LocalServer::accept(), so the socket is already connected.
 | ||||||
|     m_connected = true; |     m_connected = true; | ||||||
|     set_fd(fd); |     set_fd(fd); | ||||||
|     set_mode(IODevice::ReadWrite); |     set_mode(IODevice::ReadWrite); | ||||||
|  |  | ||||||
|  | @ -40,7 +40,7 @@ HashMap<pid_t, Core::ProcessStatistics> ProcessStatisticsReader::get_all() | ||||||
| { | { | ||||||
|     auto file = Core::File::construct("/proc/all"); |     auto file = Core::File::construct("/proc/all"); | ||||||
|     if (!file->open(Core::IODevice::ReadOnly)) { |     if (!file->open(Core::IODevice::ReadOnly)) { | ||||||
|         fprintf(stderr, "CProcessStatisticsReader: Failed to open /proc/all: %s\n", file->error_string()); |         fprintf(stderr, "ProcessStatisticsReader: Failed to open /proc/all: %s\n", file->error_string()); | ||||||
|         return {}; |         return {}; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -77,7 +77,7 @@ public: | ||||||
|         case Type::Local: |         case Type::Local: | ||||||
|             return m_local_address; |             return m_local_address; | ||||||
|         default: |         default: | ||||||
|             return "[CSocketAddress]"; |             return "[SocketAddress]"; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -33,7 +33,7 @@ namespace Core { | ||||||
| TCPSocket::TCPSocket(int fd, Object* parent) | TCPSocket::TCPSocket(int fd, Object* parent) | ||||||
|     : Socket(Socket::Type::TCP, parent) |     : Socket(Socket::Type::TCP, parent) | ||||||
| { | { | ||||||
|     // NOTE: This constructor is used by CTCPServer::accept(), so the socket is already connected.
 |     // NOTE: This constructor is used by TCPServer::accept(), so the socket is already connected.
 | ||||||
|     m_connected = true; |     m_connected = true; | ||||||
|     set_fd(fd); |     set_fd(fd); | ||||||
|     set_mode(IODevice::ReadWrite); |     set_mode(IODevice::ReadWrite); | ||||||
|  |  | ||||||
|  | @ -33,7 +33,7 @@ namespace Core { | ||||||
| UdpSocket::UdpSocket(int fd, Object* parent) | UdpSocket::UdpSocket(int fd, Object* parent) | ||||||
|     : Socket(Socket::Type::UDP, parent) |     : Socket(Socket::Type::UDP, parent) | ||||||
| { | { | ||||||
|     // NOTE: This constructor is used by CUdpServer::accept(), so the socket is already connected.
 |     // NOTE: This constructor is used by UdpServer::accept(), so the socket is already connected.
 | ||||||
|     m_connected = true; |     m_connected = true; | ||||||
|     set_fd(fd); |     set_fd(fd); | ||||||
|     set_mode(IODevice::ReadWrite); |     set_mode(IODevice::ReadWrite); | ||||||
|  |  | ||||||
|  | @ -69,7 +69,7 @@ int Application::exec() | ||||||
| { | { | ||||||
|     int exit_code = m_event_loop->exec(); |     int exit_code = m_event_loop->exec(); | ||||||
|     // NOTE: Maybe it would be cool to return instead of exit()?
 |     // NOTE: Maybe it would be cool to return instead of exit()?
 | ||||||
|     //       This would require cleaning up all the CObjects on the heap.
 |     //       This would require cleaning up all the Core::Objects on the heap.
 | ||||||
|     exit(exit_code); |     exit(exit_code); | ||||||
|     return exit_code; |     return exit_code; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -95,7 +95,7 @@ void FileSystemModel::Node::traverse_if_needed(const FileSystemModel& model) | ||||||
|     auto full_path = this->full_path(model); |     auto full_path = this->full_path(model); | ||||||
|     Core::DirIterator di(full_path, Core::DirIterator::SkipDots); |     Core::DirIterator di(full_path, Core::DirIterator::SkipDots); | ||||||
|     if (di.has_error()) { |     if (di.has_error()) { | ||||||
|         fprintf(stderr, "CDirIterator: %s\n", di.error_string()); |         fprintf(stderr, "DirIterator: %s\n", di.error_string()); | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -45,7 +45,7 @@ GFontDatabase::GFontDatabase() | ||||||
| { | { | ||||||
|     Core::DirIterator di("/res/fonts", Core::DirIterator::SkipDots); |     Core::DirIterator di("/res/fonts", Core::DirIterator::SkipDots); | ||||||
|     if (di.has_error()) { |     if (di.has_error()) { | ||||||
|         fprintf(stderr, "CDirIterator: %s\n", di.error_string()); |         fprintf(stderr, "DirIterator: %s\n", di.error_string()); | ||||||
|         exit(1); |         exit(1); | ||||||
|     } |     } | ||||||
|     while (di.has_next()) { |     while (di.has_next()) { | ||||||
|  |  | ||||||
|  | @ -176,7 +176,7 @@ bool copy_directory(String src_path, String dst_path) | ||||||
|     } |     } | ||||||
|     Core::DirIterator di(src_path, Core::DirIterator::SkipDots); |     Core::DirIterator di(src_path, Core::DirIterator::SkipDots); | ||||||
|     if (di.has_error()) { |     if (di.has_error()) { | ||||||
|         fprintf(stderr, "cp: CDirIterator: %s\n", di.error_string()); |         fprintf(stderr, "cp: DirIterator: %s\n", di.error_string()); | ||||||
|         return false; |         return false; | ||||||
|     } |     } | ||||||
|     while (di.has_next()) { |     while (di.has_next()) { | ||||||
|  |  | ||||||
|  | @ -44,7 +44,7 @@ static int handle_show_all() | ||||||
| { | { | ||||||
|     Core::DirIterator di("/res/wallpapers", Core::DirIterator::SkipDots); |     Core::DirIterator di("/res/wallpapers", Core::DirIterator::SkipDots); | ||||||
|     if (di.has_error()) { |     if (di.has_error()) { | ||||||
|         fprintf(stderr, "CDirIterator: %s\n", di.error_string()); |         fprintf(stderr, "DirIterator: %s\n", di.error_string()); | ||||||
|         return 1; |         return 1; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -78,7 +78,7 @@ static int handle_show_all() | ||||||
| { | { | ||||||
|     Core::DirIterator di("/proc/sys", Core::DirIterator::SkipDots); |     Core::DirIterator di("/proc/sys", Core::DirIterator::SkipDots); | ||||||
|     if (di.has_error()) { |     if (di.has_error()) { | ||||||
|         fprintf(stderr, "CDirIterator: %s\n", di.error_string()); |         fprintf(stderr, "DirIterator: %s\n", di.error_string()); | ||||||
|         return 1; |         return 1; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -75,7 +75,7 @@ off_t find_seek_pos(Core::File& file, int wanted_lines) | ||||||
|     off_t end = pos; |     off_t end = pos; | ||||||
|     int lines = 0; |     int lines = 0; | ||||||
| 
 | 
 | ||||||
|     // FIXME: Reading char-by-char is only OK if CIODevice's read buffer
 |     // FIXME: Reading char-by-char is only OK if IODevice's read buffer
 | ||||||
|     // is smart enough to not read char-by-char. Fix it there, or fix it here :)
 |     // is smart enough to not read char-by-char. Fix it there, or fix it here :)
 | ||||||
|     for (; pos >= 0; pos--) { |     for (; pos >= 0; pos--) { | ||||||
|         file.seek(pos); |         file.seek(pos); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Shannon Booth
						Shannon Booth