Andreas Kling
6cbd72f54f
AK: Remove bitrotted Traits::dump() mechanism
...
This was only used by HashTable::dump() which I used when doing the
first HashTable implementation. Removing this allows us to also remove
most includes of <AK/kstdio.h>.
2020-02-10 11:55:34 +01:00
William McPherson
c8eaae3eaf
Userland: Fix segfault in chown
...
chown takes 2 arguments, not 1.
2020-02-10 11:11:29 +01:00
Shannon Booth
084e67f267
Meta: Integrate Shellcheck into Travis
...
lint-shell-scripts searches over the repository looking for shell
scripts. On those found, shellcheck is run against them. If any linting
fails print those warnings and exit with a non-zero exit code.
Run this script automatically in Travis.
2020-02-10 10:46:25 +01:00
Shannon Booth
fe668db999
Meta: Fix shellcheck warnings in various scripts
...
Warnings fixed:
* SC2086: Double quote to prevent globbing and word splitting.
* SC2006: Use $(...) notation instead of legacy backticked `...`
* SC2039: In POSIX sh, echo flags are undefined
* SC2209: Use var=$(command) to assign output (or quote to assign string)
* SC2164: Use 'cd ... || exit' or 'cd ... || return' in case cd fails
* SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.
* SC2034: i appears unused. Verify use (or export if used externally)
* SC2046: Quote this to prevent word splitting.
* SC2236: Use -z instead of ! -n.
There are still a lot of warnings in Kernel/run about:
- SC2086: Double quote to prevent globbing and word splitting.
However, splitting on space is intentional in this case, and not trivial to
change. Therefore ignore the warning for now - but we should fix this in
the future.
2020-02-10 10:46:25 +01:00
joshua stein
e9be8669d2
Build: clean .d files based on SUFFIXED_OBJS and EXTRA_OBJS
...
Fixes #1198
2020-02-10 10:18:30 +01:00
Liav A
99ea80695e
Kernel: Use VirtualAddress & PhysicalAddress classes from LibBareMetal
2020-02-09 19:38:17 +01:00
Liav A
7c4dd0c8cf
LibELF: Use VirtualAddress class from LibBareMetal
2020-02-09 19:38:17 +01:00
Liav A
de3637d85f
LibBareMetal: Add Memory definitions
...
Add classes of VirtualAddress & PhysicalAddress.
2020-02-09 19:38:17 +01:00
Liav A
2a699cec98
LibC: Apply a change for the Bootstrapper environment
2020-02-09 19:38:17 +01:00
Liav A
1266c9ab88
Build Environment: Add a definition for the Bootstrapper environment
2020-02-09 19:38:17 +01:00
Liav A
8bdb08c354
AK: Apply changes for the Bootstrapper environment
2020-02-09 19:38:17 +01:00
Liav A
88cf46dc98
Userland: Use IO helpers from LibBareMetal
2020-02-09 19:38:17 +01:00
Liav A
e559af2008
Kernel: Apply changes to use LibBareMetal definitions
2020-02-09 19:38:17 +01:00
Liav A
7c507c27bf
LibBareMetal: Creating a new library for freestanding environments
2020-02-09 19:38:17 +01:00
Andreas Kling
c45a5ff840
WebServer: Add missing space to HTTP error responses
...
Fixes #1200 .
2020-02-09 17:05:29 +01:00
Andreas Kling
db2ede9427
Net: Short-circuit routing to the IPv4 address of a local adapter
...
This makes it possible to open http://localhost:8000/ in Browser. :^)
2020-02-09 14:15:55 +01:00
Andreas Kling
80703ef7d9
WebServer: Send the HTTP response headers in a single packet
...
This makes it easier to observe the protocol in packet logs.
2020-02-09 14:15:55 +01:00
Andreas Kling
efb694ecad
WebServer: Tighten things up with pledge() and unveil()
2020-02-09 14:15:55 +01:00
Andreas Kling
6c752c15a2
WebServer: Implement a very basic HTTP server :^)
...
This server listens on port 8000 and serves HTML files from /www.
It's very simple and quite naive, but I think we can start here and
build our way to something pretty neat.
Work towards #792 .
2020-02-09 14:15:55 +01:00
Andreas Kling
271bc4b2f2
Net: When routing to loopback, use the loopback adapter's MAC address
...
Otherwise the routing decision gets interpreted as "host unreachable."
2020-02-09 14:15:55 +01:00
Andreas Kling
d8a30e2ad2
Net: Give the LoopbackAdapter a MAC address
...
Since the routing code currently interprets an all-zero MAC address as
an invalid next hop, let's give the loopback adapter an address.
2020-02-09 14:15:55 +01:00
Andreas Kling
67ccdbe384
LibCore: Add File::is_directory() helpers
2020-02-09 14:15:55 +01:00
Andreas Kling
80b1af2352
AK: Make StringBuilder::to_string() non-destructive
...
This was an artifact of an earlier design of StringBuilder where I had
attempted to preserve the same allocation from build to final String.
2020-02-09 14:15:55 +01:00
Andreas Kling
3a7e49fe07
LibCore: Allow constructing a Core::HttpRequest from a raw HTTP request
...
This patch adds a very simple HTTP request parser that can be useful
for implementing say.. a web server. :^)
2020-02-09 14:15:55 +01:00
Conrad Pankoff
a189285658
Kernel: Support reading/writing PATADiskDevices directly via /dev/hdX
2020-02-09 12:58:45 +01:00
Hüseyin ASLITÜRK
9b5e0b6247
WindowServer: Remove username from MenuManager.
...
Now, we have UserName applet.
2020-02-09 10:37:35 +01:00
asliturk
57edcb54c2
MenuApplets: Add UserName applet.
...
Move code from WindowServer.WSMenuManager to the applet.
2020-02-09 10:37:35 +01:00
Andreas Kling
fc85d17322
TelnetServer: Protect the Client object during drain_socket()
...
If parsing a command causes us to disconnect the client, we have to
defer deletion of the Client object until we're done with the socket.
2020-02-08 19:12:52 +01:00
Andreas Kling
deb154be61
Kernel: Send SIGPIPE to the current thread on write to a broken pipe
2020-02-08 19:12:06 +01:00
Andreas Kling
70c9a89707
IPv4: Put some TCP close handshake debug spam behind TCP_SOCKET_DEBUG
2020-02-08 16:04:58 +01:00
Andreas Kling
3891e6d739
IPv4: Sockets should say can_read() after reading is shut down
...
This allows clients to get their EOF after shutting down reading.
2020-02-08 16:04:31 +01:00
Andreas Kling
228a1e9099
IPv4: Basic implementation of TCP socket shutdown
...
We can now participate in the TCP connection closing handshake. :^)
This implementation is definitely not complete and needs to handle a
bunch of other cases. But it's a huge improvement over not being able
to close connections at all.
Note that we hold on to pending-close sockets indefinitely, until they
are moved into the Closed state. This should also have a timeout but
that's still a FIXME. :^)
Fixes #428 .
2020-02-08 16:04:27 +01:00
Andreas Kling
8325662186
more: Read keystrokes from stdout instead of trying to re-open it
...
If we're running more on a TTY that we don't have filesystem access to,
we can't rely on open(ttyname(STDOUT_FILENO)). Since all the stdio fd's
are opened read/write anyway, we can just read from stdout, even if it
feels a bit weird. :^)
2020-02-08 15:50:00 +01:00
Andreas Kling
1037a1d2ba
IPv4: Don't ACK empty TCP packets
...
Wireshark was complaining about duplicate ACK's and this was why.
2020-02-08 14:09:02 +01:00
Andreas Kling
48f13f2a81
IPv4: Split IPv4Socket::recvfrom() into packet/byte buffered functions
...
This code was really hard to follow since it handles two separate modes
of buffering the data.
2020-02-08 13:09:37 +01:00
Andreas Kling
00d8ec3ead
Kernel: The inode fault handler should grab the VMObject lock earlier
...
It doesn't look healthy to create raw references into an array before
a temporary unlock. In fact, that temporary unlock looks generally
unhealthy, but it's a different problem.
2020-02-08 12:55:21 +01:00
Andreas Kling
a9d7902bb7
x86: Simplify region unmapping a bit
...
Add PageTableEntry::clear() to zero out a whole PTE, and use that for
unmapping instead of clearing individual fields.
2020-02-08 12:49:38 +01:00
Andreas Kling
3b95d61b22
LibGfx: Naive RGB/HSV conversion
2020-02-08 12:30:12 +01:00
Andreas Kling
7291370478
Kernel: Make File::truncate() take a u64
...
No point in taking a signed type here. We validate at the syscall layer
and then pass around a u64 from then on.
2020-02-08 12:07:04 +01:00
Andreas Kling
42d41fdf94
Kernel: Simplify FS::create_inode() a little bit
...
Return a KResultOr<NonnullRefPtr<Inode>> instead of returning errors in
an out-parameter.
2020-02-08 11:58:28 +01:00
Andreas Kling
2f82d4fb31
Kernel: Add KResultOr<T>::result()
...
This is just a handy way to get either an error or a KSuccess, even if
there is a T present.
2020-02-08 11:57:53 +01:00
Andreas Kling
745ea2a0ef
AK: Add JsonObjectSerializer::add(key, bool) overload
...
Without this, bools will get implicitly converted to integers, which is
usually not what we want.
2020-02-08 02:48:27 +01:00
Andreas Kling
f91b3aab47
Kernel: Cloned shared regions should also be marked as shared
2020-02-08 02:39:46 +01:00
Andreas Kling
8731682d0e
Kernel: Simplify FS::create_directory() a little bit
...
None of the clients of this function actually used the returned Inode,
so it can simply return a KResult instead.
2020-02-08 02:34:22 +01:00
Andreas Kling
cb97ef5589
Ext2FS: Fail with EMFILE if we would overflow i_links_count
2020-02-08 02:26:33 +01:00
Andreas Kling
88ea152b24
Kernel: Merge unnecessary DiskDevice class into BlockDevice
2020-02-08 02:20:03 +01:00
Andreas Kling
6be880bd10
IPv4: Send TCP packets right away instead of waiting to "retry"
...
Also be more explicit about zero-initializing OutgoingPacket objects.
2020-02-08 01:45:45 +01:00
Andreas Kling
a7e72f78cd
AK: Make PrintfImplementation treat %lld as 64-bit
2020-02-08 01:43:05 +01:00
Andreas Kling
28a5e33134
AK: Add LogStream overloads for long and long long
2020-02-08 01:41:43 +01:00
Andreas Kling
0c12d9a618
IPv4: Drop incoming packets on sockets that are shut down for reading
2020-02-08 00:58:11 +01:00