Changed the management of the wireless interfaces, from creation to usage.

The virtual interfaces are created at the startup of the wtp to reduce the time
required to configure a wireless interface.
Applied some patches to build the WTP on OpenWRT trunk
This commit is contained in:
vemax78
2014-02-08 18:03:38 +01:00
parent 64a8bdfa1e
commit 025880583c
21 changed files with 1468 additions and 744 deletions

View File

@ -1,4 +1,3 @@
#include <execinfo.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -7,6 +6,10 @@
#include "config.h"
#endif
#ifdef USE_DEBUG_BACKTRACE
#include <execinfo.h>
#endif
#include "capwap_logging.h"
#include "capwap_error.h"
@ -23,8 +26,10 @@ struct capwap_memory_block {
size_t size;
const char* file;
int line;
#ifdef USE_DEBUG_BACKTRACE
void* backtrace[BACKTRACE_BUFFER];
int backtrace_count;
#endif
struct capwap_memory_block* next;
};
@ -54,7 +59,9 @@ void* capwap_alloc_debug(size_t size, const char* file, const int line) {
block->size = size;
block->file = file;
block->line = line;
#ifdef USE_DEBUG_BACKTRACE
block->backtrace_count = backtrace(block->backtrace, BACKTRACE_BUFFER);
#endif
block->next = g_memoryblocks;
/* Canary */
@ -125,13 +132,16 @@ void capwap_free_debug(void* p, const char* file, const int line) {
/* Dump memory alloced */
void capwap_dump_memory(void) {
#ifdef USE_DEBUG_BACKTRACE
char** backtrace_functions;
#endif
struct capwap_memory_block* findblock;
findblock = g_memoryblocks;
while (findblock != NULL) {
capwap_logging_debug("%s(%d): block at %p, %d bytes long", findblock->file, findblock->line, findblock->item, findblock->size);
#ifdef USE_DEBUG_BACKTRACE
backtrace_functions = backtrace_symbols(findblock->backtrace, findblock->backtrace_count);
if (backtrace_functions) {
int j;
@ -143,7 +153,7 @@ void capwap_dump_memory(void) {
free(backtrace_functions);
}
#endif
/* Next */
findblock = findblock->next;
@ -162,6 +172,7 @@ int capwap_check_memory_leak(int verbose) {
}
/* Backtrace call stack */
#ifdef USE_DEBUG_BACKTRACE
void capwap_backtrace_callstack(void) {
int i;
int count;
@ -183,3 +194,4 @@ void capwap_backtrace_callstack(void) {
}
}
}
#endif

View File

@ -19,7 +19,11 @@ void capwap_free_debug(void* p, const char* file, const int line);
int capwap_check_memory_leak(int verbose);
void capwap_dump_memory(void);
#ifdef USE_DEBUG_BACKTRACE
void capwap_backtrace_callstack(void);
#else
#define capwap_backtrace_callstack() (0)
#endif
#else