def _close()

in fbtftp/base_handler.py [0:0]


    def _close(self, test=False):
        """
        Wrapper around `_on_close`. Its duty is to perform the necessary
        cleanup. Closing `ResponseData` object, closing UDP sockets, and
        gracefully exiting the process with exit code of 0.
        """
        try:
            self._on_close()
        except Exception as e:
            logging.exception("Exception raised when calling _on_close: %s" % e)
        finally:
            logging.debug("Closing response data object")
            if self._response_data:
                self._response_data.close()
            logging.debug("Closing socket")
            self._get_listener().close()
            logging.debug("Dying.")
            if test is False:
                sys.exit(0)