///|
/// The LDAPMessage envelope (RFC 4511 4.1.1).
pub struct LdapMessage {
message_id : Int
op : ProtocolOp
controls : Array[Control]?
} derive(Eq, @debug.Debug)
///|
pub fn LdapMessage::new(message_id : Int, op : ProtocolOp) -> LdapMessage {
{ message_id, op, controls: None }
}
///|
pub fn LdapMessage::with_controls(
message_id : Int,
op : ProtocolOp,
controls : Array[Control],
) -> LdapMessage {
{ message_id, op, controls: Some(controls) }
}
///|
/// Application tag numbers for each protocol op (RFC 4511 4.1.1.2).
pub fn protocol_op_tag(op : ProtocolOp) -> Int {
match op {
BindRequest(_) => 0
BindResponse(_) => 1
UnbindRequest => 2
SearchRequest(_) => 3
SearchResultEntry(_) => 4
SearchResultDone(_) => 5
SearchResultReference(_) => 19
ModifyRequest(_) => 6
ModifyResponse(_) => 7
AddRequest(_) => 8
AddResponse(_) => 9
DelRequest(_) => 10
DelResponse(_) => 11
ModifyDnRequest(_) => 12
ModifyDnResponse(_) => 13
CompareRequest(_) => 14
CompareResponse(_) => 15
ExtendedRequest(_) => 23
ExtendedResponse(_) => 24
AbandonRequest(_) => 16
}
}
///|
pub fn protocol_op_name(op : ProtocolOp) -> String {
match op {
BindRequest(_) => "bindRequest"
BindResponse(_) => "bindResponse"
UnbindRequest => "unbindRequest"
SearchRequest(_) => "searchRequest"
SearchResultEntry(_) => "searchResultEntry"
SearchResultDone(_) => "searchResultDone"
SearchResultReference(_) => "searchResultReference"
ModifyRequest(_) => "modifyRequest"
ModifyResponse(_) => "modifyResponse"
AddRequest(_) => "addRequest"
AddResponse(_) => "addResponse"
DelRequest(_) => "delRequest"
DelResponse(_) => "delResponse"
ModifyDnRequest(_) => "modifyDNRequest"
ModifyDnResponse(_) => "modifyDNResponse"
CompareRequest(_) => "compareRequest"
CompareResponse(_) => "compareResponse"
ExtendedRequest(_) => "extendedReq"
ExtendedResponse(_) => "extendedResp"
AbandonRequest(_) => "abandonRequest"
}
}