The Assimilation Monitoring Project
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
dump.c
Go to the documentation of this file.
1
22
#include <stdlib.h>
23
#include <stdio.h>
24
#include <string.h>
25
#include <ctype.h>
26
#include <glib.h>
27
#include <
lldp.h
>
28
#include <
server_dump.h
>
29
30
31
//const gboolean is_all_ascii(const void*, const void *);
32
//void dump_mem(const void *, const void *);
33
35
WINEXPORT
gboolean
36
is_all_ascii
(
const
void
* vmem,
const
void
* vend)
37
{
38
const
guchar* mem = vmem;
39
const
guchar* end = vend;
40
int
len = end - mem;
41
if
(len == 0) {
42
return
FALSE;
43
}
44
for
(; mem < end; ++mem) {
45
const
guchar* uc = mem;
46
if
(isspace(*uc) || (isascii(*uc) && !iscntrl(*uc)) || (mem == end-1 && *uc == 0x00 && len > 1)) {
47
continue
;
48
}
49
return
FALSE;
50
}
51
if
(len == 1) {
52
--mem;
53
fprintf(stderr,
"STRING WITH 1 CHAR 0x%02x is ASCII\n"
, *((
const
unsigned
char
*)mem));
54
}
55
return
TRUE;
56
}
57
59
void
60
dump_mem
(
const
void
* vstart,
const
void
* vend)
61
{
62
const
guchar* start = vstart;
63
const
guchar* end = vend;
64
const
guchar* vp;
65
66
if
(
is_all_ascii
(start, end)) {
67
fprintf(stdout,
"{\""
);
68
while
(start < end) {
69
char
startchar = *((
const
char
*)start);
70
++start;
71
if
(startchar == 0x00) {
72
break
;
73
}
74
fprintf(stdout,
"%c"
, startchar);
75
}
76
fprintf(stdout,
"\"}"
);
77
fflush(stdout);
78
return
;
79
}
80
fprintf(stdout,
"{"
);
81
for
(vp=start; vp < (
const
guchar*)end; ++vp) {
82
fprintf(stdout,
"%s0x%02x"
83
, vp == start ?
""
:
", "
84
, (
unsigned
)(*vp));
85
86
}
87
fprintf(stdout,
"}"
);
88
}
src
serverlib
dump.c
Generated on Fri May 17 2013 16:40:58 for The Assimilation Monitoring Project by
1.8.3.1