Discovery with wait an select ist ready...

FossilOrigin-Name: 115fa489fbb4aa197e8390d40abcea80a8d4f954fecab348ce2862d2a20523c2
This commit is contained in:
7u83@mail.ru
2018-03-30 17:45:27 +00:00
parent d0e8d2c6fd
commit bbc64dd0a7
15 changed files with 214 additions and 147 deletions

View File

@ -89,6 +89,7 @@ CWSRC=\
cw_put_msg.c\
cw_radio_set_admin_state.c\
cw_rand.c\
cw_randint.c\
cw_read_ac_descriptor.c\
cw_read_descriptor_subelems.c\
cw_readelem_statistics_timer.c\
@ -186,6 +187,7 @@ SOCKSRC=\
LOGSRC=\
log.c\
log_file.c\
log_errno.c\
log_syslog.c\
dbg.c\
dbg_strings.c\

View File

@ -349,8 +349,10 @@
/* capwap timer default values */
#define CW_DISCOVERY_INTERVAL 5
#define CW_MAX_DISCOVERY_INTERVAL 20
#define CAPWAP_DISCOVERY_INTERVAL 5
#define CAPWAP_MAX_DISCOVERY_INTERVAL 20
#define CAPWAP_MIN_DISCOVERY_INTERVAL 2
#define CAPWAP_RETRANSMIT_INTERVAL 3
#define CAPWAP_MAX_DISCOVERIES 10
#define CAPWAP_MAX_RETRANSMIT 5

25
src/cw/cw_randint.c Normal file
View File

@ -0,0 +1,25 @@
#include <stdint.h>
#include "rand.h"
/**
* @brief Get e random integer in a specific range.
* @param min minimum value
* @param max maximum value
* @return The random number, which is greater or equal to min and
* less than max.
*/
uint16_t cw_randint(int min,int max)
{
uint16_t randval;
uint32_t diff;
diff = max-min;
cw_rand((uint8_t*)(&randval),sizeof(randval));
return min+diff * randval / 0xffff;
}

View File

@ -52,6 +52,7 @@ extern struct cw_LogWriter cw_log_console_writer;
void cw_log_init();
void cw_log(int level, const char *format, ...);
void cw_log_errno(char * format, ...);
extern const char *cw_log_name;
extern struct cw_LogWriter * cw_log_writers[];

20
src/cw/log_errno.c Normal file
View File

@ -0,0 +1,20 @@
#include <errno.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include "log.h"
void cw_log_errno(char * format, ...)
{
char str[2048];
int err=errno;
va_list args;
va_start(args,format);
vsprintf(str,format,args);
va_end(args);
cw_log(LOG_ERR,"%s: %s",str,strerror(err));
}

View File

@ -74,6 +74,8 @@ struct cw_Mod {
/** used for private data */
void *data;
int (*setup_cfg)(struct conn *conn);
};

View File

@ -1,7 +1,10 @@
#ifndef __CW_RAND_H
#define __CW_RAND_H
extern int cw_rand(uint8_t*dst, int len);
#include <stdint.h>
int cw_rand(uint8_t*dst, int len);
uint16_t cw_randint(int min,int max);
#endif

View File

@ -74,12 +74,18 @@ typedef time_t cw_timer_t;
* and #cw_clock_lap.
* @param c name of the variable
*
* Example:
* @code
* Example
* @code{.c}
* #include "cw/timer.h"
*
* CW_CLOCK_DEFINE(clk);
* int t;
*
* cw_clock_start(clk);
*
* @startcomment do something ... @endcomment
* int t = cw_clock_lap(clk);
*
* t = cw_clock_lap(clk);
* printf("Caclulation took %d seconds\n",t);
* @endcode
*