'Processes `entry` by using `url`. Does not use entry[\'url\'].
Does not fail the `entry` if there is a network issue, instead just logs and returns a string error.
:param task: Task
:param entry: Entry
:param url: Url to try download
:param tmp_path: Path to store temporary files
:return: String error, if failed.'

def process_entry(self, task, entry, url, tmp_path):

    try:
        if task.options.test:
            log.info(u'Would    download:    %s', entry[u'title'])
        else:
            if (not task.manager.unit_test):
                log.info(u'Downloading:    %s', entry[u'title'])
            self.download_entry(task, entry, url, tmp_path)
    except RequestException as e:
        log.warning(u'RequestException    %s,    while    downloading    %s', e, url)
        return (u'Network    error    during    request:    %s' % e)
    except BadStatusLine as e:
        log.warning(u'Failed    to    reach    server.    Reason:    %s', getattr(e, u'message', u'N/A'))
        return u'BadStatusLine'
    except IOError as e:
        if hasattr(e, u'reason'):
            log.warning(u'Failed    to    reach    server.    Reason:    %s', e.reason)
        elif hasattr(e, u'code'):
            log.warning(u"The    server    couldn't    fulfill    the    request.    Error    code:    %s", e.code)
        log.debug(u'IOError', exc_info=True)
        return u'IOError'
    except ValueError as e:
        msg = (u'ValueError    %s' % e)
        log.warning(msg)
        log.debug(msg, exc_info=True)
        return msg
