Commit Graph

1455 Commits

Author SHA1 Message Date
Andreas Kling
209a16bb7f IPv4: Dynamically allocate the UDP source port if needed. 2019-03-13 16:05:56 +01:00
Andreas Kling
4dddf949c8 IPv4: More work on UDP support.
I'm now able to connect to a simple UDP server on my host machine and
exchange some data. Very cool! :^)
2019-03-13 15:40:30 +01:00
Andreas Kling
48431b3535 LibC: Add netinet/in.h 2019-03-13 15:09:54 +01:00
Andreas Kling
a9dc332a11 IPv4: recvfrom() shouldn't care about what's in the outparam on entry. 2019-03-13 15:00:28 +01:00
Andreas Kling
ea6a537b70 Userland: Add a simple utility for UDP testing. 2019-03-13 15:00:02 +01:00
Andreas Kling
19a51132f5 Kernel: recvfrom() should treat the address arguments as outparams. 2019-03-13 14:47:21 +01:00
Andreas Kling
b59d588c04 Kernel: Start fleshing out an UDP implementation. 2019-03-13 14:22:27 +01:00
Andreas Kling
562663df7c Add support for socket send/receive timeouts.
Only the receive timeout is hooked up yet. You can change the timeout by
calling setsockopt(..., SOL_SOCKET, SO_RCVTIMEO, ...).

Use this mechanism to make /bin/ping report timeouts.
2019-03-13 13:15:05 +01:00
Andreas Kling
7bcd386338 NetworkAdapter: Use a ByteBuffer instead of kmalloc/kfree in send(). 2019-03-13 13:12:29 +01:00
Andreas Kling
60db082fdd AK: Fix node leak in SinglyLinkedList::take_first(). 2019-03-13 13:11:23 +01:00
Andreas Kling
cf250e1245 More work on IPv4 sockets and /bin/ping.
It's now actually possible to ping other hosts on the network! :^)
I've switched the "run" script over to starting QEMU with user networking
since that works better for my testing needs right now.
2019-03-13 03:26:01 +01:00
Andreas Kling
ce7c302933 Kernel: Oops, gettimeofday()'s tv_usec should be micro, not milliseconds. 2019-03-13 03:25:18 +01:00
Andreas Kling
a7d5e9781a Kernel+LibC+Userland: Yet more networking bringup hacking.
All ICMP sockets now receive all ICMP packets. All this buffering is gonna
need some limits and such.
2019-03-12 17:27:07 +01:00
Andreas Kling
a017a77442 Kernel+LibC+Userland: Start working on an IPv4 socket backend.
The first userland networking program will be "ping" :^)
2019-03-12 15:51:42 +01:00
Andreas Kling
8e667747f0 Kernel: Add a way to look up NetworkAdapters by IPv4 address. 2019-03-12 13:30:36 +01:00
Andreas Kling
c6a2012fe9 Kernel: Collect IPv4 stuff in IPv4.h and ARP stuff in ARP.h. 2019-03-12 12:49:01 +01:00
Andreas Kling
87ecf290f4 Kernel: More work on the ICMP and IPv4 support. 2019-03-12 12:43:30 +01:00
Andreas Kling
9858be636f Kernel: Fix up the ICMP implementation to generate correct Echo replies.
Serenity now responds to ping. :^)
2019-03-12 11:44:38 +01:00
Andreas Kling
75e0ddd46a Kernel: More work on ICMP support.
We can now kinda sorta respond to ICMP::EchoRequest although there's
still something not entirely right with the packets.
2019-03-12 04:40:13 +01:00
Andreas Kling
5bd9844dd6 Kernel: Start adding IPv4 support, starting with ICMP echo messages.
This doesn't work correctly yet, but it's getting nice enough to commit.
2019-03-12 04:11:20 +01:00
Andreas Kling
d5dbb602b8 Kernel: Tidy up networking code with some named constants. 2019-03-12 01:30:49 +01:00
Andreas Kling
90f60d2f65 Kernel: Cache MAC<->IP mappings (from ARP responses) seen on the wire. 2019-03-12 00:56:33 +01:00
Andreas Kling
05c1a79454 Kernel: Minor style cleanup in NetworkTask. 2019-03-12 00:01:07 +01:00
Andreas Kling
318b01e055 Kernel: Bring up enough networking code that we can respond to ARP requests.
This is all pretty rickety but we can now respond to "arping" from the host
while running inside QEMU. Very cool. :^)
2019-03-11 23:21:38 +01:00
Andreas Kling
10dcd3a47f GTextEditor: Make sure the scroll corner helper widget is filled in. 2019-03-11 12:52:07 +01:00
Andreas Kling
35098cbde1 Kernel: Add a NetworkTask and a received network packet queue.
It will be easier to deal with incoming packets in a separate task.
2019-03-11 12:43:45 +01:00
Andreas Kling
47b096feb4 Kernel: More work on bringing up E1000 support. 2019-03-11 11:11:29 +01:00
Andreas Kling
a36eaeb18c Kernel: Remove accidentally committed debugging code. 2019-03-11 01:57:34 +01:00
Andreas Kling
1678ac69ef Kernel: More work on Ethernet support. 2019-03-10 23:40:09 +01:00
Andreas Kling
97664fad60 Kernel: A bunch of hacking towards initial Ethernet support. 2019-03-10 20:59:23 +01:00
Andreas Kling
4641ee49b5 Kernel: Add a simple MACAddress class. 2019-03-10 19:15:22 +01:00
Andreas Kling
405413c354 Kernel: Start adding support for E1000 network adapters. 2019-03-10 15:25:33 +01:00
Andreas Kling
0c806bfa25 WindowServer: Include switcher windows in the window iteration. 2019-03-10 13:30:43 +01:00
Andreas Kling
5d69bf06d2 LibGUI: Don't fill widgets with background color by defualt. 2019-03-10 13:16:36 +01:00
Andreas Kling
6836e21d1c ProcessManager: Tidy up the memory stats and align everything nicely. 2019-03-10 12:34:44 +01:00
Andreas Kling
37388b311f ProcessManager: Show some basic system memory stats below the process table.
This really improves the feeling of "system overview" :^)
2019-03-10 12:13:22 +01:00
Andreas Kling
8017c1e17c GTextEditor: Let the Tab key insert up to 4 spaces. 2019-03-10 11:08:36 +01:00
Andreas Kling
64237c5028 WindowServer: Show the username of the WindowServer owner in the menu. 2019-03-10 03:16:27 +01:00
Andreas Kling
8175d75432 LibC: Implement getlogin(). 2019-03-10 03:15:36 +01:00
Andreas Kling
a149ad9b44 WindowServer: Window iteration should see the highlight window "in front". 2019-03-10 02:33:43 +01:00
Andreas Kling
420ef4da8a WindowServer: Clear any highlighted window when dismissing the switcher. 2019-03-10 02:19:55 +01:00
Andreas Kling
48e4b3e751 LibGUI: Preserve selection when resorting a GSortingProxyTableModel. 2019-03-10 02:13:59 +01:00
Andreas Kling
0b32ab12f1 ProcessManager: Make the toolbar actions work again.
We can't grab at the ProcessTableModel directly anymore since we have a
sorting proxy model in the middle now.
2019-03-10 02:03:36 +01:00
Andreas Kling
2336d43abc WindowServer: Tweak CPU usage history color. 2019-03-10 01:22:36 +01:00
Andreas Kling
94df0c1ba6 WindowServer: Fix bug where window content could bleed through menus.
We have to iterate using for_each_visible_window_from_back_to_front()
if we want every window in the correct order.
2019-03-10 01:08:21 +01:00
Andreas Kling
ed61fdbc32 Base: Improved FileManager (folder) icon. 2019-03-10 00:58:47 +01:00
Andreas Kling
6c70629a49 LibGUI: Make buttons a little bit sharper. 2019-03-10 00:58:27 +01:00
Andreas Kling
702adb13c1 TextEditor: Remove the selection from the status bar. 2019-03-09 22:04:54 +01:00
Andreas Kling
b4a099d212 GTextEditor: Allow jumping lines by hitting Left/Right at start/end of line. 2019-03-09 22:02:35 +01:00
Andreas Kling
76094128e7 LibGUI: Fix small painting glitch in GScrollBar buttons. 2019-03-09 21:51:36 +01:00