summaryrefslogtreecommitdiff
path: root/Libraries/LibCore
AgeCommit message (Collapse)Author
2020-05-29LibCore+Inspector: Move RPC sockets to /tmp/rpcSergey Bugaev
We have a hierarchical filesystem, let's make use of it :^)
2020-05-29LibCore: Do not assert that we can start the RPC serverSergey Bugaev
Now that the Shell uses Core::EventLoop, we can't afford to just crash if /tmp is unwritable.
2020-05-26AK: Rename FileSystemPath -> LexicalPathSergey Bugaev
And move canonicalized_path() to a static method on LexicalPath. This is to make it clear that FileSystemPath/canonicalized_path() only perform *lexical* canonicalization.
2020-05-23Build: Make Lagom build under macOS (#2341)Marcin Gasperowicz
Lagom now builds under macOS. Only two minor adjustments were required: * LibCore TCP/UDP code can't use `SOCK_{NONBLOCK,CLOEXEC}` on macOS, use ioctl() and fcntl() instead * LibJS `Heap` code pthread usage ported to MacOS
2020-05-18LibCore+LibTLS: Don't keep a "ready to write" notifier on all SocketsAndreas Kling
The "ready to write" notifier we set up in generic socket connection is really only meant to detect a successful connection. Once we have a TCP connection, for example, it will fire on every event loop iteration. This was causing IRC Client to max out the CPU by getting this no-op notifier callback over and over. Since this was only used by TLSv12, I changed that code to create its own notifier instead. It might be possible to improve TLS performance by only processing writes when actually needed, but I didn't look very closely at that for this patch. :^)
2020-05-17LibCore: Allow ArgsParser::parse() to not exit on failureAnotherTest
This allows its use in places where multiple calls to ArgsParser::parse() are needed, such as Shell builtins.
2020-05-17LibCore: Reset getopt's state when starting parse()AnotherTest
This way, a program can use ArgsParser multiple times, potentially with multiple different options.
2020-05-16LibCore: Always wait_for_events() when pumping the event loopAndreas Kling
This fixes an issue where continuously posting new events to the queue would keep the event loop saturated, causing it to ignore notifiers. Since notifiers are part of the big select(), we always have to call wait_for_events() even if there are pending events. We're already smart enough to select() without a timeout if we already have pending events.
2020-05-15LibCore: Fix timer expiration processingSergey Bugaev
The previous code did not account for the case when there are timers present, but none are enabled, and used a zero polling timeout. Fixes https://github.com/SerenityOS/serenity/issues/2222
2020-05-15LibCore: Make IODevice::can_read_line() constAnotherTest
This also makes LibHTTP's Job::can_read_line() const, as IODevice was keeping that from being const. Fixes #2219
2020-05-14Build: Switch to CMake :^)Sergey Bugaev
Closes https://github.com/SerenityOS/serenity/issues/2080
2020-05-09LibDesktop: Switch to LaunchServer for DesktopServices::openNicholas Hollett
Moves DirectoryServices out of LibCore (because we need to link with LibIPC), renames it Desktop::Launcher (because Desktop::DesktopServices doesn't scan right) and ports it to use the LaunchServer which is now responsible for starting programs for a file.
2020-05-08LibCore: DesktopServices, open fonts with FontEditorHüseyin ASLITÜRK
2020-05-07LibCore: Add a primitive comparison function to DateTimeAnotherTest
This should go away when we get the ability to parse strings to DateTime's.
2020-05-06Misc: Replace "String(string_view)" with "string_view.to_string()"Linus Groh
StringView::to_string() was added in 917ccb1 but not actually used anywhere yet.
2020-05-05LibCore: Add a standard downloads directory (~/Downloads)Andreas Kling
2020-05-03ProtocolServer: Implement and handle download progressAnotherTest
Also updates `pro` to display download progress and speed on stderr
2020-05-02LibCore+LibHTTP: Move out the HTTP handler and add HTTPSAnotherTest
2020-05-02LibCore: Mark Socket::{common_,}connect() virtual and add a on_writeAnotherTest
2020-04-30LibCore: Do not assert that NonnullRefPtr is non-nullSergey Bugaev
Clang complains about this; with the change the next commit is going to make to ASSERT() internals, GCC is going to start to complain as well.
2020-04-30LibCore: Don't continue in forked child if exec() failsAndreas Kling
Fixes #1854.
2020-04-28LibCore: Trim decompressed Gzip output to sizeAnotherTest
Prior to this commit, we would (re-)allocate the output buffer aligned to 1024 bytes, but never trim it down to size, which caused Gzip::decompress to return uninitialised data.
2020-04-26LibCore: Open gif files with QuickShowHüseyin ASLITÜRK
2020-04-23LibCore: read_bool_entry parse "true" / "false" strings in config filesBrendan Coles
`read_bool_entry()` can now interpret both integers (1 or 0) and Boolean strings ("true" or "false") in configuration files. All values other than "1" or "true" are considered false.
2020-04-23DesktopServices: Add irc URL protocol handlerBrendan Coles
2020-04-21LibCore: Make Core::File::open() return a Result<NNRP<File>, String>Andreas Kling
It was impractical to return a RefPtr<File> since that left us no way to extract the error string. This is usually needed for the UI, so the old static open() got basically no use.
2020-04-19LibCore: Add StandardPaths thing to retrieve various standard locationsAndreas Kling
Fixes #1853.
2020-04-19LibCore: Check for fork() failureSergey Bugaev
For those good boy points :^)
2020-04-19LibCore+LibGUI: Move DesktopServices to LibCoreSergey Bugaev
2020-04-07LibCore: Add Core::Timer::create_single_shot()Andreas Kling
This is just a convenience function for creating single-shot timers.
2020-04-06AK: Make dbgprintf() and dbgputstr() go to stderr on non-Serenity hostsAndreas Kling
2020-04-04LibCore: Fix UDPServer up to properly receive dataAnotherTest
Prior to this, UDPServer was using listen/accept, which does not make sense in the context of UDP.
2020-04-03LibCore: Don't replay last handled event when leaving nested event loopAndreas Kling
The event that triggered the exit from an inner event loop would always get re-delivered in the outer event loop due to a silly off-by-one mistake when transferring pending events between loops.
2020-03-30LibCore: Add a static Core::File::open() convenience functionAndreas Kling
This helper opens a file with a given name, mode and permissions and returns it in a RefPtr<File>. I think this will be a bit nicer to use than having to go through Core::File::construct() every time.
2020-03-23LibCore: Tweak DateTime.cpp so it compiles on Linux + drive-by bug fixAndreas Kling
2020-03-22LibCore: Wrap commented out debug messages in a preprocessor defineShannon Booth
We can also remove an outdated FIXME as dbg() does now support unsigned longs :^)
2020-03-19LibCore: Use monotonic time when handling timersLiav A
2020-03-18LibCore: Moved cal.cpp functions to DateTimerhin123
2020-03-14LibCore: Rename Udp classes to UDPShannon Booth
The kernel was already using the UDP prefix, and the TCP LibCore classes are also uppercased. Let's rename for consistency. Also order the LibCore Makefile alphabetically, because everywhere else seems to be doing that :)
2020-03-10EventLoop: Don't destroy ID allocator (#1403)Alex Muscar
The ID allocator is destroyed before a timer in HackStudio is is unregistered leading to an access violation. Fixes #1382.
2020-03-08Userspace: Add missing #includes now that AK/StdLibExtras.h is smallerAndreas Kling
2020-03-08AK: Add global FlatPtr typedef. It's u32 or u64, based on sizeof(void*)Andreas Kling
Use this instead of uintptr_t throughout the codebase. This makes it possible to pass a FlatPtr to something that has u32 and u64 overloads.
2020-03-08LibCore: Add format option for DateTime::to_string() (#1358)howar6hill
2020-03-07LibCore: Remove all remaining C prefix referencesShannon Booth
LibCore's GZip is also moved into the Core namespace with this change.
2020-03-05LibCore: Add a way to set an individual Core::Object property remotelyAndreas Kling
2020-03-05LibCore: Allow RPC clients to specify the currently inspected objectAndreas Kling
Add a SetInspectedObject call that tells us which Core::Object a remote client is currently looking it. Objects get notified when they gain their first inspector, and when they lose their last one.
2020-03-04LibCore: Make Core::Object::add<ChildType> return a ChildType&Andreas Kling
Since the returned object is now owned by the callee object, we can simply vend a ChildType&. This allows us to use "." instead of "->" at the call site, which is quite nice. :^)
2020-03-01AK: Remove unnecessary casts to size_t, after Vector changesAndreas Kling
Now that Vector uses size_t, we can remove a whole bunch of redundant casts to size_t.
2020-02-26LibCore: Allow ConfigFile::read_num_entry to handle negative numbersJesse Buhagiar
Previously, this function was using `AK::String::to_uint()`, which is wrong considering the function returns type `int`. This also means that configuration files would revert to the default value on negative values.
2020-02-26DateTime: Fix a typohowar6hill