static inline void analyze_nfsv4_procedure()

in src/analysis/nfs_parser.cpp [211:240]


static inline void analyze_nfsv4_procedure(const uint32_t procedure, XDRDecoder&& c, XDRDecoder&& r, const Session* s, Analyzers& analyzers)
{
    using namespace NST::protocols::NFS4;
    using namespace NST::protocols::NFS41;

    switch(get_nfs4_compound_minor_version(procedure, c.data().data))
    {
    case NFS_V40:
        switch(procedure)
        {
        case ProcEnumNFS4::NFS_NULL:
            analyzers(&IAnalyzer::INFSv4rpcgen::null4, NFSPROC4RPCGEN_NULL{c, r, s});
            break;
        case ProcEnumNFS4::COMPOUND:
            NFSPROC4RPCGEN_COMPOUND compound{c, r, s};
            analyzers(&IAnalyzer::INFSv4rpcgen::compound4, compound);
            analyze_nfs40_operations(analyzers, compound);
            break;
        }
        break;
    case NFS_V41:
        if(ProcEnumNFS41::COMPOUND == procedure)
        {
            NFSPROC41RPCGEN_COMPOUND compound{c, r, s};
            analyzers(&IAnalyzer::INFSv41rpcgen::compound41, compound);
            analyze_nfs41_operations(analyzers, compound);
        }
        break;
    }
}