Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Michael Black
OpenXG-RAN
Commits
c722206a
Commit
c722206a
authored
May 30, 2023
by
frtabu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
review fixes, squash formating commits
parent
cc3e8efc
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
970 additions
and
747 deletions
+970
-747
common/utils/telnetsrv/telnetsrv.c
common/utils/telnetsrv/telnetsrv.c
+306
-257
common/utils/telnetsrv/telnetsrv_loader.c
common/utils/telnetsrv/telnetsrv_loader.c
+28
-27
common/utils/telnetsrv/telnetsrv_proccmd.c
common/utils/telnetsrv/telnetsrv_proccmd.c
+374
-371
common/utils/websrv/websrv.c
common/utils/websrv/websrv.c
+214
-71
common/utils/websrv/websrv_utils.c
common/utils/websrv/websrv_utils.c
+48
-21
No files found.
common/utils/telnetsrv/telnetsrv.c
View file @
c722206a
This diff is collapsed.
Click to expand it.
common/utils/telnetsrv/telnetsrv_loader.c
View file @
c722206a
...
...
@@ -29,17 +29,15 @@
* \note
* \warning
*/
#define _GNU_SOURCE
#define _GNU_SOURCE
#include <string.h>
#include <pthread.h>
#define TELNETSERVERCODE
#include "telnetsrv.h"
#define TELNETSRV_LOADER_MAIN
#include "telnetsrv_loader.h"
int
loader_show_cmd
(
char
*
buff
,
int
debug
,
telnet_printfunc_t
prnt
);
telnetshell_cmddef_t
loader_cmdarray
[]
=
{
{
"show"
,
"[params,modules]"
,
loader_show_cmd
,
{(
webfunc_t
)
loader_show_cmd
},
0
,
NULL
},
...
...
@@ -50,35 +48,38 @@ telnetshell_cmddef_t loader_cmdarray[] = {
int
loader_show_cmd
(
char
*
buff
,
int
debug
,
telnet_printfunc_t
prnt
)
{
if
(
buff
==
NULL
)
{
buff
=
"modules"
;
buff
=
"modules"
;
}
if
(
debug
>
0
)
prnt
(
"loader_show_cmd received
\"
%s
\"\n
"
,
buff
);
if
(
debug
>
0
)
prnt
(
"loader_show_cmd received
\"
%s
\"\n
"
,
buff
);
if
(
strcasestr
(
buff
,
"params"
)
!=
NULL
)
{
prnt
(
"loader parameters:
\n
"
);
prnt
(
" Main executable build version:
\"
%s
\"\n
"
,
loader_data
.
mainexec_buildversion
);
prnt
(
" Default shared lib path:
\"
%s
\"\n
"
,
loader_data
.
shlibpath
);
prnt
(
" Max number of shared lib : %i
\n
"
,
loader_data
.
maxshlibs
);
}
else
if
(
strcasestr
(
buff
,
"modules"
)
!=
NULL
||
buff
[
0
]
==
0
)
{
prnt
(
"%i shared lib have been dynamicaly loaded by the oai loader
\n
"
,
loader_data
.
numshlibs
);
for
(
int
i
=
0
;
i
<
loader_data
.
numshlibs
;
i
++
)
{
prnt
(
" Module %i: %s
\n
"
,
i
,
loader_data
.
shlibs
[
i
].
name
);
prnt
(
" Shared library build version:
\"
%s
\"\n
"
,
((
loader_data
.
shlibs
[
i
].
shlib_buildversion
==
NULL
)
?
""
:
loader_data
.
shlibs
[
i
].
shlib_buildversion
));
prnt
(
" Shared library path:
\"
%s
\"\n
"
,
loader_data
.
shlibs
[
i
].
thisshlib_path
);
prnt
(
" %i function pointers registered:
\n
"
,
loader_data
.
shlibs
[
i
].
numfunc
);
for
(
int
j
=
0
;
j
<
loader_data
.
shlibs
[
i
].
numfunc
;
j
++
)
{
prnt
(
" function %i %s at %p
\n
"
,
j
,
loader_data
.
shlibs
[
i
].
funcarray
[
j
].
fname
,
loader_data
.
shlibs
[
i
].
funcarray
[
j
].
fptr
);
}
}
}
else
{
prnt
(
"%s: wrong loader command...
\n
"
,
buff
);
if
(
strcasestr
(
buff
,
"params"
)
!=
NULL
)
{
prnt
(
"loader parameters:
\n
"
);
prnt
(
" Main executable build version:
\"
%s
\"\n
"
,
loader_data
.
mainexec_buildversion
);
prnt
(
" Default shared lib path:
\"
%s
\"\n
"
,
loader_data
.
shlibpath
);
prnt
(
" Max number of shared lib : %i
\n
"
,
loader_data
.
maxshlibs
);
}
else
if
(
strcasestr
(
buff
,
"modules"
)
!=
NULL
||
buff
[
0
]
==
0
)
{
prnt
(
"%i shared lib have been dynamicaly loaded by the oai loader
\n
"
,
loader_data
.
numshlibs
);
for
(
int
i
=
0
;
i
<
loader_data
.
numshlibs
;
i
++
)
{
prnt
(
" Module %i: %s
\n
"
,
i
,
loader_data
.
shlibs
[
i
].
name
);
prnt
(
" Shared library build version:
\"
%s
\"\n
"
,
((
loader_data
.
shlibs
[
i
].
shlib_buildversion
==
NULL
)
?
""
:
loader_data
.
shlibs
[
i
].
shlib_buildversion
)
);
prnt
(
" Shared library path:
\"
%s
\"\n
"
,
loader_data
.
shlibs
[
i
].
thisshlib_path
);
prnt
(
" %i function pointers registered:
\n
"
,
loader_data
.
shlibs
[
i
].
numfunc
);
for
(
int
j
=
0
;
j
<
loader_data
.
shlibs
[
i
].
numfunc
;
j
++
)
{
prnt
(
" function %i %s at %p
\n
"
,
j
,
loader_data
.
shlibs
[
i
].
funcarray
[
j
].
fname
,
loader_data
.
shlibs
[
i
].
funcarray
[
j
].
fptr
);
}
return
0
;
}
}
else
{
prnt
(
"%s: wrong loader command...
\n
"
,
buff
);
}
return
0
;
}
void
add_loader_cmds
(
void
)
{
add_telnetcmd
(
"loader"
,
loader_globalvardef
,
loader_cmdarray
);
add_telnetcmd
(
"loader"
,
loader_globalvardef
,
loader_cmdarray
);
}
common/utils/telnetsrv/telnetsrv_proccmd.c
View file @
c722206a
This diff is collapsed.
Click to expand it.
common/utils/websrv/websrv.c
View file @
c722206a
This diff is collapsed.
Click to expand it.
common/utils/websrv/websrv_utils.c
View file @
c722206a
...
...
@@ -110,19 +110,41 @@ void websrv_printjson(char *label, json_t *jsonobj, int dbglvl)
void
websrv_dump_request
(
char
*
label
,
const
struct
_u_request
*
request
,
int
dbglvl
)
{
if
(
dbglvl
>
0
)
{
LOG_I
(
UTIL
,
"[websrv] %s, request %s, proto %s, verb %s, path %s
\n
"
,
label
,
request
->
http_url
,
request
->
http_protocol
,
request
->
http_verb
,
request
->
http_verb
);
LOG_I
(
UTIL
,
"[websrv] %s, request %s, proto %s, verb %s, path %s
\n
"
,
label
,
request
->
http_url
,
request
->
http_protocol
,
request
->
http_verb
,
request
->
http_verb
);
if
(
request
->
map_post_body
!=
NULL
)
for
(
int
i
=
0
;
i
<
u_map_count
(
request
->
map_post_body
);
i
++
)
LOG_I
(
UTIL
,
"[websrv] POST parameter %i %s : %s
\n
"
,
i
,
u_map_enum_keys
(
request
->
map_post_body
)[
i
],
u_map_enum_values
(
request
->
map_post_body
)[
i
]);
LOG_I
(
UTIL
,
"[websrv] POST parameter %i %s : %s
\n
"
,
i
,
u_map_enum_keys
(
request
->
map_post_body
)[
i
],
u_map_enum_values
(
request
->
map_post_body
)[
i
]);
if
(
request
->
map_cookie
!=
NULL
)
for
(
int
i
=
0
;
i
<
u_map_count
(
request
->
map_cookie
);
i
++
)
LOG_I
(
UTIL
,
"[websrv] cookie variable %i %s : %s
\n
"
,
i
,
u_map_enum_keys
(
request
->
map_cookie
)[
i
],
u_map_enum_values
(
request
->
map_cookie
)[
i
]);
LOG_I
(
UTIL
,
"[websrv] cookie variable %i %s : %s
\n
"
,
i
,
u_map_enum_keys
(
request
->
map_cookie
)[
i
],
u_map_enum_values
(
request
->
map_cookie
)[
i
]);
if
(
request
->
map_header
!=
NULL
)
for
(
int
i
=
0
;
i
<
u_map_count
(
request
->
map_header
);
i
++
)
LOG_I
(
UTIL
,
"[websrv] header variable %i %s : %s
\n
"
,
i
,
u_map_enum_keys
(
request
->
map_header
)[
i
],
u_map_enum_values
(
request
->
map_header
)[
i
]);
LOG_I
(
UTIL
,
"[websrv] header variable %i %s : %s
\n
"
,
i
,
u_map_enum_keys
(
request
->
map_header
)[
i
],
u_map_enum_values
(
request
->
map_header
)[
i
]);
if
(
request
->
map_url
!=
NULL
)
for
(
int
i
=
0
;
i
<
u_map_count
(
request
->
map_url
);
i
++
)
LOG_I
(
UTIL
,
"[websrv] url variable %i %s : %s
\n
"
,
i
,
u_map_enum_keys
(
request
->
map_url
)[
i
],
u_map_enum_values
(
request
->
map_url
)[
i
]);
LOG_I
(
UTIL
,
"[websrv] url variable %i %s : %s
\n
"
,
i
,
u_map_enum_keys
(
request
->
map_url
)[
i
],
u_map_enum_values
(
request
->
map_url
)[
i
]);
}
}
/*-----------------------------------*/
...
...
@@ -163,29 +185,27 @@ int websrv_string_response(char *astring, struct _u_response *response, int http
/* set of calls to fill a buffer with a string and use this buffer in a response */
void
websrv_printf_start
(
struct
_u_response
*
response
,
int
buffsize
,
bool
async
)
{
int
st
=
-
1
;
int
st
=
-
1
;
for
(
int
count
=
0
;
count
<
10
;
count
++
)
{
st
=
pthread_mutex_trylock
(
&
(
websrv_printf_buff
.
mutex
));
if
(
st
==
0
)
for
(
int
count
=
0
;
count
<
10
;
count
++
)
{
st
=
pthread_mutex_trylock
(
&
(
websrv_printf_buff
.
mutex
));
if
(
st
==
0
)
break
;
usleep
(
100
);
count
++
;
}
if
(
st
!=
0
)
{
char
msg
[
255
];
snprintf
(
msg
,
sizeof
(
msg
)
-
1
,
"[websrv] cannot allocate print buffer, error %s"
,
strerror
(
st
));
LOG_W
(
UTIL
,
"%s"
,
msg
);
websrv_string_response
(
msg
,
websrv_printf_buff
.
response
,
500
,
0
);
}
else
{
if
(
st
!=
0
)
{
char
msg
[
255
];
snprintf
(
msg
,
sizeof
(
msg
)
-
1
,
"[websrv] cannot allocate print buffer, error %s"
,
strerror
(
st
));
LOG_W
(
UTIL
,
"%s"
,
msg
);
websrv_string_response
(
msg
,
websrv_printf_buff
.
response
,
500
,
0
);
}
else
{
websrv_printf_buff
.
buff
=
malloc
(
buffsize
);
websrv_printf_buff
.
buffptr
=
websrv_printf_buff
.
buff
;
websrv_printf_buff
.
buffsize
=
buffsize
;
websrv_printf_buff
.
response
=
response
;
websrv_printf_buff
.
async
=
async
;
}
}
}
void
websrv_printf_atpos
(
int
pos
,
const
char
*
message
,
...)
...
...
@@ -193,7 +213,8 @@ void websrv_printf_atpos(int pos, const char *message, ...)
va_list
va_args
;
va_start
(
va_args
,
message
);
websrv_printf_buff
.
buffptr
=
websrv_printf_buff
.
buff
+
pos
+
vsnprintf
(
websrv_printf_buff
.
buff
+
pos
,
websrv_printf_buff
.
buffsize
-
pos
-
1
,
message
,
va_args
);
websrv_printf_buff
.
buffptr
=
websrv_printf_buff
.
buff
+
pos
+
vsnprintf
(
websrv_printf_buff
.
buff
+
pos
,
websrv_printf_buff
.
buffsize
-
pos
-
1
,
message
,
va_args
);
va_end
(
va_args
);
return
;
...
...
@@ -203,7 +224,10 @@ void websrv_printf(const char *message, ...)
{
va_list
va_args
;
va_start
(
va_args
,
message
);
websrv_printf_buff
.
buffptr
+=
vsnprintf
(
websrv_printf_buff
.
buffptr
,
websrv_printf_buff
.
buffsize
-
(
websrv_printf_buff
.
buffptr
-
websrv_printf_buff
.
buff
)
-
1
,
message
,
va_args
);
websrv_printf_buff
.
buffptr
+=
vsnprintf
(
websrv_printf_buff
.
buffptr
,
websrv_printf_buff
.
buffsize
-
(
websrv_printf_buff
.
buffptr
-
websrv_printf_buff
.
buff
)
-
1
,
message
,
va_args
);
va_end
(
va_args
);
return
;
}
...
...
@@ -223,7 +247,10 @@ void websrv_printf_end(int httpstatus, int dbglvl)
websrv_string_response
(
websrv_printf_buff
.
buff
,
websrv_printf_buff
.
response
,
httpstatus
,
dbglvl
);
}
else
if
(
httpstatus
<
1000
)
{
LOG_W
(
UTIL
,
"[websrv] %s
\n
"
,
websrv_printf_buff
.
buff
);
ulfius_set_binary_body_response
(
websrv_printf_buff
.
response
,
httpstatus
,
websrv_printf_buff
.
buff
,
websrv_printf_buff
.
buffptr
-
websrv_printf_buff
.
buff
);
ulfius_set_binary_body_response
(
websrv_printf_buff
.
response
,
httpstatus
,
websrv_printf_buff
.
buff
,
websrv_printf_buff
.
buffptr
-
websrv_printf_buff
.
buff
);
}
free
(
websrv_printf_buff
.
buff
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment