windows-nt/Source/XPSP1/NT/termsrv/remdsk/rds/t120/mst120/mcspdu.c

2052 lines
66 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
#include <windows.h>
#include "mcspdu.h"
ASN1module_t MCSPDU_Module = NULL;
static int ASN1CALL ASN1Enc_Given(ASN1encoding_t enc, Given *val);
static int ASN1CALL ASN1Enc_Ungivable(ASN1encoding_t enc, Ungivable *val);
static int ASN1CALL ASN1Enc_Giving(ASN1encoding_t enc, Giving *val);
static int ASN1CALL ASN1Enc_Inhibited(ASN1encoding_t enc, Inhibited *val);
static int ASN1CALL ASN1Enc_Grabbed(ASN1encoding_t enc, Grabbed *val);
static int ASN1CALL ASN1Enc_ChannelAttributesAssigned(ASN1encoding_t enc, ChannelAttributesAssigned *val);
static int ASN1CALL ASN1Enc_ChannelAttributesPrivate(ASN1encoding_t enc, ChannelAttributesPrivate *val);
static int ASN1CALL ASN1Enc_ChannelAttributesUserID(ASN1encoding_t enc, ChannelAttributesUserID *val);
static int ASN1CALL ASN1Enc_ChannelAttributesStatic(ASN1encoding_t enc, ChannelAttributesStatic *val);
extern int ASN1CALL ASN1Enc_PDUDomainParameters(ASN1encoding_t enc, PDUDomainParameters *val);
extern int ASN1CALL ASN1Enc_ConnectInitialPDU(ASN1encoding_t enc, ConnectInitialPDU *val);
extern int ASN1CALL ASN1Enc_ConnectResponsePDU(ASN1encoding_t enc, ConnectResponsePDU *val);
extern int ASN1CALL ASN1Enc_ConnectAdditionalPDU(ASN1encoding_t enc, ConnectAdditionalPDU *val);
extern int ASN1CALL ASN1Enc_ConnectResultPDU(ASN1encoding_t enc, ConnectResultPDU *val);
static int ASN1CALL ASN1Enc_PlumbDomainIndicationPDU(ASN1encoding_t enc, PlumbDomainIndicationPDU *val);
static int ASN1CALL ASN1Enc_ErectDomainRequestPDU(ASN1encoding_t enc, ErectDomainRequestPDU *val);
static int ASN1CALL ASN1Enc_PDUChannelAttributes(ASN1encoding_t enc, PDUChannelAttributes *val);
static int ASN1CALL ASN1Enc_MergeChannelsRequestPDU(ASN1encoding_t enc, MergeChannelsRequestPDU *val);
static int ASN1CALL ASN1Enc_MergeChannelsConfirmPDU(ASN1encoding_t enc, MergeChannelsConfirmPDU *val);
static int ASN1CALL ASN1Enc_PurgeChannelIndicationPDU(ASN1encoding_t enc, PurgeChannelIndicationPDU *val);
static int ASN1CALL ASN1Enc_PDUTokenAttributes(ASN1encoding_t enc, PDUTokenAttributes *val);
static int ASN1CALL ASN1Enc_SetOfUserIDs(ASN1encoding_t enc, PSetOfUserIDs *val);
static int ASN1CALL ASN1Enc_SetOfPDUChannelAttributes(ASN1encoding_t enc, PSetOfPDUChannelAttributes *val);
static int ASN1CALL ASN1Enc_SetOfChannelIDs(ASN1encoding_t enc, PSetOfChannelIDs *val);
static int ASN1CALL ASN1Enc_SetOfPDUTokenAttributes(ASN1encoding_t enc, PSetOfPDUTokenAttributes *val);
static int ASN1CALL ASN1Enc_SetOfTokenIDs(ASN1encoding_t enc, PSetOfTokenIDs *val);
static int ASN1CALL ASN1Enc_MergeTokensRequestPDU(ASN1encoding_t enc, MergeTokensRequestPDU *val);
static int ASN1CALL ASN1Enc_MergeTokensConfirmPDU(ASN1encoding_t enc, MergeTokensConfirmPDU *val);
static int ASN1CALL ASN1Enc_PurgeTokenIndicationPDU(ASN1encoding_t enc, PurgeTokenIndicationPDU *val);
static int ASN1CALL ASN1Enc_DisconnectProviderUltimatumPDU(ASN1encoding_t enc, DisconnectProviderUltimatumPDU *val);
static int ASN1CALL ASN1Enc_RejectUltimatumPDU(ASN1encoding_t enc, RejectUltimatumPDU *val);
static int ASN1CALL ASN1Enc_AttachUserConfirmPDU(ASN1encoding_t enc, AttachUserConfirmPDU *val);
static int ASN1CALL ASN1Enc_DetachUserRequestPDU(ASN1encoding_t enc, DetachUserRequestPDU *val);
static int ASN1CALL ASN1Enc_DetachUserIndicationPDU(ASN1encoding_t enc, DetachUserIndicationPDU *val);
static int ASN1CALL ASN1Enc_ChannelJoinRequestPDU(ASN1encoding_t enc, ChannelJoinRequestPDU *val);
static int ASN1CALL ASN1Enc_ChannelJoinConfirmPDU(ASN1encoding_t enc, ChannelJoinConfirmPDU *val);
static int ASN1CALL ASN1Enc_ChannelLeaveRequestPDU(ASN1encoding_t enc, ChannelLeaveRequestPDU *val);
static int ASN1CALL ASN1Enc_ChannelConveneRequestPDU(ASN1encoding_t enc, ChannelConveneRequestPDU *val);
static int ASN1CALL ASN1Enc_ChannelConveneConfirmPDU(ASN1encoding_t enc, ChannelConveneConfirmPDU *val);
static int ASN1CALL ASN1Enc_ChannelDisbandRequestPDU(ASN1encoding_t enc, ChannelDisbandRequestPDU *val);
static int ASN1CALL ASN1Enc_ChannelDisbandIndicationPDU(ASN1encoding_t enc, ChannelDisbandIndicationPDU *val);
static int ASN1CALL ASN1Enc_ChannelAdmitRequestPDU(ASN1encoding_t enc, ChannelAdmitRequestPDU *val);
static int ASN1CALL ASN1Enc_ChannelAdmitIndicationPDU(ASN1encoding_t enc, ChannelAdmitIndicationPDU *val);
static int ASN1CALL ASN1Enc_ChannelExpelRequestPDU(ASN1encoding_t enc, ChannelExpelRequestPDU *val);
static int ASN1CALL ASN1Enc_ChannelExpelIndicationPDU(ASN1encoding_t enc, ChannelExpelIndicationPDU *val);
static int ASN1CALL ASN1Enc_TokenGrabRequestPDU(ASN1encoding_t enc, TokenGrabRequestPDU *val);
static int ASN1CALL ASN1Enc_TokenGrabConfirmPDU(ASN1encoding_t enc, TokenGrabConfirmPDU *val);
static int ASN1CALL ASN1Enc_TokenInhibitRequestPDU(ASN1encoding_t enc, TokenInhibitRequestPDU *val);
static int ASN1CALL ASN1Enc_TokenInhibitConfirmPDU(ASN1encoding_t enc, TokenInhibitConfirmPDU *val);
static int ASN1CALL ASN1Enc_TokenGiveRequestPDU(ASN1encoding_t enc, TokenGiveRequestPDU *val);
static int ASN1CALL ASN1Enc_TokenGiveIndicationPDU(ASN1encoding_t enc, TokenGiveIndicationPDU *val);
static int ASN1CALL ASN1Enc_TokenGiveResponsePDU(ASN1encoding_t enc, TokenGiveResponsePDU *val);
static int ASN1CALL ASN1Enc_TokenGiveConfirmPDU(ASN1encoding_t enc, TokenGiveConfirmPDU *val);
static int ASN1CALL ASN1Enc_TokenPleaseRequestPDU(ASN1encoding_t enc, TokenPleaseRequestPDU *val);
static int ASN1CALL ASN1Enc_TokenPleaseIndicationPDU(ASN1encoding_t enc, TokenPleaseIndicationPDU *val);
static int ASN1CALL ASN1Enc_TokenReleaseRequestPDU(ASN1encoding_t enc, TokenReleaseRequestPDU *val);
static int ASN1CALL ASN1Enc_TokenReleaseConfirmPDU(ASN1encoding_t enc, TokenReleaseConfirmPDU *val);
static int ASN1CALL ASN1Enc_TokenTestRequestPDU(ASN1encoding_t enc, TokenTestRequestPDU *val);
static int ASN1CALL ASN1Enc_TokenTestConfirmPDU(ASN1encoding_t enc, TokenTestConfirmPDU *val);
extern int ASN1CALL ASN1Enc_ConnectMCSPDU(ASN1encoding_t enc, ConnectMCSPDU *val);
static int ASN1CALL ASN1Enc_DomainMCSPDU(ASN1encoding_t enc, DomainMCSPDU *val);
static int ASN1CALL ASN1Dec_Given(ASN1decoding_t dec, Given *val);
static int ASN1CALL ASN1Dec_Ungivable(ASN1decoding_t dec, Ungivable *val);
static int ASN1CALL ASN1Dec_Giving(ASN1decoding_t dec, Giving *val);
static int ASN1CALL ASN1Dec_Inhibited(ASN1decoding_t dec, Inhibited *val);
static int ASN1CALL ASN1Dec_Grabbed(ASN1decoding_t dec, Grabbed *val);
static int ASN1CALL ASN1Dec_ChannelAttributesAssigned(ASN1decoding_t dec, ChannelAttributesAssigned *val);
static int ASN1CALL ASN1Dec_ChannelAttributesPrivate(ASN1decoding_t dec, ChannelAttributesPrivate *val);
static int ASN1CALL ASN1Dec_ChannelAttributesUserID(ASN1decoding_t dec, ChannelAttributesUserID *val);
static int ASN1CALL ASN1Dec_ChannelAttributesStatic(ASN1decoding_t dec, ChannelAttributesStatic *val);
extern int ASN1CALL ASN1Dec_PDUDomainParameters(ASN1decoding_t dec, PDUDomainParameters *val);
extern int ASN1CALL ASN1Dec_ConnectInitialPDU(ASN1decoding_t dec, ConnectInitialPDU *val);
extern int ASN1CALL ASN1Dec_ConnectResponsePDU(ASN1decoding_t dec, ConnectResponsePDU *val);
extern int ASN1CALL ASN1Dec_ConnectAdditionalPDU(ASN1decoding_t dec, ConnectAdditionalPDU *val);
extern int ASN1CALL ASN1Dec_ConnectResultPDU(ASN1decoding_t dec, ConnectResultPDU *val);
static int ASN1CALL ASN1Dec_PlumbDomainIndicationPDU(ASN1decoding_t dec, PlumbDomainIndicationPDU *val);
static int ASN1CALL ASN1Dec_ErectDomainRequestPDU(ASN1decoding_t dec, ErectDomainRequestPDU *val);
static int ASN1CALL ASN1Dec_PDUChannelAttributes(ASN1decoding_t dec, PDUChannelAttributes *val);
static int ASN1CALL ASN1Dec_MergeChannelsRequestPDU(ASN1decoding_t dec, MergeChannelsRequestPDU *val);
static int ASN1CALL ASN1Dec_MergeChannelsConfirmPDU(ASN1decoding_t dec, MergeChannelsConfirmPDU *val);
static int ASN1CALL ASN1Dec_PurgeChannelIndicationPDU(ASN1decoding_t dec, PurgeChannelIndicationPDU *val);
static int ASN1CALL ASN1Dec_PDUTokenAttributes(ASN1decoding_t dec, PDUTokenAttributes *val);
static int ASN1CALL ASN1Dec_SetOfUserIDs(ASN1decoding_t dec, PSetOfUserIDs *val);
static int ASN1CALL ASN1Dec_SetOfPDUChannelAttributes(ASN1decoding_t dec, PSetOfPDUChannelAttributes *val);
static int ASN1CALL ASN1Dec_SetOfChannelIDs(ASN1decoding_t dec, PSetOfChannelIDs *val);
static int ASN1CALL ASN1Dec_SetOfPDUTokenAttributes(ASN1decoding_t dec, PSetOfPDUTokenAttributes *val);
static int ASN1CALL ASN1Dec_SetOfTokenIDs(ASN1decoding_t dec, PSetOfTokenIDs *val);
static int ASN1CALL ASN1Dec_MergeTokensRequestPDU(ASN1decoding_t dec, MergeTokensRequestPDU *val);
static int ASN1CALL ASN1Dec_MergeTokensConfirmPDU(ASN1decoding_t dec, MergeTokensConfirmPDU *val);
static int ASN1CALL ASN1Dec_PurgeTokenIndicationPDU(ASN1decoding_t dec, PurgeTokenIndicationPDU *val);
static int ASN1CALL ASN1Dec_DisconnectProviderUltimatumPDU(ASN1decoding_t dec, DisconnectProviderUltimatumPDU *val);
static int ASN1CALL ASN1Dec_RejectUltimatumPDU(ASN1decoding_t dec, RejectUltimatumPDU *val);
static int ASN1CALL ASN1Dec_AttachUserConfirmPDU(ASN1decoding_t dec, AttachUserConfirmPDU *val);
static int ASN1CALL ASN1Dec_DetachUserRequestPDU(ASN1decoding_t dec, DetachUserRequestPDU *val);
static int ASN1CALL ASN1Dec_DetachUserIndicationPDU(ASN1decoding_t dec, DetachUserIndicationPDU *val);
static int ASN1CALL ASN1Dec_ChannelJoinRequestPDU(ASN1decoding_t dec, ChannelJoinRequestPDU *val);
static int ASN1CALL ASN1Dec_ChannelJoinConfirmPDU(ASN1decoding_t dec, ChannelJoinConfirmPDU *val);
static int ASN1CALL ASN1Dec_ChannelLeaveRequestPDU(ASN1decoding_t dec, ChannelLeaveRequestPDU *val);
static int ASN1CALL ASN1Dec_ChannelConveneRequestPDU(ASN1decoding_t dec, ChannelConveneRequestPDU *val);
static int ASN1CALL ASN1Dec_ChannelConveneConfirmPDU(ASN1decoding_t dec, ChannelConveneConfirmPDU *val);
static int ASN1CALL ASN1Dec_ChannelDisbandRequestPDU(ASN1decoding_t dec, ChannelDisbandRequestPDU *val);
static int ASN1CALL ASN1Dec_ChannelDisbandIndicationPDU(ASN1decoding_t dec, ChannelDisbandIndicationPDU *val);
static int ASN1CALL ASN1Dec_ChannelAdmitRequestPDU(ASN1decoding_t dec, ChannelAdmitRequestPDU *val);
static int ASN1CALL ASN1Dec_ChannelAdmitIndicationPDU(ASN1decoding_t dec, ChannelAdmitIndicationPDU *val);
static int ASN1CALL ASN1Dec_ChannelExpelRequestPDU(ASN1decoding_t dec, ChannelExpelRequestPDU *val);
static int ASN1CALL ASN1Dec_ChannelExpelIndicationPDU(ASN1decoding_t dec, ChannelExpelIndicationPDU *val);
static int ASN1CALL ASN1Dec_TokenGrabRequestPDU(ASN1decoding_t dec, TokenGrabRequestPDU *val);
static int ASN1CALL ASN1Dec_TokenGrabConfirmPDU(ASN1decoding_t dec, TokenGrabConfirmPDU *val);
static int ASN1CALL ASN1Dec_TokenInhibitRequestPDU(ASN1decoding_t dec, TokenInhibitRequestPDU *val);
static int ASN1CALL ASN1Dec_TokenInhibitConfirmPDU(ASN1decoding_t dec, TokenInhibitConfirmPDU *val);
static int ASN1CALL ASN1Dec_TokenGiveRequestPDU(ASN1decoding_t dec, TokenGiveRequestPDU *val);
static int ASN1CALL ASN1Dec_TokenGiveIndicationPDU(ASN1decoding_t dec, TokenGiveIndicationPDU *val);
static int ASN1CALL ASN1Dec_TokenGiveResponsePDU(ASN1decoding_t dec, TokenGiveResponsePDU *val);
static int ASN1CALL ASN1Dec_TokenGiveConfirmPDU(ASN1decoding_t dec, TokenGiveConfirmPDU *val);
static int ASN1CALL ASN1Dec_TokenPleaseRequestPDU(ASN1decoding_t dec, TokenPleaseRequestPDU *val);
static int ASN1CALL ASN1Dec_TokenPleaseIndicationPDU(ASN1decoding_t dec, TokenPleaseIndicationPDU *val);
static int ASN1CALL ASN1Dec_TokenReleaseRequestPDU(ASN1decoding_t dec, TokenReleaseRequestPDU *val);
static int ASN1CALL ASN1Dec_TokenReleaseConfirmPDU(ASN1decoding_t dec, TokenReleaseConfirmPDU *val);
static int ASN1CALL ASN1Dec_TokenTestRequestPDU(ASN1decoding_t dec, TokenTestRequestPDU *val);
static int ASN1CALL ASN1Dec_TokenTestConfirmPDU(ASN1decoding_t dec, TokenTestConfirmPDU *val);
extern int ASN1CALL ASN1Dec_ConnectMCSPDU(ASN1decoding_t dec, ConnectMCSPDU *val);
static int ASN1CALL ASN1Dec_DomainMCSPDU(ASN1decoding_t dec, DomainMCSPDU *val);
static void ASN1CALL ASN1Free_Inhibited(Inhibited *val);
static void ASN1CALL ASN1Free_ChannelAttributesPrivate(ChannelAttributesPrivate *val);
static void ASN1CALL ASN1Free_ConnectInitialPDU(ConnectInitialPDU *val);
static void ASN1CALL ASN1Free_ConnectResponsePDU(ConnectResponsePDU *val);
static void ASN1CALL ASN1Free_PDUChannelAttributes(PDUChannelAttributes *val);
static void ASN1CALL ASN1Free_MergeChannelsRequestPDU(MergeChannelsRequestPDU *val);
static void ASN1CALL ASN1Free_MergeChannelsConfirmPDU(MergeChannelsConfirmPDU *val);
static void ASN1CALL ASN1Free_PurgeChannelIndicationPDU(PurgeChannelIndicationPDU *val);
static void ASN1CALL ASN1Free_PDUTokenAttributes(PDUTokenAttributes *val);
static void ASN1CALL ASN1Free_SetOfUserIDs(PSetOfUserIDs *val);
static void ASN1CALL ASN1Free_SetOfPDUChannelAttributes(PSetOfPDUChannelAttributes *val);
static void ASN1CALL ASN1Free_SetOfChannelIDs(PSetOfChannelIDs *val);
static void ASN1CALL ASN1Free_SetOfPDUTokenAttributes(PSetOfPDUTokenAttributes *val);
static void ASN1CALL ASN1Free_SetOfTokenIDs(PSetOfTokenIDs *val);
static void ASN1CALL ASN1Free_MergeTokensRequestPDU(MergeTokensRequestPDU *val);
static void ASN1CALL ASN1Free_MergeTokensConfirmPDU(MergeTokensConfirmPDU *val);
static void ASN1CALL ASN1Free_PurgeTokenIndicationPDU(PurgeTokenIndicationPDU *val);
static void ASN1CALL ASN1Free_RejectUltimatumPDU(RejectUltimatumPDU *val);
static void ASN1CALL ASN1Free_DetachUserRequestPDU(DetachUserRequestPDU *val);
static void ASN1CALL ASN1Free_DetachUserIndicationPDU(DetachUserIndicationPDU *val);
static void ASN1CALL ASN1Free_ChannelLeaveRequestPDU(ChannelLeaveRequestPDU *val);
static void ASN1CALL ASN1Free_ChannelAdmitRequestPDU(ChannelAdmitRequestPDU *val);
static void ASN1CALL ASN1Free_ChannelAdmitIndicationPDU(ChannelAdmitIndicationPDU *val);
static void ASN1CALL ASN1Free_ChannelExpelRequestPDU(ChannelExpelRequestPDU *val);
static void ASN1CALL ASN1Free_ChannelExpelIndicationPDU(ChannelExpelIndicationPDU *val);
static void ASN1CALL ASN1Free_ConnectMCSPDU(ConnectMCSPDU *val);
static void ASN1CALL ASN1Free_DomainMCSPDU(DomainMCSPDU *val);
typedef ASN1PerEncFun_t ASN1EncFun_t;
static const ASN1EncFun_t encfntab[2] = {
(ASN1EncFun_t) ASN1Enc_ConnectMCSPDU,
(ASN1EncFun_t) ASN1Enc_DomainMCSPDU,
};
typedef ASN1PerDecFun_t ASN1DecFun_t;
static const ASN1DecFun_t decfntab[2] = {
(ASN1DecFun_t) ASN1Dec_ConnectMCSPDU,
(ASN1DecFun_t) ASN1Dec_DomainMCSPDU,
};
static const ASN1FreeFun_t freefntab[2] = {
(ASN1FreeFun_t) ASN1Free_ConnectMCSPDU,
(ASN1FreeFun_t) ASN1Free_DomainMCSPDU,
};
static const ULONG sizetab[2] = {
SIZE_MCSPDU_Module_PDU_0,
SIZE_MCSPDU_Module_PDU_1,
};
/* forward declarations of values: */
/* definitions of value components: */
/* definitions of values: */
void ASN1CALL MCSPDU_Module_Startup(void)
{
MCSPDU_Module = ASN1_CreateModule(0x10000, ASN1_PER_RULE_ALIGNED, ASN1FLAGS_NONE, 2, (const ASN1GenericFun_t *) encfntab, (const ASN1GenericFun_t *) decfntab, freefntab, sizetab, 0x73636d);
}
void ASN1CALL MCSPDU_Module_Cleanup(void)
{
ASN1_CloseModule(MCSPDU_Module);
MCSPDU_Module = NULL;
}
static int ASN1CALL ASN1Enc_Given(ASN1encoding_t enc, Given *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->recipient - 1001))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Given(ASN1decoding_t dec, Given *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
if (!ASN1PERDecUnsignedShort(dec, &(val)->recipient))
return 0;
(val)->recipient += 1001;
return 1;
}
static int ASN1CALL ASN1Enc_Ungivable(ASN1encoding_t enc, Ungivable *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->grabber - 1001))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Ungivable(ASN1decoding_t dec, Ungivable *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
if (!ASN1PERDecUnsignedShort(dec, &(val)->grabber))
return 0;
(val)->grabber += 1001;
return 1;
}
static int ASN1CALL ASN1Enc_Giving(ASN1encoding_t enc, Giving *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->grabber - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->recipient - 1001))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Giving(ASN1decoding_t dec, Giving *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
if (!ASN1PERDecUnsignedShort(dec, &(val)->grabber))
return 0;
(val)->grabber += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->recipient))
return 0;
(val)->recipient += 1001;
return 1;
}
static int ASN1CALL ASN1Enc_Inhibited(ASN1encoding_t enc, Inhibited *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
if (!ASN1Enc_SetOfUserIDs(enc, &(val)->inhibitors))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Inhibited(ASN1decoding_t dec, Inhibited *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
if (!ASN1Dec_SetOfUserIDs(dec, &(val)->inhibitors))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Inhibited(Inhibited *val)
{
if (val) {
ASN1Free_SetOfUserIDs(&(val)->inhibitors);
}
}
static int ASN1CALL ASN1Enc_Grabbed(ASN1encoding_t enc, Grabbed *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->grabber - 1001))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Grabbed(ASN1decoding_t dec, Grabbed *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
if (!ASN1PERDecUnsignedShort(dec, &(val)->grabber))
return 0;
(val)->grabber += 1001;
return 1;
}
static int ASN1CALL ASN1Enc_ChannelAttributesAssigned(ASN1encoding_t enc, ChannelAttributesAssigned *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->channel_id - 1001))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ChannelAttributesAssigned(ASN1decoding_t dec, ChannelAttributesAssigned *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->channel_id))
return 0;
(val)->channel_id += 1001;
return 1;
}
static int ASN1CALL ASN1Enc_ChannelAttributesPrivate(ASN1encoding_t enc, ChannelAttributesPrivate *val)
{
if (!ASN1PEREncBoolean(enc, (val)->joined))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->channel_id - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->manager - 1001))
return 0;
if (!ASN1Enc_SetOfUserIDs(enc, &(val)->admitted))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ChannelAttributesPrivate(ASN1decoding_t dec, ChannelAttributesPrivate *val)
{
if (!ASN1PERDecBoolean(dec, &(val)->joined))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->channel_id))
return 0;
(val)->channel_id += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->manager))
return 0;
(val)->manager += 1001;
if (!ASN1Dec_SetOfUserIDs(dec, &(val)->admitted))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ChannelAttributesPrivate(ChannelAttributesPrivate *val)
{
if (val) {
ASN1Free_SetOfUserIDs(&(val)->admitted);
}
}
static int ASN1CALL ASN1Enc_ChannelAttributesUserID(ASN1encoding_t enc, ChannelAttributesUserID *val)
{
if (!ASN1PEREncBoolean(enc, (val)->joined))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->user_id - 1001))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ChannelAttributesUserID(ASN1decoding_t dec, ChannelAttributesUserID *val)
{
if (!ASN1PERDecBoolean(dec, &(val)->joined))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->user_id))
return 0;
(val)->user_id += 1001;
return 1;
}
static int ASN1CALL ASN1Enc_ChannelAttributesStatic(ASN1encoding_t enc, ChannelAttributesStatic *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->channel_id - 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ChannelAttributesStatic(ASN1decoding_t dec, ChannelAttributesStatic *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->channel_id))
return 0;
(val)->channel_id += 1;
return 1;
}
static void ASN1CALL ASN1Free_ConnectInitialPDU(ConnectInitialPDU *val)
{
if (val) {
ASN1octetstring_free(&(val)->calling_domain_selector);
ASN1octetstring_free(&(val)->called_domain_selector);
ASN1octetstring_free(&(val)->user_data);
}
}
static void ASN1CALL ASN1Free_ConnectResponsePDU(ConnectResponsePDU *val)
{
if (val) {
ASN1octetstring_free(&(val)->user_data);
}
}
static int ASN1CALL ASN1Enc_PlumbDomainIndicationPDU(ASN1encoding_t enc, PlumbDomainIndicationPDU *val)
{
if (!ASN1PEREncUnsignedInteger(enc, (val)->height_limit))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_PlumbDomainIndicationPDU(ASN1decoding_t dec, PlumbDomainIndicationPDU *val)
{
if (!ASN1PERDecUnsignedInteger(dec, &(val)->height_limit))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_ErectDomainRequestPDU(ASN1encoding_t enc, ErectDomainRequestPDU *val)
{
if (!ASN1PEREncUnsignedInteger(enc, (val)->sub_height))
return 0;
if (!ASN1PEREncUnsignedInteger(enc, (val)->sub_interval))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ErectDomainRequestPDU(ASN1decoding_t dec, ErectDomainRequestPDU *val)
{
if (!ASN1PERDecUnsignedInteger(dec, &(val)->sub_height))
return 0;
if (!ASN1PERDecUnsignedInteger(dec, &(val)->sub_interval))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_PDUChannelAttributes(ASN1encoding_t enc, PDUChannelAttributes *val)
{
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 2))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_ChannelAttributesStatic(enc, &(val)->u.channel_attributes_static))
return 0;
break;
case 2:
if (!ASN1Enc_ChannelAttributesUserID(enc, &(val)->u.channel_attributes_user_id))
return 0;
break;
case 3:
if (!ASN1Enc_ChannelAttributesPrivate(enc, &(val)->u.channel_attributes_private))
return 0;
break;
case 4:
if (!ASN1Enc_ChannelAttributesAssigned(enc, &(val)->u.channel_attributes_assigned))
return 0;
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_PDUChannelAttributes(ASN1decoding_t dec, PDUChannelAttributes *val)
{
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 2))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_ChannelAttributesStatic(dec, &(val)->u.channel_attributes_static))
return 0;
break;
case 2:
if (!ASN1Dec_ChannelAttributesUserID(dec, &(val)->u.channel_attributes_user_id))
return 0;
break;
case 3:
if (!ASN1Dec_ChannelAttributesPrivate(dec, &(val)->u.channel_attributes_private))
return 0;
break;
case 4:
if (!ASN1Dec_ChannelAttributesAssigned(dec, &(val)->u.channel_attributes_assigned))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_PDUChannelAttributes(PDUChannelAttributes *val)
{
if (val) {
switch ((val)->choice) {
case 3:
ASN1Free_ChannelAttributesPrivate(&(val)->u.channel_attributes_private);
break;
}
}
}
static int ASN1CALL ASN1Enc_MergeChannelsRequestPDU(ASN1encoding_t enc, MergeChannelsRequestPDU *val)
{
if (!ASN1Enc_SetOfPDUChannelAttributes(enc, &(val)->merge_channels))
return 0;
if (!ASN1Enc_SetOfChannelIDs(enc, &(val)->purge_channel_ids))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_MergeChannelsRequestPDU(ASN1decoding_t dec, MergeChannelsRequestPDU *val)
{
if (!ASN1Dec_SetOfPDUChannelAttributes(dec, &(val)->merge_channels))
return 0;
if (!ASN1Dec_SetOfChannelIDs(dec, &(val)->purge_channel_ids))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_MergeChannelsRequestPDU(MergeChannelsRequestPDU *val)
{
if (val) {
ASN1Free_SetOfPDUChannelAttributes(&(val)->merge_channels);
ASN1Free_SetOfChannelIDs(&(val)->purge_channel_ids);
}
}
static int ASN1CALL ASN1Enc_MergeChannelsConfirmPDU(ASN1encoding_t enc, MergeChannelsConfirmPDU *val)
{
if (!ASN1Enc_SetOfPDUChannelAttributes(enc, &(val)->merge_channels))
return 0;
if (!ASN1Enc_SetOfChannelIDs(enc, &(val)->purge_channel_ids))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_MergeChannelsConfirmPDU(ASN1decoding_t dec, MergeChannelsConfirmPDU *val)
{
if (!ASN1Dec_SetOfPDUChannelAttributes(dec, &(val)->merge_channels))
return 0;
if (!ASN1Dec_SetOfChannelIDs(dec, &(val)->purge_channel_ids))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_MergeChannelsConfirmPDU(MergeChannelsConfirmPDU *val)
{
if (val) {
ASN1Free_SetOfPDUChannelAttributes(&(val)->merge_channels);
ASN1Free_SetOfChannelIDs(&(val)->purge_channel_ids);
}
}
static int ASN1CALL ASN1Enc_PurgeChannelIndicationPDU(ASN1encoding_t enc, PurgeChannelIndicationPDU *val)
{
if (!ASN1Enc_SetOfUserIDs(enc, &(val)->detach_user_ids))
return 0;
if (!ASN1Enc_SetOfChannelIDs(enc, &(val)->purge_channel_ids))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_PurgeChannelIndicationPDU(ASN1decoding_t dec, PurgeChannelIndicationPDU *val)
{
if (!ASN1Dec_SetOfUserIDs(dec, &(val)->detach_user_ids))
return 0;
if (!ASN1Dec_SetOfChannelIDs(dec, &(val)->purge_channel_ids))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_PurgeChannelIndicationPDU(PurgeChannelIndicationPDU *val)
{
if (val) {
ASN1Free_SetOfUserIDs(&(val)->detach_user_ids);
ASN1Free_SetOfChannelIDs(&(val)->purge_channel_ids);
}
}
static int ASN1CALL ASN1Enc_PDUTokenAttributes(ASN1encoding_t enc, PDUTokenAttributes *val)
{
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 3))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_Grabbed(enc, &(val)->u.grabbed))
return 0;
break;
case 2:
if (!ASN1Enc_Inhibited(enc, &(val)->u.inhibited))
return 0;
break;
case 3:
if (!ASN1Enc_Giving(enc, &(val)->u.giving))
return 0;
break;
case 4:
if (!ASN1Enc_Ungivable(enc, &(val)->u.ungivable))
return 0;
break;
case 5:
if (!ASN1Enc_Given(enc, &(val)->u.given))
return 0;
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_PDUTokenAttributes(ASN1decoding_t dec, PDUTokenAttributes *val)
{
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 3))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_Grabbed(dec, &(val)->u.grabbed))
return 0;
break;
case 2:
if (!ASN1Dec_Inhibited(dec, &(val)->u.inhibited))
return 0;
break;
case 3:
if (!ASN1Dec_Giving(dec, &(val)->u.giving))
return 0;
break;
case 4:
if (!ASN1Dec_Ungivable(dec, &(val)->u.ungivable))
return 0;
break;
case 5:
if (!ASN1Dec_Given(dec, &(val)->u.given))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_PDUTokenAttributes(PDUTokenAttributes *val)
{
if (val) {
switch ((val)->choice) {
case 2:
ASN1Free_Inhibited(&(val)->u.inhibited);
break;
}
}
}
static int ASN1CALL ASN1Enc_SetOfUserIDs(ASN1encoding_t enc, PSetOfUserIDs *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfUserIDs_ElmFn);
}
static int ASN1CALL ASN1Enc_SetOfUserIDs_ElmFn(ASN1encoding_t enc, PSetOfUserIDs val)
{
if (!ASN1PEREncUnsignedShort(enc, val->value - 1001))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_SetOfUserIDs(ASN1decoding_t dec, PSetOfUserIDs *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfUserIDs_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_SetOfUserIDs_ElmFn(ASN1decoding_t dec, PSetOfUserIDs val)
{
if (!ASN1PERDecUnsignedShort(dec, &val->value))
return 0;
val->value += 1001;
return 1;
}
static void ASN1CALL ASN1Free_SetOfUserIDs(PSetOfUserIDs *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfUserIDs_ElmFn);
}
}
static void ASN1CALL ASN1Free_SetOfUserIDs_ElmFn(PSetOfUserIDs val)
{
if (val) {
}
}
static int ASN1CALL ASN1Enc_SetOfPDUChannelAttributes(ASN1encoding_t enc, PSetOfPDUChannelAttributes *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfPDUChannelAttributes_ElmFn);
}
static int ASN1CALL ASN1Enc_SetOfPDUChannelAttributes_ElmFn(ASN1encoding_t enc, PSetOfPDUChannelAttributes val)
{
if (!ASN1Enc_PDUChannelAttributes(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_SetOfPDUChannelAttributes(ASN1decoding_t dec, PSetOfPDUChannelAttributes *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfPDUChannelAttributes_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_SetOfPDUChannelAttributes_ElmFn(ASN1decoding_t dec, PSetOfPDUChannelAttributes val)
{
if (!ASN1Dec_PDUChannelAttributes(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_SetOfPDUChannelAttributes(PSetOfPDUChannelAttributes *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfPDUChannelAttributes_ElmFn);
}
}
static void ASN1CALL ASN1Free_SetOfPDUChannelAttributes_ElmFn(PSetOfPDUChannelAttributes val)
{
if (val) {
ASN1Free_PDUChannelAttributes(&val->value);
}
}
static int ASN1CALL ASN1Enc_SetOfChannelIDs(ASN1encoding_t enc, PSetOfChannelIDs *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfChannelIDs_ElmFn);
}
static int ASN1CALL ASN1Enc_SetOfChannelIDs_ElmFn(ASN1encoding_t enc, PSetOfChannelIDs val)
{
if (!ASN1PEREncUnsignedShort(enc, val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_SetOfChannelIDs(ASN1decoding_t dec, PSetOfChannelIDs *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfChannelIDs_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_SetOfChannelIDs_ElmFn(ASN1decoding_t dec, PSetOfChannelIDs val)
{
if (!ASN1PERDecUnsignedShort(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_SetOfChannelIDs(PSetOfChannelIDs *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfChannelIDs_ElmFn);
}
}
static void ASN1CALL ASN1Free_SetOfChannelIDs_ElmFn(PSetOfChannelIDs val)
{
if (val) {
}
}
static int ASN1CALL ASN1Enc_SetOfPDUTokenAttributes(ASN1encoding_t enc, PSetOfPDUTokenAttributes *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfPDUTokenAttributes_ElmFn);
}
static int ASN1CALL ASN1Enc_SetOfPDUTokenAttributes_ElmFn(ASN1encoding_t enc, PSetOfPDUTokenAttributes val)
{
if (!ASN1Enc_PDUTokenAttributes(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_SetOfPDUTokenAttributes(ASN1decoding_t dec, PSetOfPDUTokenAttributes *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfPDUTokenAttributes_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_SetOfPDUTokenAttributes_ElmFn(ASN1decoding_t dec, PSetOfPDUTokenAttributes val)
{
if (!ASN1Dec_PDUTokenAttributes(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_SetOfPDUTokenAttributes(PSetOfPDUTokenAttributes *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfPDUTokenAttributes_ElmFn);
}
}
static void ASN1CALL ASN1Free_SetOfPDUTokenAttributes_ElmFn(PSetOfPDUTokenAttributes val)
{
if (val) {
ASN1Free_PDUTokenAttributes(&val->value);
}
}
static int ASN1CALL ASN1Enc_SetOfTokenIDs(ASN1encoding_t enc, PSetOfTokenIDs *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfTokenIDs_ElmFn);
}
static int ASN1CALL ASN1Enc_SetOfTokenIDs_ElmFn(ASN1encoding_t enc, PSetOfTokenIDs val)
{
if (!ASN1PEREncUnsignedShort(enc, val->value - 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_SetOfTokenIDs(ASN1decoding_t dec, PSetOfTokenIDs *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfTokenIDs_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_SetOfTokenIDs_ElmFn(ASN1decoding_t dec, PSetOfTokenIDs val)
{
if (!ASN1PERDecUnsignedShort(dec, &val->value))
return 0;
val->value += 1;
return 1;
}
static void ASN1CALL ASN1Free_SetOfTokenIDs(PSetOfTokenIDs *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfTokenIDs_ElmFn);
}
}
static void ASN1CALL ASN1Free_SetOfTokenIDs_ElmFn(PSetOfTokenIDs val)
{
if (val) {
}
}
static int ASN1CALL ASN1Enc_MergeTokensRequestPDU(ASN1encoding_t enc, MergeTokensRequestPDU *val)
{
if (!ASN1Enc_SetOfPDUTokenAttributes(enc, &(val)->merge_tokens))
return 0;
if (!ASN1Enc_SetOfTokenIDs(enc, &(val)->purge_token_ids))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_MergeTokensRequestPDU(ASN1decoding_t dec, MergeTokensRequestPDU *val)
{
if (!ASN1Dec_SetOfPDUTokenAttributes(dec, &(val)->merge_tokens))
return 0;
if (!ASN1Dec_SetOfTokenIDs(dec, &(val)->purge_token_ids))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_MergeTokensRequestPDU(MergeTokensRequestPDU *val)
{
if (val) {
ASN1Free_SetOfPDUTokenAttributes(&(val)->merge_tokens);
ASN1Free_SetOfTokenIDs(&(val)->purge_token_ids);
}
}
static int ASN1CALL ASN1Enc_MergeTokensConfirmPDU(ASN1encoding_t enc, MergeTokensConfirmPDU *val)
{
if (!ASN1Enc_SetOfPDUTokenAttributes(enc, &(val)->merge_tokens))
return 0;
if (!ASN1Enc_SetOfTokenIDs(enc, &(val)->purge_token_ids))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_MergeTokensConfirmPDU(ASN1decoding_t dec, MergeTokensConfirmPDU *val)
{
if (!ASN1Dec_SetOfPDUTokenAttributes(dec, &(val)->merge_tokens))
return 0;
if (!ASN1Dec_SetOfTokenIDs(dec, &(val)->purge_token_ids))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_MergeTokensConfirmPDU(MergeTokensConfirmPDU *val)
{
if (val) {
ASN1Free_SetOfPDUTokenAttributes(&(val)->merge_tokens);
ASN1Free_SetOfTokenIDs(&(val)->purge_token_ids);
}
}
static int ASN1CALL ASN1Enc_PurgeTokenIndicationPDU(ASN1encoding_t enc, PurgeTokenIndicationPDU *val)
{
if (!ASN1Enc_SetOfTokenIDs(enc, &(val)->purge_token_ids))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_PurgeTokenIndicationPDU(ASN1decoding_t dec, PurgeTokenIndicationPDU *val)
{
if (!ASN1Dec_SetOfTokenIDs(dec, &(val)->purge_token_ids))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_PurgeTokenIndicationPDU(PurgeTokenIndicationPDU *val)
{
if (val) {
ASN1Free_SetOfTokenIDs(&(val)->purge_token_ids);
}
}
static int ASN1CALL ASN1Enc_DisconnectProviderUltimatumPDU(ASN1encoding_t enc, DisconnectProviderUltimatumPDU *val)
{
if (!ASN1PEREncBitVal(enc, 3, (val)->reason))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_DisconnectProviderUltimatumPDU(ASN1decoding_t dec, DisconnectProviderUltimatumPDU *val)
{
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &(val)->reason))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_RejectUltimatumPDU(ASN1encoding_t enc, RejectUltimatumPDU *val)
{
if (!ASN1PEREncBitVal(enc, 4, (val)->diagnostic))
return 0;
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->initial_octets))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RejectUltimatumPDU(ASN1decoding_t dec, RejectUltimatumPDU *val)
{
if (!ASN1PERDecU32Val(dec, 4, (ASN1uint32_t *) &(val)->diagnostic))
return 0;
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->initial_octets))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RejectUltimatumPDU(RejectUltimatumPDU *val)
{
if (val) {
ASN1octetstring_free(&(val)->initial_octets);
}
}
static int ASN1CALL ASN1Enc_AttachUserConfirmPDU(ASN1encoding_t enc, AttachUserConfirmPDU *val)
{
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1PEREncBitVal(enc, 4, (val)->result))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_AttachUserConfirmPDU(ASN1decoding_t dec, AttachUserConfirmPDU *val)
{
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecU32Val(dec, 4, (ASN1uint32_t *) &(val)->result))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
}
return 1;
}
static int ASN1CALL ASN1Enc_DetachUserRequestPDU(ASN1encoding_t enc, DetachUserRequestPDU *val)
{
if (!ASN1PEREncBitVal(enc, 3, (val)->reason))
return 0;
if (!ASN1Enc_SetOfUserIDs(enc, &(val)->user_ids))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_DetachUserRequestPDU(ASN1decoding_t dec, DetachUserRequestPDU *val)
{
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &(val)->reason))
return 0;
if (!ASN1Dec_SetOfUserIDs(dec, &(val)->user_ids))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_DetachUserRequestPDU(DetachUserRequestPDU *val)
{
if (val) {
ASN1Free_SetOfUserIDs(&(val)->user_ids);
}
}
static int ASN1CALL ASN1Enc_DetachUserIndicationPDU(ASN1encoding_t enc, DetachUserIndicationPDU *val)
{
if (!ASN1PEREncBitVal(enc, 3, (val)->reason))
return 0;
if (!ASN1Enc_SetOfUserIDs(enc, &(val)->user_ids))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_DetachUserIndicationPDU(ASN1decoding_t dec, DetachUserIndicationPDU *val)
{
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &(val)->reason))
return 0;
if (!ASN1Dec_SetOfUserIDs(dec, &(val)->user_ids))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_DetachUserIndicationPDU(DetachUserIndicationPDU *val)
{
if (val) {
ASN1Free_SetOfUserIDs(&(val)->user_ids);
}
}
static int ASN1CALL ASN1Enc_ChannelJoinRequestPDU(ASN1encoding_t enc, ChannelJoinRequestPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->channel_id))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ChannelJoinRequestPDU(ASN1decoding_t dec, ChannelJoinRequestPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->channel_id))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_ChannelJoinConfirmPDU(ASN1encoding_t enc, ChannelJoinConfirmPDU *val)
{
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1PEREncBitVal(enc, 4, (val)->result))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requested))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PEREncUnsignedShort(enc, (val)->join_channel_id))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_ChannelJoinConfirmPDU(ASN1decoding_t dec, ChannelJoinConfirmPDU *val)
{
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecU32Val(dec, 4, (ASN1uint32_t *) &(val)->result))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requested))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PERDecUnsignedShort(dec, &(val)->join_channel_id))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Enc_ChannelLeaveRequestPDU(ASN1encoding_t enc, ChannelLeaveRequestPDU *val)
{
if (!ASN1Enc_SetOfChannelIDs(enc, &(val)->channel_ids))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ChannelLeaveRequestPDU(ASN1decoding_t dec, ChannelLeaveRequestPDU *val)
{
if (!ASN1Dec_SetOfChannelIDs(dec, &(val)->channel_ids))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ChannelLeaveRequestPDU(ChannelLeaveRequestPDU *val)
{
if (val) {
ASN1Free_SetOfChannelIDs(&(val)->channel_ids);
}
}
static int ASN1CALL ASN1Enc_ChannelConveneRequestPDU(ASN1encoding_t enc, ChannelConveneRequestPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ChannelConveneRequestPDU(ASN1decoding_t dec, ChannelConveneRequestPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
return 1;
}
static int ASN1CALL ASN1Enc_ChannelConveneConfirmPDU(ASN1encoding_t enc, ChannelConveneConfirmPDU *val)
{
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1PEREncBitVal(enc, 4, (val)->result))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PEREncUnsignedShort(enc, (val)->convene_channel_id - 1001))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_ChannelConveneConfirmPDU(ASN1decoding_t dec, ChannelConveneConfirmPDU *val)
{
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecU32Val(dec, 4, (ASN1uint32_t *) &(val)->result))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if ((val)->o[0] & 0x80) {
if (!ASN1PERDecUnsignedShort(dec, &(val)->convene_channel_id))
return 0;
(val)->convene_channel_id += 1001;
}
return 1;
}
static int ASN1CALL ASN1Enc_ChannelDisbandRequestPDU(ASN1encoding_t enc, ChannelDisbandRequestPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->channel_id - 1001))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ChannelDisbandRequestPDU(ASN1decoding_t dec, ChannelDisbandRequestPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->channel_id))
return 0;
(val)->channel_id += 1001;
return 1;
}
static int ASN1CALL ASN1Enc_ChannelDisbandIndicationPDU(ASN1encoding_t enc, ChannelDisbandIndicationPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->channel_id - 1001))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ChannelDisbandIndicationPDU(ASN1decoding_t dec, ChannelDisbandIndicationPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->channel_id))
return 0;
(val)->channel_id += 1001;
return 1;
}
static int ASN1CALL ASN1Enc_ChannelAdmitRequestPDU(ASN1encoding_t enc, ChannelAdmitRequestPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->channel_id - 1001))
return 0;
if (!ASN1Enc_SetOfUserIDs(enc, &(val)->user_ids))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ChannelAdmitRequestPDU(ASN1decoding_t dec, ChannelAdmitRequestPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->channel_id))
return 0;
(val)->channel_id += 1001;
if (!ASN1Dec_SetOfUserIDs(dec, &(val)->user_ids))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ChannelAdmitRequestPDU(ChannelAdmitRequestPDU *val)
{
if (val) {
ASN1Free_SetOfUserIDs(&(val)->user_ids);
}
}
static int ASN1CALL ASN1Enc_ChannelAdmitIndicationPDU(ASN1encoding_t enc, ChannelAdmitIndicationPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->channel_id - 1001))
return 0;
if (!ASN1Enc_SetOfUserIDs(enc, &(val)->user_ids))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ChannelAdmitIndicationPDU(ASN1decoding_t dec, ChannelAdmitIndicationPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->channel_id))
return 0;
(val)->channel_id += 1001;
if (!ASN1Dec_SetOfUserIDs(dec, &(val)->user_ids))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ChannelAdmitIndicationPDU(ChannelAdmitIndicationPDU *val)
{
if (val) {
ASN1Free_SetOfUserIDs(&(val)->user_ids);
}
}
static int ASN1CALL ASN1Enc_ChannelExpelRequestPDU(ASN1encoding_t enc, ChannelExpelRequestPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->channel_id - 1001))
return 0;
if (!ASN1Enc_SetOfUserIDs(enc, &(val)->user_ids))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ChannelExpelRequestPDU(ASN1decoding_t dec, ChannelExpelRequestPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->channel_id))
return 0;
(val)->channel_id += 1001;
if (!ASN1Dec_SetOfUserIDs(dec, &(val)->user_ids))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ChannelExpelRequestPDU(ChannelExpelRequestPDU *val)
{
if (val) {
ASN1Free_SetOfUserIDs(&(val)->user_ids);
}
}
static int ASN1CALL ASN1Enc_ChannelExpelIndicationPDU(ASN1encoding_t enc, ChannelExpelIndicationPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->channel_id - 1001))
return 0;
if (!ASN1Enc_SetOfUserIDs(enc, &(val)->user_ids))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ChannelExpelIndicationPDU(ASN1decoding_t dec, ChannelExpelIndicationPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->channel_id))
return 0;
(val)->channel_id += 1001;
if (!ASN1Dec_SetOfUserIDs(dec, &(val)->user_ids))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ChannelExpelIndicationPDU(ChannelExpelIndicationPDU *val)
{
if (val) {
ASN1Free_SetOfUserIDs(&(val)->user_ids);
}
}
static int ASN1CALL ASN1Enc_TokenGrabRequestPDU(ASN1encoding_t enc, TokenGrabRequestPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenGrabRequestPDU(ASN1decoding_t dec, TokenGrabRequestPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
return 1;
}
static int ASN1CALL ASN1Enc_TokenGrabConfirmPDU(ASN1encoding_t enc, TokenGrabConfirmPDU *val)
{
if (!ASN1PEREncBitVal(enc, 4, (val)->result))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
if (!ASN1PEREncBitVal(enc, 3, (val)->token_status))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenGrabConfirmPDU(ASN1decoding_t dec, TokenGrabConfirmPDU *val)
{
if (!ASN1PERDecU32Val(dec, 4, (ASN1uint32_t *) &(val)->result))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &(val)->token_status))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_TokenInhibitRequestPDU(ASN1encoding_t enc, TokenInhibitRequestPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenInhibitRequestPDU(ASN1decoding_t dec, TokenInhibitRequestPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
return 1;
}
static int ASN1CALL ASN1Enc_TokenInhibitConfirmPDU(ASN1encoding_t enc, TokenInhibitConfirmPDU *val)
{
if (!ASN1PEREncBitVal(enc, 4, (val)->result))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
if (!ASN1PEREncBitVal(enc, 3, (val)->token_status))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenInhibitConfirmPDU(ASN1decoding_t dec, TokenInhibitConfirmPDU *val)
{
if (!ASN1PERDecU32Val(dec, 4, (ASN1uint32_t *) &(val)->result))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &(val)->token_status))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_TokenGiveRequestPDU(ASN1encoding_t enc, TokenGiveRequestPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->recipient - 1001))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenGiveRequestPDU(ASN1decoding_t dec, TokenGiveRequestPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
if (!ASN1PERDecUnsignedShort(dec, &(val)->recipient))
return 0;
(val)->recipient += 1001;
return 1;
}
static int ASN1CALL ASN1Enc_TokenGiveIndicationPDU(ASN1encoding_t enc, TokenGiveIndicationPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->recipient - 1001))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenGiveIndicationPDU(ASN1decoding_t dec, TokenGiveIndicationPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
if (!ASN1PERDecUnsignedShort(dec, &(val)->recipient))
return 0;
(val)->recipient += 1001;
return 1;
}
static int ASN1CALL ASN1Enc_TokenGiveResponsePDU(ASN1encoding_t enc, TokenGiveResponsePDU *val)
{
if (!ASN1PEREncBitVal(enc, 4, (val)->result))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->recipient - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenGiveResponsePDU(ASN1decoding_t dec, TokenGiveResponsePDU *val)
{
if (!ASN1PERDecU32Val(dec, 4, (ASN1uint32_t *) &(val)->result))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->recipient))
return 0;
(val)->recipient += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
return 1;
}
static int ASN1CALL ASN1Enc_TokenGiveConfirmPDU(ASN1encoding_t enc, TokenGiveConfirmPDU *val)
{
if (!ASN1PEREncBitVal(enc, 4, (val)->result))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
if (!ASN1PEREncBitVal(enc, 3, (val)->token_status))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenGiveConfirmPDU(ASN1decoding_t dec, TokenGiveConfirmPDU *val)
{
if (!ASN1PERDecU32Val(dec, 4, (ASN1uint32_t *) &(val)->result))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &(val)->token_status))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_TokenPleaseRequestPDU(ASN1encoding_t enc, TokenPleaseRequestPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenPleaseRequestPDU(ASN1decoding_t dec, TokenPleaseRequestPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
return 1;
}
static int ASN1CALL ASN1Enc_TokenPleaseIndicationPDU(ASN1encoding_t enc, TokenPleaseIndicationPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenPleaseIndicationPDU(ASN1decoding_t dec, TokenPleaseIndicationPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
return 1;
}
static int ASN1CALL ASN1Enc_TokenReleaseRequestPDU(ASN1encoding_t enc, TokenReleaseRequestPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenReleaseRequestPDU(ASN1decoding_t dec, TokenReleaseRequestPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
return 1;
}
static int ASN1CALL ASN1Enc_TokenReleaseConfirmPDU(ASN1encoding_t enc, TokenReleaseConfirmPDU *val)
{
if (!ASN1PEREncBitVal(enc, 4, (val)->result))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
if (!ASN1PEREncBitVal(enc, 3, (val)->token_status))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenReleaseConfirmPDU(ASN1decoding_t dec, TokenReleaseConfirmPDU *val)
{
if (!ASN1PERDecU32Val(dec, 4, (ASN1uint32_t *) &(val)->result))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &(val)->token_status))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_TokenTestRequestPDU(ASN1encoding_t enc, TokenTestRequestPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenTestRequestPDU(ASN1decoding_t dec, TokenTestRequestPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
return 1;
}
static int ASN1CALL ASN1Enc_TokenTestConfirmPDU(ASN1encoding_t enc, TokenTestConfirmPDU *val)
{
if (!ASN1PEREncUnsignedShort(enc, (val)->initiator - 1001))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->token_id - 1))
return 0;
if (!ASN1PEREncBitVal(enc, 3, (val)->token_status))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TokenTestConfirmPDU(ASN1decoding_t dec, TokenTestConfirmPDU *val)
{
if (!ASN1PERDecUnsignedShort(dec, &(val)->initiator))
return 0;
(val)->initiator += 1001;
if (!ASN1PERDecUnsignedShort(dec, &(val)->token_id))
return 0;
(val)->token_id += 1;
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &(val)->token_status))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ConnectMCSPDU(ConnectMCSPDU *val)
{
if (val) {
switch ((val)->choice) {
case 1:
ASN1Free_ConnectInitialPDU(&(val)->u.connect_initial);
break;
case 2:
ASN1Free_ConnectResponsePDU(&(val)->u.connect_response);
break;
}
}
}
static int ASN1CALL ASN1Enc_DomainMCSPDU(ASN1encoding_t enc, DomainMCSPDU *val)
{
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 6))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_PlumbDomainIndicationPDU(enc, &(val)->u.plumb_domain_indication))
return 0;
break;
case 2:
if (!ASN1Enc_ErectDomainRequestPDU(enc, &(val)->u.erect_domain_request))
return 0;
break;
case 3:
if (!ASN1Enc_MergeChannelsRequestPDU(enc, &(val)->u.merge_channels_request))
return 0;
break;
case 4:
if (!ASN1Enc_MergeChannelsConfirmPDU(enc, &(val)->u.merge_channels_confirm))
return 0;
break;
case 5:
if (!ASN1Enc_PurgeChannelIndicationPDU(enc, &(val)->u.purge_channel_indication))
return 0;
break;
case 6:
if (!ASN1Enc_MergeTokensRequestPDU(enc, &(val)->u.merge_tokens_request))
return 0;
break;
case 7:
if (!ASN1Enc_MergeTokensConfirmPDU(enc, &(val)->u.merge_tokens_confirm))
return 0;
break;
case 8:
if (!ASN1Enc_PurgeTokenIndicationPDU(enc, &(val)->u.purge_token_indication))
return 0;
break;
case 9:
if (!ASN1Enc_DisconnectProviderUltimatumPDU(enc, &(val)->u.disconnect_provider_ultimatum))
return 0;
break;
case 10:
if (!ASN1Enc_RejectUltimatumPDU(enc, &(val)->u.reject_user_ultimatum))
return 0;
break;
case 11:
break;
case 12:
if (!ASN1Enc_AttachUserConfirmPDU(enc, &(val)->u.attach_user_confirm))
return 0;
break;
case 13:
if (!ASN1Enc_DetachUserRequestPDU(enc, &(val)->u.detach_user_request))
return 0;
break;
case 14:
if (!ASN1Enc_DetachUserIndicationPDU(enc, &(val)->u.detach_user_indication))
return 0;
break;
case 15:
if (!ASN1Enc_ChannelJoinRequestPDU(enc, &(val)->u.channel_join_request))
return 0;
break;
case 16:
if (!ASN1Enc_ChannelJoinConfirmPDU(enc, &(val)->u.channel_join_confirm))
return 0;
break;
case 17:
if (!ASN1Enc_ChannelLeaveRequestPDU(enc, &(val)->u.channel_leave_request))
return 0;
break;
case 18:
if (!ASN1Enc_ChannelConveneRequestPDU(enc, &(val)->u.channel_convene_request))
return 0;
break;
case 19:
if (!ASN1Enc_ChannelConveneConfirmPDU(enc, &(val)->u.channel_convene_confirm))
return 0;
break;
case 20:
if (!ASN1Enc_ChannelDisbandRequestPDU(enc, &(val)->u.channel_disband_request))
return 0;
break;
case 21:
if (!ASN1Enc_ChannelDisbandIndicationPDU(enc, &(val)->u.channel_disband_indication))
return 0;
break;
case 22:
if (!ASN1Enc_ChannelAdmitRequestPDU(enc, &(val)->u.channel_admit_request))
return 0;
break;
case 23:
if (!ASN1Enc_ChannelAdmitIndicationPDU(enc, &(val)->u.channel_admit_indication))
return 0;
break;
case 24:
if (!ASN1Enc_ChannelExpelRequestPDU(enc, &(val)->u.channel_expel_request))
return 0;
break;
case 25:
if (!ASN1Enc_ChannelExpelIndicationPDU(enc, &(val)->u.channel_expel_indication))
return 0;
break;
case 26:
case 27:
case 28:
case 29:
return 0;
case 30:
if (!ASN1Enc_TokenGrabRequestPDU(enc, &(val)->u.token_grab_request))
return 0;
break;
case 31:
if (!ASN1Enc_TokenGrabConfirmPDU(enc, &(val)->u.token_grab_confirm))
return 0;
break;
case 32:
if (!ASN1Enc_TokenInhibitRequestPDU(enc, &(val)->u.token_inhibit_request))
return 0;
break;
case 33:
if (!ASN1Enc_TokenInhibitConfirmPDU(enc, &(val)->u.token_inhibit_confirm))
return 0;
break;
case 34:
if (!ASN1Enc_TokenGiveRequestPDU(enc, &(val)->u.token_give_request))
return 0;
break;
case 35:
if (!ASN1Enc_TokenGiveIndicationPDU(enc, &(val)->u.token_give_indication))
return 0;
break;
case 36:
if (!ASN1Enc_TokenGiveResponsePDU(enc, &(val)->u.token_give_response))
return 0;
break;
case 37:
if (!ASN1Enc_TokenGiveConfirmPDU(enc, &(val)->u.token_give_confirm))
return 0;
break;
case 38:
if (!ASN1Enc_TokenPleaseRequestPDU(enc, &(val)->u.token_please_request))
return 0;
break;
case 39:
if (!ASN1Enc_TokenPleaseIndicationPDU(enc, &(val)->u.token_please_indication))
return 0;
break;
case 40:
if (!ASN1Enc_TokenReleaseRequestPDU(enc, &(val)->u.token_release_request))
return 0;
break;
case 41:
if (!ASN1Enc_TokenReleaseConfirmPDU(enc, &(val)->u.token_release_confirm))
return 0;
break;
case 42:
if (!ASN1Enc_TokenTestRequestPDU(enc, &(val)->u.token_test_request))
return 0;
break;
case 43:
if (!ASN1Enc_TokenTestConfirmPDU(enc, &(val)->u.token_test_confirm))
return 0;
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_DomainMCSPDU(ASN1decoding_t dec, DomainMCSPDU *val)
{
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 6))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_PlumbDomainIndicationPDU(dec, &(val)->u.plumb_domain_indication))
return 0;
break;
case 2:
if (!ASN1Dec_ErectDomainRequestPDU(dec, &(val)->u.erect_domain_request))
return 0;
break;
case 3:
if (!ASN1Dec_MergeChannelsRequestPDU(dec, &(val)->u.merge_channels_request))
return 0;
break;
case 4:
if (!ASN1Dec_MergeChannelsConfirmPDU(dec, &(val)->u.merge_channels_confirm))
return 0;
break;
case 5:
if (!ASN1Dec_PurgeChannelIndicationPDU(dec, &(val)->u.purge_channel_indication))
return 0;
break;
case 6:
if (!ASN1Dec_MergeTokensRequestPDU(dec, &(val)->u.merge_tokens_request))
return 0;
break;
case 7:
if (!ASN1Dec_MergeTokensConfirmPDU(dec, &(val)->u.merge_tokens_confirm))
return 0;
break;
case 8:
if (!ASN1Dec_PurgeTokenIndicationPDU(dec, &(val)->u.purge_token_indication))
return 0;
break;
case 9:
if (!ASN1Dec_DisconnectProviderUltimatumPDU(dec, &(val)->u.disconnect_provider_ultimatum))
return 0;
break;
case 10:
if (!ASN1Dec_RejectUltimatumPDU(dec, &(val)->u.reject_user_ultimatum))
return 0;
break;
case 11:
break;
case 12:
if (!ASN1Dec_AttachUserConfirmPDU(dec, &(val)->u.attach_user_confirm))
return 0;
break;
case 13:
if (!ASN1Dec_DetachUserRequestPDU(dec, &(val)->u.detach_user_request))
return 0;
break;
case 14:
if (!ASN1Dec_DetachUserIndicationPDU(dec, &(val)->u.detach_user_indication))
return 0;
break;
case 15:
if (!ASN1Dec_ChannelJoinRequestPDU(dec, &(val)->u.channel_join_request))
return 0;
break;
case 16:
if (!ASN1Dec_ChannelJoinConfirmPDU(dec, &(val)->u.channel_join_confirm))
return 0;
break;
case 17:
if (!ASN1Dec_ChannelLeaveRequestPDU(dec, &(val)->u.channel_leave_request))
return 0;
break;
case 18:
if (!ASN1Dec_ChannelConveneRequestPDU(dec, &(val)->u.channel_convene_request))
return 0;
break;
case 19:
if (!ASN1Dec_ChannelConveneConfirmPDU(dec, &(val)->u.channel_convene_confirm))
return 0;
break;
case 20:
if (!ASN1Dec_ChannelDisbandRequestPDU(dec, &(val)->u.channel_disband_request))
return 0;
break;
case 21:
if (!ASN1Dec_ChannelDisbandIndicationPDU(dec, &(val)->u.channel_disband_indication))
return 0;
break;
case 22:
if (!ASN1Dec_ChannelAdmitRequestPDU(dec, &(val)->u.channel_admit_request))
return 0;
break;
case 23:
if (!ASN1Dec_ChannelAdmitIndicationPDU(dec, &(val)->u.channel_admit_indication))
return 0;
break;
case 24:
if (!ASN1Dec_ChannelExpelRequestPDU(dec, &(val)->u.channel_expel_request))
return 0;
break;
case 25:
if (!ASN1Dec_ChannelExpelIndicationPDU(dec, &(val)->u.channel_expel_indication))
return 0;
break;
case 26:
case 27:
case 28:
case 29:
return 0;
case 30:
if (!ASN1Dec_TokenGrabRequestPDU(dec, &(val)->u.token_grab_request))
return 0;
break;
case 31:
if (!ASN1Dec_TokenGrabConfirmPDU(dec, &(val)->u.token_grab_confirm))
return 0;
break;
case 32:
if (!ASN1Dec_TokenInhibitRequestPDU(dec, &(val)->u.token_inhibit_request))
return 0;
break;
case 33:
if (!ASN1Dec_TokenInhibitConfirmPDU(dec, &(val)->u.token_inhibit_confirm))
return 0;
break;
case 34:
if (!ASN1Dec_TokenGiveRequestPDU(dec, &(val)->u.token_give_request))
return 0;
break;
case 35:
if (!ASN1Dec_TokenGiveIndicationPDU(dec, &(val)->u.token_give_indication))
return 0;
break;
case 36:
if (!ASN1Dec_TokenGiveResponsePDU(dec, &(val)->u.token_give_response))
return 0;
break;
case 37:
if (!ASN1Dec_TokenGiveConfirmPDU(dec, &(val)->u.token_give_confirm))
return 0;
break;
case 38:
if (!ASN1Dec_TokenPleaseRequestPDU(dec, &(val)->u.token_please_request))
return 0;
break;
case 39:
if (!ASN1Dec_TokenPleaseIndicationPDU(dec, &(val)->u.token_please_indication))
return 0;
break;
case 40:
if (!ASN1Dec_TokenReleaseRequestPDU(dec, &(val)->u.token_release_request))
return 0;
break;
case 41:
if (!ASN1Dec_TokenReleaseConfirmPDU(dec, &(val)->u.token_release_confirm))
return 0;
break;
case 42:
if (!ASN1Dec_TokenTestRequestPDU(dec, &(val)->u.token_test_request))
return 0;
break;
case 43:
if (!ASN1Dec_TokenTestConfirmPDU(dec, &(val)->u.token_test_confirm))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_DomainMCSPDU(DomainMCSPDU *val)
{
if (val) {
switch ((val)->choice) {
case 3:
ASN1Free_MergeChannelsRequestPDU(&(val)->u.merge_channels_request);
break;
case 4:
ASN1Free_MergeChannelsConfirmPDU(&(val)->u.merge_channels_confirm);
break;
case 5:
ASN1Free_PurgeChannelIndicationPDU(&(val)->u.purge_channel_indication);
break;
case 6:
ASN1Free_MergeTokensRequestPDU(&(val)->u.merge_tokens_request);
break;
case 7:
ASN1Free_MergeTokensConfirmPDU(&(val)->u.merge_tokens_confirm);
break;
case 8:
ASN1Free_PurgeTokenIndicationPDU(&(val)->u.purge_token_indication);
break;
case 10:
ASN1Free_RejectUltimatumPDU(&(val)->u.reject_user_ultimatum);
break;
case 13:
ASN1Free_DetachUserRequestPDU(&(val)->u.detach_user_request);
break;
case 14:
ASN1Free_DetachUserIndicationPDU(&(val)->u.detach_user_indication);
break;
case 17:
ASN1Free_ChannelLeaveRequestPDU(&(val)->u.channel_leave_request);
break;
case 22:
ASN1Free_ChannelAdmitRequestPDU(&(val)->u.channel_admit_request);
break;
case 23:
ASN1Free_ChannelAdmitIndicationPDU(&(val)->u.channel_admit_indication);
break;
case 24:
ASN1Free_ChannelExpelRequestPDU(&(val)->u.channel_expel_request);
break;
case 25:
ASN1Free_ChannelExpelIndicationPDU(&(val)->u.channel_expel_indication);
break;
case 26:
case 27:
case 28:
case 29:
break;
}
}
}