diff '--color=auto' -Naur ./gr-gsm-a5e61786ad9b57f12a97a83c7d4c1743b5eb34ff.orig/include/gsm/misc_utils/udp_socket.h gr-gsm-a5e61786ad9b57f12a97a83c7d4c1743b5eb34ff/include/gsm/misc_utils/udp_socket.h
--- a/include/gsm/misc_utils/udp_socket.h	2024-09-27 06:26:03.000000000 +0800
+++ b/include/gsm/misc_utils/udp_socket.h	2026-02-16 15:19:45.912805313 +0800
@@ -36,7 +36,7 @@
     class udp_socket
     {
     private:
-      boost::asio::io_service d_io_service;
+      boost::asio::io_context d_io_context;
       std::vector<char> d_rxbuf;
       gr::thread::thread d_thread;
       bool d_started;
diff '--color=auto' -Naur ./gr-gsm-a5e61786ad9b57f12a97a83c7d4c1743b5eb34ff.orig/lib/misc_utils/udp_socket.cc gr-gsm-a5e61786ad9b57f12a97a83c7d4c1743b5eb34ff/lib/misc_utils/udp_socket.cc
--- a/lib/misc_utils/udp_socket.cc	2024-09-27 06:26:03.000000000 +0800
+++ b/lib/misc_utils/udp_socket.cc	2026-02-16 15:21:37.091666320 +0800
@@ -47,20 +47,17 @@
       d_rxbuf.resize(mtu);
 
       // Resolve remote host address
-      udp::resolver resolver(d_io_service);
+      udp::resolver resolver(d_io_context);
 
-      udp::resolver::query rx_query(
-        udp::v4(), bind_addr, src_port,
-        boost::asio::ip::resolver_query_base::passive);
-      udp::resolver::query tx_query(
-        udp::v4(), remote_addr, dst_port,
-        boost::asio::ip::resolver_query_base::passive);
+      auto rx_results = resolver.resolve(udp::v4(), bind_addr, src_port, udp::resolver::passive);
+      auto tx_results = resolver.resolve(udp::v4(), remote_addr, dst_port, udp::resolver::passive);
 
-      d_udp_endpoint_rx = *resolver.resolve(rx_query);
-      d_udp_endpoint_tx = *resolver.resolve(tx_query);
+      // Get the endpoints from the results
+      d_udp_endpoint_rx = *rx_results.begin();
+      d_udp_endpoint_tx = *tx_results.begin();
 
       // Create a socket
-      d_udp_socket.reset(new udp::socket(d_io_service, d_udp_endpoint_rx));
+      d_udp_socket.reset(new udp::socket(d_io_context, d_udp_endpoint_rx));
 
       // Setup read handler
       d_udp_socket->async_receive_from(
@@ -77,7 +74,7 @@
     udp_socket::~udp_socket()
     {
       // Stop server
-      d_io_service.stop();
+      d_io_context.stop();
       d_thread.interrupt();
       d_thread.join();
     }
@@ -85,7 +82,7 @@
     void
     udp_socket::run_io_service(void)
     {
-      d_io_service.run();
+      d_io_context.run();
     }
 
     void
