%language=ANSI-C %compare-strncmp //FAILS// %pic %struct-type %global-table %readonly-tables %define slot-name extoid %define hash-function-name lillymsg_perfhash_ext %define lookup-function-name lillymsg_packinfo_ext %define word-array-name lillymsg_msgoptab_ext %define length-table-name lillymsg_msgoplen_ext %{ #include #include #include #include #include #include #include #define mkp(spec,id) \ derwalk pck_ ## spec ## _ ## id [] = { \ DER_PACK_ ## spec ## _ ## id, DER_PACK_END \ } mkp (rfc3062, PasswdModifyRequestValue); mkp (rfc3062, PasswdModifyResponseValue); mkp (rfc3909, CancelRequestValue); mkp (rfc4373, StartLBURPRequestValue); mkp (rfc4373, StartLBURPResponseValue); mkp (rfc4373, EndLBURPRequestValue); mkp (rfc4373, LBURPUpdateRequestValue); mkp (rfc4511, BindRequest); mkp (rfc4511, BindResponse); mkp (rfc4511, UnbindRequest); mkp (rfc4511, SearchRequest); mkp (rfc4511, SearchResultEntry); mkp (rfc4511, SearchResultDone); mkp (rfc4511, ModifyRequest); mkp (rfc4511, ModifyResponse); mkp (rfc4511, AddRequest); mkp (rfc4511, AddResponse); mkp (rfc4511, DelRequest); mkp (rfc4511, DelResponse); mkp (rfc4511, ModifyDNRequest); mkp (rfc4511, ModifyDNResponse); mkp (rfc4511, CompareRequest); mkp (rfc4511, CompareResponse); mkp (rfc4511, AbandonRequest); mkp (rfc4511, SearchResultReference); mkp (rfc4511, ExtendedRequest); mkp (rfc4511, ExtendedResponse); mkp (rfc4511, IntermediateResponse); mkp (rfc4531, TurnValue); mkp (rfc5805, TxnEndReq); mkp (rfc5805, TxnEndRes); #define pack(spec,id) pck_ ## spec ## _ ## id, \ sizeof (DER_OVLY_ ## spec ## _ ## id) / sizeof (dercursor) derwalk nopack [] = { DER_PACK_END }; derwalk whatever [] = { DER_PACK_ANY, DER_WALK_END }; #define ABSENT nopack, 0 #define ABSENT_OR_LITERAL nopack, 0 #define LITERAL #define REJECT NULL, 0 %} struct packer_info_ext { const char *extoid; const derwalk *pck_request; const uint16_t len_request; const derwalk *pck_response; const uint16_t len_response; }; //BASIC// "\xa0",packreq(rfc4511,BindRequest),packresp(rfc4511,BindResponse) //BASIC// "\xa1",packreq(rfc4511,BindResponse),0 //BASIC// "\xa2",packreq(rfc4511,UnbindRequest),0 //BASIC// "\xa3",packreq(rfc4511,SearchRequest),packresp(rfc4511,SearchResultDone) //BASIC// "\xa4",packreq(rfc4511,SearchResultEntry),0 //BASIC// "\xa5",packreq(rfc4511,SearchResultDone),0 //BASIC// "\xa6",packreq(rfc4511,ModifyRequest),packresp(rfc4511,ModifyResponse) //BASIC// "\xa7",packreq(rfc4511,ModifyResponse),0 //BASIC// "\xa8",packreq(rfc4511,AddRequest),packresp(rfc4511,AddResponse) //BASIC// "\xa9",packreq(rfc4511,AddResponse),0 //BASIC// "\xaa",packreq(rfc4511,DelRequest),packresp(rfc4511,DelResponse) //BASIC// "\xab",packreq(rfc4511,DelResponse),0 //BASIC// "\xac",packreq(rfc4511,ModifyDNRequest),packresp(rfc4511,ModfiyDNResponse) //BASIC// "\xad",packreq(rfc4511,ModifyDNResponse),0 //BASIC// "\xae",packreq(rfc4511,CompareRequest),packresp(rfc4511,CompareResponse) //BASIC// "\xaf",packreq(rfc4511,CompareResponse),0 //BASIC// "\xb0",packreq(rfc4511,AbandonRequest),0 //BASIC// "\xb3",packreq(rfc4511,SearchResultReference),0 //BASIC// "\xb9",packreq(rfc4511,IntermediateResponse),0 %% "1.3.6.1.4.1.1466.20037",ABSENT,ABSENT /* rfc4511, StartTLS */ "1.3.6.1.4.1.4203.1.11.1",pack(rfc3062,PasswdModifyRequestValue),pack(rfc3062,PasswdModifyResponseValue) "1.3.6.1.4.1.4203.1.11.3",ABSENT,ABSENT_OR_LITERAL /* RFC 4532, whoami */ "1.3.6.1.1.8",pack(rfc3909,CancelRequestValue),ABSENT "1.3.6.1.1.17.1",pack(rfc4373,StartLBURPRequestValue),REJECT "1.3.6.1.1.17.2",REJECT,pack(rfc4373,StartLBURPResponseValue) "1.3.6.1.1.17.3",pack(rfc4373,EndLBURPRequestValue),REJECT "1.3.6.1.1.17.4",REJECT,ABSENT /* RFC 4373, EndLBURPResponse */ "1.3.6.1.1.17.5",pack(rfc4373,LBURPUpdateRequestValue),REJECT "1.3.6.1.1.17.6",REJECT,ABSENT /* TODO?!? pack(rfc4373,LBURPUpdateResponse) */ "1.3.6.1.1.19",pack(rfc4531,TurnValue),ABSENT "1.3.6.1.1.21.1",ABSENT,ABSENT /* RFC 5805, startTransaction */ "1.3.6.1.1.21.3",pack(rfc5805,TxnEndReq),pack(rfc5805,TxnEndRes) "1.3.6.1.1.21.4",REJECT,LITERAL /* RFC 5805, tnxAborted */ %%