summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-08-11Net: Store all the LocalSockets in an InlineLinkedListSergey Bugaev
2019-08-11Net: Add LocalSocket::socket_path()Sergey Bugaev
This is a little utility function to safely extract the path without manually dealing with sun_path and null-termination.
2019-08-11Net: Override LocalSocket::class_name()Sergey Bugaev
2019-08-11Net: Fix initializing sockaddr_un.sun_path copy buffersSergey Bugaev
The whole point of allocating an extra byte for the null terminator is to initialize it to zero.
2019-08-11Kernel: Move socket role tracking to the Socket class itselfSergey Bugaev
This is more logical and allows us to solve the problem of non-blocking TCP sockets getting stuck in SocketRole::None. The only complication is that a single LocalSocket may be shared between two file descriptions (on the connect and accept sides), and should have two different roles depending from which side you look at it. To deal with it, Socket::role() is made a virtual method that accepts a file description, and LocalSocket internally tracks which FileDescription is the which one and returns a correct role.
2019-08-11Net: Simplify how LocalSocket tracks open fdsSergey Bugaev
Now that there can't be multiple clones of the same fd, we only need to track whether or not an fd exists on each side. Also there's no point in tracking connecting fds.
2019-08-11Kernel: Fix cloning file descriptions on forkSergey Bugaev
After a fork, the parent and the child are supposed to share the same file description. For example, modifying the current offset of a file description is visible in both of them.
2019-08-11Kernel: Add strncmp()Sergey Bugaev
2019-08-11GScrollBar: highlight the scrubber while it's in use.Ignas S
Originally, it would stop being highlighted if the mouse was moved away from it, even while in use. Now it will stay highlighted for the duration of usage.
2019-08-11ProcessManager: Add "File systems" tab with info on mounted filesystemsAndreas Kling
This was rather nice and easy to add with the new GJsonArrayModel! :^)
2019-08-11ProcFS: Add "readonly" and "block_size" fields to /proc/dfAndreas Kling
2019-08-11FileSystem: Move block_size() from DiskBackedFS to FSAndreas Kling
Let's just say that all filesystems have a block size, to keep things nice and simple.
2019-08-11FileDescription: Disallow construction with a null FileAndreas Kling
It's not valid for a FileDescription to not have a file, so let's disallow it by taking a File& (or FIFO&) in the constructor.
2019-08-11Kernel: Remove an unused VFS function declarationAndreas Kling
2019-08-11Kernel: Clean up some PATA log messagesConrad Pankoff
2019-08-11Kernel: Fix PATA reads without DMAConrad Pankoff
Apparently we need to poll the drive for its status after each sector we read if we're not doing DMA. Previously we only did it at the start, which resulted in every sector after the first in a batch having 12 bytes of garbage on the end. This manifested as silent read corruption.
2019-08-11Kernel: Print out PCI devices during bootConrad Pankoff
This will make boot logs much more useful on real hardware, by showing exactly what Serenity is trying to boot on.
2019-08-11Kernel: Add serial_debug cmdline parameterConrad Pankoff
serial_debug will output all the kprintf and dbgprintf data to COM1 at 8-N-1 57600 baud. this is particularly useful for debugging the boot process on live hardware. Note: it must be the first parameter in the boot cmdline.
2019-08-10LibCore: Use URL in CHttpRequestAndreas Kling
Now there's just CHttpRequest::set_url(URL), no need to specify the host, port and path manually anymore. Updated ChanViewer and Downloader for the API change.
2019-08-10URL: Add some convenience constructorsAndreas Kling
2019-08-10AK: Add a basic URL class to help us handle URL'sAndreas Kling
We're gonna need these as we start to write more networking programs.
2019-08-10ProcessManager: Use a GJsonArrayModel for the process memory mapsAndreas Kling
2019-08-10GJsonArrayModel: Support fields that aren't tied to a single JSON valueAndreas Kling
Change the custom data massaging callback to take a const JsonObject&. This will allow binding together data from multiple fields into one output in the model. :^)
2019-08-10Kernel: Hack the default keymap to support UK pipe/backslashAndreas Kling
Since this key number doesn't appear to collide with anything on the US keymap, I was thinking we could get away with supporting a hybrid US/UK keymap. :^)
2019-08-10ProcessManager: Use a GJsonArrayModel for the process file desciptorsAndreas Kling
2019-08-10GJsonArrayModel: Add an optional "massage_for_display" fieldspec hookAndreas Kling
This allows to you install a custom callback that can do anything with Role::Display data before it's returned by GJsonArrayModel::data().
2019-08-10ProcessManager: Remove SocketModel and NetworkAdapterModelAndreas Kling
These are trivially replaced by GJsonArrayModels :^)
2019-08-10LibGUI: Add GJsonArrayModel, a simple JSON-data-file-as-GModel helperAndreas Kling
This makes it very easy to expose JSON files as GModels. :^)
2019-08-10Kernel: Detect some outgoing TCP connection failuresConrad Pankoff
2019-08-10Kernel: Use a more detailed state machine for socket setupConrad Pankoff
2019-08-10Kernel: Move TCP state logging into TCPSocketConrad Pankoff
2019-08-10Userland: Make sure sockaddr_len is initialised correctly in ncConrad Pankoff
2019-08-10Kernel: Make accept() fill address with peer name rather than local nameConrad Pankoff
2019-08-10Kernel: Fix get{sock,peer}name port endiannessConrad Pankoff
2019-08-10Calculator: Add a simple calculator appSergey Bugaev
Closes https://github.com/SerenityOS/serenity/issues/319
2019-08-10printf: Support dynamic fill widthsSergey Bugaev
The printf formatting mini-language actually allows you to pass a '*' character in place of the fill width specification, in which case it eats one of the passed in arguments and uses it as width, so implement that.
2019-08-10LibM: Implement sqrt()Sergey Bugaev
Use the x87 fsqrt instruction for that. We cannot use __builtin_sqrt(), since GCC expands it into a sqrt() call, so we just loop endlessly.
2019-08-09GLabel: Repaint immediately on icon changeAndreas Kling
2019-08-09GFilePicker: Make double-clicking actually choose/pick the fileAndreas Kling
..unless it's a directory, in which case we navigate into the directory instead, as you would expect.
2019-08-09Painter: Fix off-by-one in bounding rects for right-aligned textAndreas Kling
Another instance of "Rect::right() is the last pixel *inside* the rect, not the first pixel outside the rect" messing me up.
2019-08-09Kernel: Zero-length dbgputstr() should just return 0Andreas Kling
2019-08-09ProcessManager: Enable automatic column sizing for all table viewsAndreas Kling
Start making use of the neat new mode in GTableView.
2019-08-09GTableView: Add a mode for automatically sizing column to fit contentAndreas Kling
You can now call GTableView::set_size_columns_to_fit_content(true) and the table columns will grow to fit the content. They will never shrink, only grow. This means I can spend a lot less time fidgeting with column widths :^)
2019-08-09ProcFS: Expose UDP sockets in /proc/net/udpSergey Bugaev
2019-08-09Kernel: Make TCPSocket::for_each() callback accept a referenceSergey Bugaev
Yay for less arrows!
2019-08-09ProcFS: Make a new nifty /proc/net directorySergey Bugaev
And move /proc/netadapters and /proc/net_tcp there. Now they're /proc/net/adapters and /proc/net/tcp respectively, with more to come ^)
2019-08-09Kernel: Clean up and sanitize incoming packet handling a bit moreAndreas Kling
Once we've converted from an Ethernet frame to an IPv4 packet, we can pass the IPv4Packet around instead of the EthernetFrameHeader. Also add some more code to ignore invalid-looking packets.
2019-08-09Kernel: Actually, let's not hang() on bad incoming packetsAndreas Kling
That kinda defeats the purpose of being smart enough to ignore them :^)
2019-08-09Kernel: Do some basic sanity checking on IPv4 packet headersAndreas Kling
Ignore packets that are too small, or not as large as they claim to be.
2019-08-09Kernel: Merge FooSocketHandle classes into a single SocketHandle<Foo>Andreas Kling
- IPv4SocketHandle => SocketHandle<IPv4Socket> - TCPSocketHandle => SocketHandle<TCPSocket> - UDPSocketHandle => SocketHandle<UDPSocket>