Esempio n. 1
0
uint32_t produceHAState(void *lwssn, uint8_t *buf)
{
    AppIdSessionHA *appHA = (AppIdSessionHA *)buf;
    struct AppIdData *appIdData = _dpd.sessionAPI->get_application_data(lwssn, PP_APP_ID);
    if (appIdData && _dpd.appIdApi->getFlowType(appIdData) != APPID_FLOW_TYPE_NORMAL)
        appIdData = NULL;
    if (appIdData)
    {

        appHA->flags = APPID_HA_FLAGS_APP;
        if (TPIsAppIdAvailable(appIdData->tpsession))
            appHA->flags |= APPID_HA_FLAGS_TP_DONE;
        if (getAppIdFlag(appIdData, APPID_SESSION_SERVICE_DETECTED))
            appHA->flags |= APPID_HA_FLAGS_SVC_DONE;
        if (getAppIdFlag(appIdData, APPID_SESSION_HTTP_SESSION))
            appHA->flags |= APPID_HA_FLAGS_HTTP;
        appHA->appId[0] = appIdData->tpAppId;
        appHA->appId[1] = appIdData->serviceAppId;
        appHA->appId[2] = appIdData->clientServiceAppId;
        appHA->appId[3] = appIdData->portServiceAppId;
        appHA->appId[4] = appIdData->payloadAppId;
        appHA->appId[5] = appIdData->tpPayloadAppId;
        appHA->appId[6] = appIdData->clientAppId;
        appHA->appId[7] = appIdData->miscAppId;
    }
    else
    {
        memset(appHA->appId, 0, sizeof(appHA->appId));
    }
    return sizeof(*appHA);
}
Esempio n. 2
0
bool isAppIdAvailable(struct AppIdData *appIdData)
{
    if (appIdData)
    {
        if (getAppIdFlag(appIdData, APPID_SESSION_NO_TPI))
            return true;
        return TPIsAppIdAvailable(appIdData->tpsession);
    }
    return false;
}
Esempio n. 3
0
bool isAppIdAvailable(struct AppIdData *appIdData)
{
    return appIdData? TPIsAppIdAvailable(appIdData->tpsession): false;
}