int fstat()

in fs/httpfs/httpfs_v2.cpp [215:233]


    int fstat(struct stat* buf) override {
        m_etimeout = false;
        if (!m_stat_gettime || photon::now - m_stat_gettime >= m_stat_timeout ||
            !m_authorized) {
            auto ret = refresh_stat();
            if (ret < 0) return ret;
        }
        if (m_etimeout) return -1;
        if (!m_authorized) {
            errno = EACCES;
            return -1;
        }
        if (m_exists && buf) {
            memcpy(buf, &m_stat, sizeof(struct stat));
        } else if (!m_exists) {
            errno = ENOENT;
        }
        return m_exists ? 0 : -1;
    }