Преглед изворни кода

Kernel: Use TRY() in IPv4Socket

Andreas Kling пре 3 година
родитељ
комит
982991d92d
1 измењених фајлова са 6 додато и 17 уклоњено
  1. 6 17
      Kernel/Net/IPv4Socket.cpp

+ 6 - 17
Kernel/Net/IPv4Socket.cpp

@@ -46,18 +46,10 @@ KResultOr<NonnullRefPtr<Socket>> IPv4Socket::create(int type, int protocol)
     if (!receive_buffer)
         return ENOMEM;
 
-    if (type == SOCK_STREAM) {
-        auto tcp_socket_or_error = TCPSocket::try_create(protocol, receive_buffer.release_nonnull());
-        if (tcp_socket_or_error.is_error())
-            return tcp_socket_or_error.error();
-        return tcp_socket_or_error.release_value();
-    }
-    if (type == SOCK_DGRAM) {
-        auto udp_socket_or_error = UDPSocket::try_create(protocol, receive_buffer.release_nonnull());
-        if (udp_socket_or_error.is_error())
-            return udp_socket_or_error.error();
-        return udp_socket_or_error.release_value();
-    }
+    if (type == SOCK_STREAM)
+        return TRY(TCPSocket::try_create(protocol, receive_buffer.release_nonnull()));
+    if (type == SOCK_DGRAM)
+        return TRY(UDPSocket::try_create(protocol, receive_buffer.release_nonnull()));
     if (type == SOCK_RAW) {
         auto raw_socket = adopt_ref_if_nonnull(new (nothrow) IPv4Socket(type, protocol, receive_buffer.release_nonnull(), {}));
         if (raw_socket)
@@ -593,11 +585,9 @@ KResult IPv4Socket::ioctl(FileDescription&, unsigned request, Userspace<void*> a
             return EFAULT;
 
         Userspace<const char*> user_rt_dev((FlatPtr)route.rt_dev);
-        auto ifname_or_error = try_copy_kstring_from_user(user_rt_dev, IFNAMSIZ);
-        if (ifname_or_error.is_error())
-            return ifname_or_error.error();
+        auto ifname = TRY(try_copy_kstring_from_user(user_rt_dev, IFNAMSIZ));
 
-        auto adapter = NetworkingManagement::the().lookup_by_name(ifname_or_error.value()->view());
+        auto adapter = NetworkingManagement::the().lookup_by_name(ifname->view());
         if (!adapter)
             return ENODEV;
 
@@ -801,5 +791,4 @@ void IPv4Socket::set_can_read(bool value)
     if (value)
         evaluate_block_conditions();
 }
-
 }