Hi, All

         In the sd-bus.c, there are four conditions for calling the 
bus_enter_closing, as is: 

                        if (r == -ENOTCONN || r == -ECONNRESET || r == -EPIPE 
|| r == -ESHUTDOWN) {
                                   bus_enter_closing(bus);
                                   return -ECONNRESET;
                           }
   
         While working with kdbus in the kernel, the kdbus return -EPIPE  to 
the remote connection while the local connection dies, and sometimes the kdbus
also return -ECONNRESET when the local connection dies. 
  
         Thus, it seems unreasonable for the remote connection to enter 
BUS_CLOSING state when it gets -EPIPE or sometimes -ECONNRESET.


         If you agree with the above issues,  which is the better choice, to 
modify the conditions in the sd-bus.c , or to modify the errno in the kdbus 
kernel?

        Because the kdbus kernel always return -EPIPE to the remote connection 
, so it is reasonable to remove the EPIPE from the sd-bus.c ?
  And becasue the kdbus kernel sometimes returen -ECONNRESET to the remote 
connection when the local connection dies, so it is reasonable to give a new 
errno for this case? such as EPERM or EHOSTUNREACH..


B.R.
Li Cheng


   
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to