+ /* cmd == 0 is the error condition */
+ if (dsi->flags & DSI_RECONSOCKET) {
+ /* we just got a reconnect so we immediately try again to receive on the new fd */
+ dsi->flags &= ~DSI_RECONSOCKET;
+ continue;
+ }
+
+ /* the client sometimes logs out (afp_logout) but doesn't close the DSI session */
+ if (dsi->flags & DSI_AFP_LOGGED_OUT) {
+ LOG(log_note, logtype_afpd, "afp_over_dsi: client logged out, terminating DSI session");
+ afp_dsi_close(obj);
+ exit(0);
+ }
+
+#if 0
+ /* got ECONNRESET in read from client => exit*/
+ if (dsi->flags & DSI_GOT_ECONNRESET) {
+ LOG(log_note, logtype_afpd, "afp_over_dsi: client connection reset");
+ afp_dsi_close(obj);
+ exit(0);
+ }
+#endif
+
+ if (dsi->flags & DSI_RECONINPROG) {
+ LOG(log_note, logtype_afpd, "afp_over_dsi: failed reconnect");
+ afp_dsi_close(obj);
+ exit(0);
+ }
+