Commit 4ec402db authored by HFJ's avatar HFJ

logger partially enabled

parent 6c254e70
......@@ -30,8 +30,7 @@ include_directories(5gaka)
include_directories(common)
include_directories(libngap)
##############################################
################### code frrom amf cmakelists###########################
find_package(PkgConfig REQUIRED)
pkg_search_module(NETTLE nettle)
......@@ -63,6 +62,13 @@ add_definitions("-DNETTLE_VERSION_MAJOR=${NETTLE_VERSION_MAJOR}")
add_definitions("-DNETTLE_VERSION_MINOR=${NETTLE_VERSION_MINOR}")
##############################################
### for log --- from amf code
add_library( LOG STATIC
${CMAKE_CURRENT_SOURCE_DIR}/common/logger.cpp)
add_library( OPTIONS STATIC
${CMAKE_CURRENT_SOURCE_DIR}/common/options.cpp)
###end for log
file(GLOB SRCS
${CMAKE_CURRENT_SOURCE_DIR}/api/*.cpp
......@@ -75,6 +81,7 @@ file(GLOB SRCS
)
add_executable(${PROJECT_NAME} ${SRCS})
add_executable(${PROJECT_NAME} ${SRCS} )
add_dependencies(${PROJECT_NAME} PISTACHE NLOHMANN)
target_link_libraries(${PROJECT_NAME} pistache pthread gmp ${NETTLE_LIBRARIES})
target_link_libraries(${PROJECT_NAME} LOG OPTIONS pistache pthread gmp ${NETTLE_LIBRARIES})
#ifndef _PRINT_BUFFER_H
#define _PRINT_BUFFER_H
//#include "logger.hpp"
#include "logger.hpp"
#include "iostream"
#include <string>
using namespace std;
......@@ -9,7 +9,7 @@ using namespace std;
void print_buffer(const string app, const string commit, uint8_t *buf, int len){
if(!app.compare("ausf_server"))
cout << commit.c_str() << endl;
//Logger::ausf_server().debug(commit.c_str());
Logger::ausf_server().debug(commit.c_str());
for(int i=0; i<len; i++)
printf("%x ",buf[i]);
......
......@@ -89,22 +89,22 @@ void _Logger::trace( const std::string &format, ... )
void _Logger::debug( const char *format, ... )
{
#if DEBUG_IS_ON
// #if DEBUG_IS_ON
va_list args;
va_start( args, format );
log( _ltDebug, format, args );
va_end( args );
#endif
// #endif
}
void _Logger::debug( const std::string &format, ... )
{
#if DEBUG_IS_ON
// #if DEBUG_IS_ON
va_list args;
va_start( args, format );
log( _ltDebug, format.c_str(), args );
va_end( args );
#endif
// #endif
}
void _Logger::info( const char *format, ... )
......
/*
* Copyright (c) 2017 Sprint
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <iostream>
#include <stdlib.h>
#include <unistd.h>
#include <getopt.h>
#include "options.hpp"
int Options::options;
std::string Options::m_libconfigcfg;
bool Options::m_log_rot_file_log;
bool Options::m_log_stdout;
void Options::help()
{
std::cout << std::endl
<< "Usage: smf [OPTIONS]..." << std::endl
<< " -h, --help Print help and exit" << std::endl
<< " -c, --libconfigcfg filename Read the application configuration from this file." << std::endl
<< " -o, --stdoutlog Send the application logs to STDOUT fd." << std::endl
<< " -r, --rotatelog Send the application logs to local file (in current working directory)." << std::endl
;
}
bool Options::parse( int argc, char **argv ){
bool ret = true;
ret = parseInputOptions( argc, argv );
ret &= validateOptions();
return ret;
}
bool Options::validateOptions(){
return (
(options & libconfigcfg)
);
}
bool Options::parseInputOptions( int argc, char **argv )
{
int c;
int option_index = 0;
bool result = true;
struct option long_options[] = {
{ "help", no_argument, NULL, 'h' },
{ "libconfigcfg", required_argument, NULL, 'f' },
{ "stdoutlog", no_argument, NULL, 'o' },
{ "rotatelog", no_argument, NULL, 'r' },
{ NULL,0,NULL,0 }
};
// Loop on arguments
while (1)
{
c = getopt_long(argc, argv, "horc:", long_options, &option_index );
if (c == -1)
break; // Exit from the loop.
switch (c)
{
case 'h': { help(); exit(0); break; }
case 'c': { m_libconfigcfg = optarg; options |= libconfigcfg; break; }
case 'o': { m_log_stdout = true; options |= log_stdout; break; }
case 'r': { m_log_rot_file_log = true; options |= log_rot_file_log; break; }
case '?':
{
switch ( optopt )
{
case 'c': { std::cout << "Option -l (libconfig config) requires an argument" << std::endl; break; }
case 'o': { std::cout << "Option -o do not requires an argument, can be also set with option -r." << std::endl; break; }
case 'r': { std::cout << "Option -r do not requires an argument, can be also set with option -o." << std::endl; break; }
default: { std::cout << "Unrecognized option [" << c << "]" << std::endl; break; }
}
result = false;
break;
}
default:
{
std::cout << "Unrecognized option [" << c << "]" << std::endl;
result = false;
}
}
}
return result;
}
/*
* Copyright (c) 2017 Sprint
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef __OPTIONS_H
#define __OPTIONS_H
#include <stdint.h>
#include <string>
class Options
{
public:
static bool parse( int argc, char **argv );
static bool parseInputOptions( int argc, char **argv );
static bool parseJson();
static bool validateOptions();
static const std::string &getlibconfigConfig() { return m_libconfigcfg; }
static const bool &getlogRotFilelog() { return m_log_rot_file_log; }
static const bool &getlogStdout() { return m_log_stdout; }
private:
enum OptionsSelected {
libconfigcfg = 0x01,
log_stdout = 0x02,
log_rot_file_log = 0x04
};
static void help();
static int options;
static bool m_log_rot_file_log;
static bool m_log_stdout;
static std::string m_libconfigcfg;
};
#endif // #define __OPTIONS_H
......@@ -23,7 +23,11 @@
#include "AuthenticationResultDeletionApiImpl.h"
#include "DefaultApiImpl.h"
#include "authentication_algorithms_with_5gaka.hpp"
#include <iostream>
#include "logger.hpp"
#include "options.hpp"
using namespace std;
#define PISTACHE_SERVER_THREADS 2
......@@ -63,7 +67,7 @@ static void setUpUnixSignals(std::vector<int> quitSignals) {
using namespace org::openapitools::server::api;
int main() {
int main(int argc, char **argv) {
#ifdef __linux__
std::vector<int> sigs{SIGQUIT, SIGINT, SIGTERM, SIGHUP};
setUpUnixSignals(sigs);
......@@ -80,26 +84,13 @@ int main() {
opts.maxResponseSize(PISTACHE_SERVER_MAX_RESPONSE_SIZE);
httpEndpoint->init(opts);
uint8_t opc[16] = {0xcd, 0x63, 0xcb, 0x71, 0x95, 0x4a, 0x9f, 0x4e, 0x48, 0xa5, 0x99, 0x4e, 0x37, 0xa0, 0x2b, 0xaf};
uint8_t rand[16] = {0x23, 0x55, 0x3c, 0xbe, 0x96, 0x37, 0xa8, 0x9d, 0x21, 0x8a, 0xe6, 0x4d, 0xae, 0x47, 0xbf, 0x35};
uint8_t key[16] = {0x46, 0x5b, 0x5c, 0xe8, 0xb1, 0x99, 0xb4, 0x9f, 0xaa, 0x5f, 0x0a, 0x2e, 0xe2, 0x38, 0xa6, 0xbc};
uint8_t sqn[6] = {0xff, 0x9b, 0xb4, 0xd0, 0xb6, 0x07};
uint8_t amf[2] = {0xb9, 0xb9};
uint8_t mac_a[8], mac_s[8];
Authentication_5gaka::f1(opc, key, rand, sqn, amf, mac_a);
Authentication_5gaka::f1star(opc, key, rand, sqn, amf, mac_s);
printf("testing f1...\n");
for(int i=0; i<8; i++)
printf("%x ",mac_a[i]);
printf("\n");
for(int i=0; i<8; i++)
printf("%x ",mac_s[i]);
printf("\n");
//AuthenticationResultDeletionApiImpl AuthenticationResultDeletionApiserver(router);
//AuthenticationResultDeletionApiserver.init();
// DefaultApiImpl DefaultApiserver(router);
// DefaultApiserver.init();
Logger::init( "ausf" , true , false);
Logger::ausf_server().startup("Entering main...");
AuthenticationResultDeletionApiImpl AuthenticationResultDeletionApiserver(router);
AuthenticationResultDeletionApiserver.init();
DefaultApiImpl DefaultApiserver(router);
DefaultApiserver.init();
httpEndpoint->setHandler(router->handler());
httpEndpoint->serve();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment