From 5ea77a75dd2d2158401331879f3c8f47940a732c Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 18:35:32 +0200 Subject: Adding upstream version 2.5.13+dfsg. Signed-off-by: Daniel Baumann --- contrib/ldapc++/src/LDAPSearchResults.cpp | 60 +++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 contrib/ldapc++/src/LDAPSearchResults.cpp (limited to 'contrib/ldapc++/src/LDAPSearchResults.cpp') diff --git a/contrib/ldapc++/src/LDAPSearchResults.cpp b/contrib/ldapc++/src/LDAPSearchResults.cpp new file mode 100644 index 0000000..a25afe5 --- /dev/null +++ b/contrib/ldapc++/src/LDAPSearchResults.cpp @@ -0,0 +1,60 @@ +// $OpenLDAP$ +/* + * Copyright 2000-2022 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ + + +#include "LDAPException.h" +#include "LDAPSearchResult.h" +#include "LDAPResult.h" + +#include "LDAPSearchResults.h" + +LDAPSearchResults::LDAPSearchResults(){ + entryPos = entryList.begin(); + refPos = refList.begin(); +} + +LDAPResult* LDAPSearchResults::readMessageQueue(LDAPMessageQueue* msg){ + if(msg != 0){ + LDAPMsg* res=0; + for(;;){ + try{ + res = msg->getNext(); + }catch (LDAPException e){ + throw; + } + switch(res->getMessageType()){ + case LDAPMsg::SEARCH_ENTRY : + entryList.addEntry(*((LDAPSearchResult*)res)->getEntry()); + break; + case LDAPMsg::SEARCH_REFERENCE : + refList.addReference(*((LDAPSearchReference*)res)); + break; + default: + entryPos=entryList.begin(); + refPos=refList.begin(); + return ((LDAPResult*) res); + } + delete res; + res=0; + } + } + return 0; +} + +LDAPEntry* LDAPSearchResults::getNext(){ + if( entryPos != entryList.end() ){ + LDAPEntry* ret= new LDAPEntry(*entryPos); + entryPos++; + return ret; + } + if( refPos != refList.end() ){ + LDAPUrlList urls= refPos->getUrls(); + refPos++; + throw(LDAPReferralException(urls)); + } + return 0; +} + -- cgit v1.2.3