X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fldap%2FSession.cpp;h=1d73e846e44747013748a453de9694f7e945b6ff;hb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;hp=885b4ec2dfba48b85de44c989efd88d76dfe3539;hpb=4e12ac57e93c052f716a6305ad8fc099c45899d1;p=anna.git diff --git a/source/ldap/Session.cpp b/source/ldap/Session.cpp index 885b4ec..1d73e84 100644 --- a/source/ldap/Session.cpp +++ b/source/ldap/Session.cpp @@ -1,37 +1,9 @@ -// ANNA - Anna is Not 'N' Anymore -// -// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo -// -// https://bitbucket.org/testillano/anna -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Authors: eduardo.ramos.testillano@gmail.com -// cisco.tierra@gmail.com +// ANNA - Anna is Not Nothingness Anymore // +// // +// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo // +// // +// See project site at http://redmine.teslayout.com/projects/anna-suite // +// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE // #include @@ -84,7 +56,7 @@ Session::Session() : // Se invoca desde el ldap::Engine //--------------------------------------------------------------------------------- void Session::bind() -throw(RuntimeException) { +noexcept(false) { if(a_state != State::Closed) return; @@ -97,7 +69,6 @@ throw(RuntimeException) { LDAP* handle = NULL; int aux; ResultCode resultCode; - Response* response(NULL); try { resultCode = ldap_initialize(&handle, a_url.c_str()); @@ -167,7 +138,7 @@ throw(RuntimeException) { } const Response* Session::send(const Request* request) -throw(RuntimeException) { +noexcept(false) { if(a_state == State::Closed) { string msg(asString()); msg += " | Session::bind must be called"; @@ -203,7 +174,7 @@ throw(RuntimeException) { } void Session::unbind() -throw(RuntimeException) { +noexcept(false) { if(a_state == State::Closed) return; @@ -218,7 +189,7 @@ throw(RuntimeException) { // a la ldap::Session //------------------------------------------------------------------------------------------ void Session::apply() -throw(RuntimeException) { +noexcept(false) { LOGMETHOD(TraceMethod traceMethod("ldap::Session", "apply", ANNA_FILE_LOCATION)); LDAP* handle = (LDAP*) a_ldap; LDAPMessage* hmessage(NULL); @@ -292,7 +263,7 @@ throw(RuntimeException) { * invocado por el comm::Communicator::detach. */ void Session::finalize() -throw() { +{ LDAP* handle = (LDAP*) a_ldap; a_state = State::Closed; @@ -327,7 +298,7 @@ throw() { } void Session::receiveBind(const IdMessage idMessage, Session::HandleMessage _hmessage) -throw(RuntimeException) { +noexcept(false) { LDAP* handle = (LDAP*) a_ldap; LDAPMessage* hmessage = (LDAPMessage*) _hmessage; @@ -387,7 +358,7 @@ throw(RuntimeException) { // (1) Necesario para detectar el final de los atributos //------------------------------------------------------------------------------------------------ void Session::receiveEntry(const IdMessage idMessage, Session::HandleMessage _hmessage) -throw(RuntimeException) { +noexcept(false) { LDAP* handle = (LDAP*) a_ldap; LDAPMessage* hmessage = (LDAPMessage*) _hmessage; BerElement *ber(NULL); @@ -447,7 +418,7 @@ throw(RuntimeException) { } void Session::receiveReference(const IdMessage idMessage, Session::HandleMessage _hmessage) -throw(RuntimeException) { +noexcept(false) { LDAP* handle = (LDAP*) a_ldap; LDAPMessage* hmessage = (LDAPMessage*) _hmessage; char **values(NULL); @@ -476,7 +447,7 @@ throw(RuntimeException) { } void Session::receiveResult(const IdMessage idMessage, Session::HandleMessage _hmessage) -throw(RuntimeException) { +noexcept(false) { LDAP* handle = (LDAP*) a_ldap; LDAPMessage* hmessage = (LDAPMessage*) _hmessage; Response* response = response_find(idMessage); @@ -490,7 +461,6 @@ throw(RuntimeException) { int error = LDAP_SUCCESS; char **values(NULL); ResultCode resultCode; - bool isOk = true; response->cancelTimer(); const int ldap_result = ldap_parse_result(handle, hmessage, &error, NULL, NULL, &values, NULL, 0); resultCode.setValue(ldap_result, error); @@ -528,7 +498,7 @@ throw(RuntimeException) { // Se invoca desde ldap::timer::Prototype::expire //------------------------------------------------------------------------- void Session::expireResponse(ldap::Response* response) -throw() { +{ LDAP* handle = (LDAP*) a_ldap; ResultCode resultCode; /* @@ -565,7 +535,7 @@ throw() { } void Session::response_add(Response* response) -throw() { +{ a_responses.add(response); response->setSession(this); @@ -577,13 +547,13 @@ throw() { } void Session::response_erase(Response* response) -throw() { +{ a_responses.erase(response); Response::release(response); } Response* Session::response_find(const IdMessage idMessage) -throw(RuntimeException) { +noexcept(false) { ldap::Response* result = a_responses.find(idMessage); if(result == NULL) { @@ -597,7 +567,7 @@ throw(RuntimeException) { } std::string Session::asString() const -throw() { +{ string result("ldap::Session { "); result += comm::Handler::asString(); result += " | State: "; @@ -620,7 +590,7 @@ throw() { } xml::Node* Session::asXML(xml::Node* parent) const -throw() { +{ parent = comm::Handler::asXML(parent); xml::Node* result = parent->createChild("ldap.Session"); result->createAttribute("State", asText(a_state)); @@ -635,7 +605,6 @@ throw() { result->createChild("NetworkTimeout")->createAttribute("Value", getNetworkTimeout()); xml::Node* requests = result->createChild("ldap.Requests"); - const Response* response; const Request* request; for(const_response_iterator ii = response_begin(), maxii = response_end(); ii != maxii; ii ++) { @@ -647,7 +616,7 @@ throw() { } int Session::getDangerousFileDescriptor() const -throw(RuntimeException) { +noexcept(false) { ResultCode resultCode; int result = -1; resultCode = ldap_get_option((LDAP*) a_ldap, LDAP_OPT_DESC, &result); @@ -664,12 +633,12 @@ throw(RuntimeException) { } const char* Session::asText(const State::_v state) -throw() { +{ static const char* states [] = { "Closed", "WaitingBind", "Bound" }; return states [state]; } IdMessage Session::SortById::value(const Response* response) -throw() { +{ return response->getIdMessage(); }