]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/kern/uipc_socket2.c
xnu-1504.7.4.tar.gz
[apple/xnu.git] / bsd / kern / uipc_socket2.c
index c53150e51cac0ede1bad9a70ec7dff33c2624795..d47b3d9c73195ee71553aaa6e59d036e7bda3c92 100644 (file)
@@ -306,6 +306,11 @@ sonewconn_internal(struct socket *head, int connstatus)
        mac_socket_label_associate_accept(head, so);
 #endif
 
+       /* inherit traffic management properties of listener */
+       so->so_traffic_mgt_flags = head->so_traffic_mgt_flags &
+           (TRAFFIC_MGT_SO_BACKGROUND | TRAFFIC_MGT_SO_BG_REGULATE);
+       so->so_background_thread = head->so_background_thread;
+
        if (soreserve(so, head->so_snd.sb_hiwat, head->so_rcv.sb_hiwat)) {
                sflt_termsock(so);
                sodealloc(so);
@@ -1844,6 +1849,12 @@ sbtoxsockbuf(struct sockbuf *sb, struct xsockbuf *xsb)
                xsb->sb_timeo = 1;
 }
 
+int
+soisbackground(struct socket *so)
+{
+       return (so->so_traffic_mgt_flags & TRAFFIC_MGT_SO_BACKGROUND);
+}
+
 /*
  * Here is the definition of some of the basic objects in the kern.ipc
  * branch of the MIB.