public override List<ulong> ResolveProtocolChain(string name)
{
var result = new List<ulong>();
switch (name)
{
case Defines.CONF_PROTOCOL_INBOUND_CLUSTER:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_CLUSTER);
break;
case Defines.CONF_PROTOCOL_OUTBOUND_CLUSTER:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_OUTBOUND_CLUSTER);
break;
#if HAS_PROTOCOL_DNS
case Defines.CONF_PROTOCOL_INBOUND_DNS:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_DNS);
break;
case Defines.CONF_PROTOCOL_OUTBOUND_DNS:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_OUTBOUND_DNS);
break;
#endif
#if HAS_PROTOCOL_RTMP
case Defines.CONF_PROTOCOL_INBOUND_RTMP:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_RTMP);
break;
case Defines.CONF_PROTOCOL_OUTBOUND_RTMP:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_OUTBOUND_RTMP);
break;
case Defines.CONF_PROTOCOL_INBOUND_RTMPS:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_SSL);
result.Add(ProtocolTypes.PT_INBOUND_RTMPS_DISC);
break;
case Defines.CONF_PROTOCOL_INBOUND_RTMFP:
result.Add(ProtocolTypes.PT_UDP);
result.Add(ProtocolTypes.PT_INBOUND_RTMFP);
break;
#if HAS_PROTOCOL_HTTP
case Defines.CONF_PROTOCOL_INBOUND_RTMPT:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_HTTP);
result.Add(ProtocolTypes.PT_INBOUND_HTTP_FOR_RTMP);
break;
case Defines.CONF_PROTOCOL_INBOUND_WS_RTMP:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_WEBSOCKET);
result.Add(ProtocolTypes.PT_INBOUND_RTMP);
break;
case Defines.CONF_PROTOCOL_INBOUND_WEBRTC:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_WEBSOCKET);
result.Add(ProtocolTypes.PT_INBOUND_WEBRTC_SIGNAL);
break;
case Defines.CONF_PROTOCOL_INBOUND_MP4:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_MP4);
break;
#endif
#endif
#if HAS_PROTOCOL_TS
case Defines.CONF_PROTOCOL_INBOUND_TCP_TS:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_TS);
break;
case Defines.CONF_PROTOCOL_INBOUND_UDP_TS:
result.Add(ProtocolTypes.PT_UDP);
result.Add(ProtocolTypes.PT_INBOUND_TS);
break;
#endif
#if HAS_PROTOCOL_RTP
case Defines.CONF_PROTOCOL_INBOUND_RTSP:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_RTSP);
break;
case Defines.CONF_PROTOCOL_RTSP_RTCP:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_RTSP);
result.Add(ProtocolTypes.PT_RTCP);
break;
case Defines.CONF_PROTOCOL_UDP_RTCP:
result.Add(ProtocolTypes.PT_UDP);
result.Add(ProtocolTypes.PT_RTCP);
break;
case Defines.CONF_PROTOCOL_INBOUND_RTSP_RTP:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_RTSP);
result.Add(ProtocolTypes.PT_INBOUND_RTP);
break;
case Defines.CONF_PROTOCOL_INBOUND_UDP_RTP:
result.Add(ProtocolTypes.PT_UDP);
result.Add(ProtocolTypes.PT_INBOUND_RTP);
break;
case Defines.CONF_PROTOCOL_RTP_NAT_TRAVERSAL:
result.Add(ProtocolTypes.PT_UDP);
result.Add(ProtocolTypes.PT_RTP_NAT_TRAVERSAL);
break;
#endif
#if HAS_PROTOCOL_HTTP
case Defines.CONF_PROTOCOL_OUTBOUND_HTTP:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_OUTBOUND_HTTP);
break;
#endif
#if HAS_PROTOCOL_LIVEFLV
case Defines.CONF_PROTOCOL_INBOUND_LIVE_FLV:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_LIVE_FLV);
break;
#endif
#if HAS_PROTOCOL_VAR
case Defines.CONF_PROTOCOL_INBOUND_XML_VARIANT:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_XML_VAR);
break;
case Defines.CONF_PROTOCOL_INBOUND_BIN_VARIANT:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_BIN_VAR);
break;
case Defines.CONF_PROTOCOL_OUTBOUND_XML_VARIANT:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_XML_VAR);
break;
case Defines.CONF_PROTOCOL_OUTBOUND_BIN_VARIANT:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_BIN_VAR);
break;
#if HAS_PROTOCOL_HTTP
case Defines.CONF_PROTOCOL_INBOUND_HTTP_XML_VARIANT:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_HTTP);
result.Add(ProtocolTypes.PT_XML_VAR);
break;
case Defines.CONF_PROTOCOL_INBOUND_HTTP_BIN_VARIANT:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_HTTP);
result.Add(ProtocolTypes.PT_BIN_VAR);
break;
case Defines.CONF_PROTOCOL_OUTBOUND_HTTP_XML_VARIANT:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_OUTBOUND_HTTP);
result.Add(ProtocolTypes.PT_XML_VAR);
break;
case Defines.CONF_PROTOCOL_OUTBOUND_HTTP_BIN_VARIANT:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_OUTBOUND_HTTP);
result.Add(ProtocolTypes.PT_BIN_VAR);
break;
#endif
#endif
#if HAS_PROTOCOL_CLI
case Defines.CONF_PROTOCOL_INBOUND_CLI_JSON:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_JSONCLI);
break;
#if HAS_PROTOCOL_HTTP
case Defines.CONF_PROTOCOL_INBOUND_HTTP_CLI_JSON:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_HTTP);
result.Add(ProtocolTypes.PT_HTTP_4_CLI);
result.Add(ProtocolTypes.PT_INBOUND_JSONCLI);
break;
#endif
#endif
#if HAS_PROTOCOL_MMS
case Defines.CONF_PROTOCOL_OUTBOUND_MMS:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_OUTBOUND_MMS);
break;
#endif
#if HAS_PROTOCOL_RAWHTTPSTREAM
case Defines.CONF_PROTOCOL_INBOUND_RAW_HTTP_STREAM:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_RAW_HTTP_STREAM);
break;
case Defines.CONF_PROTOCOL_INBOUND_RAW_HTTPS_STREAM:
result.Add(ProtocolTypes.PT_TCP);
result.Add(ProtocolTypes.PT_INBOUND_SSL);
result.Add(ProtocolTypes.PT_INBOUND_RAW_HTTP_STREAM);
break;
#endif
default:
Logger.FATAL("Invalid protocol chain: {0}.", name);
break;
}
return result;
}