diff --git a/daemon/igmp.hpp b/daemon/igmp.hpp
index 58b350b..71ad1b0 100644
--- a/daemon/igmp.hpp
+++ b/daemon/igmp.hpp
@@ -104,7 +104,7 @@ class IGMP {
   }
 
  private:
-  io_service io_service_;
+  io_context io_service_;
   ip::udp::socket socket_{io_service_};
   udp::endpoint listen_endpoint_{udp::endpoint(address_v4::any(), 0)};
   std::unordered_map<uint32_t, int> mcast_ref;
diff --git a/daemon/interface.cpp b/daemon/interface.cpp
index dbe3b0f..17402f1 100644
--- a/daemon/interface.cpp
+++ b/daemon/interface.cpp
@@ -168,7 +168,7 @@ bool ping(const std::string& ip) {
 
   // this requires root priv
   try {
-    io_service io_service;
+    io_context io_service;
     icmp::socket socket{io_service, icmp::v4()};
     ip::icmp::endpoint destination(ip::icmp::v4(),
                                    ip::address_v4::from_string(ip).to_ulong());
diff --git a/daemon/netlink_client.hpp b/daemon/netlink_client.hpp
index 95e00cf..1842568 100644
--- a/daemon/netlink_client.hpp
+++ b/daemon/netlink_client.hpp
@@ -22,7 +22,6 @@
 
 #include <boost/asio.hpp>
 #include <boost/asio/deadline_timer.hpp>
-#include <boost/asio/io_service.hpp>
 #include <boost/bind/bind.hpp>
 #include <boost/date_time/posix_time/posix_time_types.hpp>
 #include <cstdlib>
@@ -94,7 +93,7 @@ class NetlinkClient {
   }
 
  private:
-  boost::asio::io_service io_service_;
+  boost::asio::io_context io_service_;
   boost::asio::basic_raw_socket<nl_protocol> socket_{io_service_};
   deadline_timer deadline_{io_service_};
   std::string name_;
diff --git a/daemon/sap.hpp b/daemon/sap.hpp
index fbe8e52..b91f1de 100644
--- a/daemon/sap.hpp
+++ b/daemon/sap.hpp
@@ -62,7 +62,7 @@ class SAP {
             const std::string& sdp);
 
   std::string addr_;
-  io_service io_service_;
+  io_context io_service_;
   ip::udp::socket socket_{io_service_};
   ip::udp::endpoint remote_endpoint_{
       ip::udp::endpoint(ip::address::from_string(addr_), port)};