X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=example%2Fdiameter%2Ftme%2Fmain.cpp;h=3bd2df513a6d44e25731b0d966a6db925fb8c220;hb=93366a0bda79e6fd6e7dad6316bfcf8cc82f5731;hp=68e2295e0ad2ddbdefb816aefe27d565317aeda9;hpb=0c646b4aa99a84ef6976a51b6d4554aea11ded35;p=anna.git diff --git a/example/diameter/tme/main.cpp b/example/diameter/tme/main.cpp index 68e2295..3bd2df5 100644 --- a/example/diameter/tme/main.cpp +++ b/example/diameter/tme/main.cpp @@ -1,37 +1,9 @@ -// ANNA - Anna is Not Nothingness Anymore -// -// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo -// -// http://redmine.teslayout.com/projects/anna-suite -// -// 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 the copyright holder 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 // // Standard @@ -56,20 +28,24 @@ typedef anna::diameter::codec::tme::Avp tmeAvp; void _exit(const std::string & msg) { - std::cout << std::endl << msg << std::endl; - exit(-1); + std::cout << std::endl << msg << std::endl; + exit(-1); } std::string exec_cmd(const char* cmd) { FILE* pipe = popen(cmd, "r"); - if (!pipe) return ""; + + if(!pipe) return ""; + char buffer[128]; std::string result = ""; + while(!feof(pipe)) { if(fgets(buffer, 128, pipe) != NULL) result += buffer; } + pclose(pipe); return result; } @@ -85,7 +61,7 @@ int main(int argc, char** argv) { std::string exec = argv[0]; std::string param = argv[1] ? argv[1] : ""; - if (argc < 2) { + if(argc < 2) { std::string msg = "Usage: "; msg += exec; msg += " "; msg += "\n xml directory: contains the xml files needed, which are:"; msg += "\n"; @@ -97,15 +73,15 @@ int main(int argc, char** argv) { msg += "\n"; msg += "\n For example: "; msg += exec; msg += " "; std::string projectRoot = exec_cmd("git rev-parse --show-toplevel"); - if (projectRoot != "") { + + if(projectRoot != "") { //projectRoot.resize(projectRoot.size()-1); - projectRoot.erase(projectRoot.size()-1); + projectRoot.erase(projectRoot.size() - 1); msg += projectRoot; msg += "/"; } msg += "source/diameter/stack/setups"; - _exit(msg); } @@ -118,13 +94,11 @@ int main(int argc, char** argv) { dictionary->load(param + "/avps_tme.xml"); dictionary->load(param + "/commands_dccaOCS-CS_HuaweiNGIN_de-es.xml"); codecEngine->setDictionary(dictionary); - // Trace: LOGINFORMATION(Logger::information(stackEngine.asString(), ANNA_FILE_LOCATION)); LOGDEBUG(Logger::debug(dictionary->asString(), ANNA_FILE_LOCATION)); LOGDEBUG(Logger::debug(codecEngine->asString(), ANNA_FILE_LOCATION)); - - } catch (anna::RuntimeException &ex) { + } catch(anna::RuntimeException &ex) { ex.trace(); std::cout << ex.getText() << std::endl; } @@ -132,48 +106,44 @@ int main(int argc, char** argv) { // Build CCA tmeMessage cca; cca.setId("Credit-Control-Answer"); - tmeAvp *sid = (tmeAvp*)cca.addAvp("Session-Id"); tmeAvp *ohst = (tmeAvp*)cca.addAvp("Origin-Host"); tmeAvp *orlm = (tmeAvp*)cca.addAvp("Origin-Realm"); - - sid->getUTF8String()->setValue("grump.example.com:33041;23432;893;0AF3B81"); + sid->getUTF8String()->setValue("grump.example.com:33041;23432;893;0AF3B81"); ohst->getDiameterIdentity()->setValue("c0-10-70-238-74-w5p1vepg1.vepc.ericsson.se"); orlm->getDiameterIdentity()->setValue("vepc.ericsson.se"); int inRange = 65535; int outRange = inRange + 1; //((tmeAvp*)cca.addAvp("CS-Result-Code"))->getUnsigned16()->setValue(inRange); ((tmeAvp*)cca.addAvp("CS-Result-Code"))->getUnsigned16()->setValue(outRange); // WILL BE 0 !! - -/* - - - - - - - - - - - - - - - - - - - - - - - - - -*/ - LOGDEBUG(Logger::debug(cca.asXMLString(), ANNA_FILE_LOCATION)); - - _exit("Open 'file.trace' in order to see traces"); + /* + + + + + + + + + + + + + + + + + + + + + + + + + + */ + LOGDEBUG(Logger::debug(cca.asXMLString(), ANNA_FILE_LOCATION)); + _exit("Open 'file.trace' in order to see traces"); }