Age | Commit message (Collapse) | Author |
|
|
|
This is a little utility function to safely extract the path without
manually dealing with sun_path and null-termination.
|
|
|
|
The whole point of allocating an extra byte for the null terminator
is to initialize it to zero.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
This was rather nice and easy to add with the new GJsonArrayModel! :^)
|
|
|
|
Let's just say that all filesystems have a block size, to keep things
nice and simple.
|
|
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.
|
|
|
|
|
|
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.
|
|
This will make boot logs much more useful on real hardware, by showing
exactly what Serenity is trying to boot on.
|
|
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.
|
|
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.
|
|
|
|
We're gonna need these as we start to write more networking programs.
|
|
|
|
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. :^)
|
|
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. :^)
|
|
|
|
This allows to you install a custom callback that can do anything with
Role::Display data before it's returned by GJsonArrayModel::data().
|
|
These are trivially replaced by GJsonArrayModels :^)
|
|
This makes it very easy to expose JSON files as GModels. :^)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Closes https://github.com/SerenityOS/serenity/issues/319
|
|
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.
|
|
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.
|
|
|
|
..unless it's a directory, in which case we navigate into the directory
instead, as you would expect.
|
|
Another instance of "Rect::right() is the last pixel *inside* the rect,
not the first pixel outside the rect" messing me up.
|
|
|
|
Start making use of the neat new mode in GTableView.
|
|
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 :^)
|
|
|
|
Yay for less arrows!
|
|
And move /proc/netadapters and /proc/net_tcp there. Now they're
/proc/net/adapters and /proc/net/tcp respectively, with more to come ^)
|
|
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.
|
|
That kinda defeats the purpose of being smart enough to ignore them :^)
|
|
Ignore packets that are too small, or not as large as they claim to be.
|
|
- IPv4SocketHandle => SocketHandle<IPv4Socket>
- TCPSocketHandle => SocketHandle<TCPSocket>
- UDPSocketHandle => SocketHandle<UDPSocket>
|