Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
胡斌
/
srs
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
winlin
2014-05-18 16:48:24 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
3064e5ec61b3067e884f68b6fdcb1de2efba8020
3064e5ec
1 parent
d6355efe
fix bug of nx_json parse, to 0.9.104
隐藏空白字符变更
内嵌
并排对比
正在显示
4 个修改的文件
包含
60 行增加
和
41 行删除
trunk/src/app/srs_app_http_api.cpp
trunk/src/app/srs_app_json.cpp
trunk/src/core/srs_core.hpp
trunk/src/kernel/srs_kernel_error.hpp
trunk/src/app/srs_app_http_api.cpp
查看文件 @
3064e5e
...
...
@@ -213,48 +213,56 @@ int SrsApiConfigsLogs::do_process_request(SrsSocket* skt, SrsHttpMessage* req)
{
int
ret
=
ERROR_SUCCESS
;
if
(
req
->
is_http_put
())
{
srs_trace
(
"http api PUT logs, req is: %s"
,
req
->
body
().
c_str
());
SrsJsonAny
*
json
=
SrsJsonAny
::
loads
(
req
->
body_raw
());
SrsAutoFree
(
SrsJsonAny
,
json
);
// HTTP GET
if
(
req
->
is_http_get
())
{
std
::
stringstream
ss
;
ss
<<
JOBJECT_START
<<
JFIELD_ERROR
(
ERROR_SUCCESS
)
<<
JFIELD_CONT
<<
JFIELD_ORG
(
"data"
,
JOBJECT_START
)
<<
JFIELD_STR
(
"tank"
,
(
_srs_config
->
get_log_tank_file
()
?
"file"
:
"console"
))
<<
JFIELD_CONT
<<
JFIELD_STR
(
"level"
,
_srs_config
->
get_log_level
())
<<
JFIELD_CONT
<<
JFIELD_STR
(
"cwd"
,
_srs_config
->
cwd
())
<<
JFIELD_CONT
<<
JFIELD_STR
(
"file"
,
_srs_config
->
get_log_file
())
<<
JOBJECT_END
<<
JOBJECT_END
;
if
(
json
->
is_object
())
{
SrsJsonObject
*
o
=
json
->
to_object
();
SrsJsonAny
*
prop
=
NULL
;
if
((
prop
=
o
->
ensure_property_string
(
"file"
))
!=
NULL
&&
_srs_config
->
set_log_file
(
prop
->
to_str
()))
{
if
((
ret
=
_srs_config
->
force_reload_log_file
())
!=
ERROR_SUCCESS
)
{
return
response_error
(
skt
,
req
,
ret
,
"reload log file failed"
);
}
srs_warn
(
"http api reload log file to %s"
,
prop
->
to_str
().
c_str
());
}
if
((
prop
=
o
->
ensure_property_string
(
"tank"
))
!=
NULL
&&
_srs_config
->
set_log_tank
(
prop
->
to_str
()))
{
if
((
ret
=
_srs_config
->
force_reload_log_tank
())
!=
ERROR_SUCCESS
)
{
return
response_error
(
skt
,
req
,
ret
,
"reload log tank failed"
);
}
srs_warn
(
"http api reload log tank to %s"
,
prop
->
to_str
().
c_str
());
}
if
((
prop
=
o
->
ensure_property_string
(
"level"
))
!=
NULL
&&
_srs_config
->
set_log_level
(
prop
->
to_str
()))
{
if
((
ret
=
_srs_config
->
force_reload_log_level
())
!=
ERROR_SUCCESS
)
{
return
response_error
(
skt
,
req
,
ret
,
"reload log level failed"
);
}
srs_warn
(
"http api reload log level to %s"
,
prop
->
to_str
().
c_str
());
}
}
return
res_json
(
skt
,
req
,
ss
.
str
());
}
std
::
stringstream
ss
;
ss
<<
JOBJECT_START
<<
JFIELD_ERROR
(
ERROR_SUCCESS
)
<<
JFIELD_CONT
<<
JFIELD_ORG
(
"data"
,
JOBJECT_START
)
<<
JFIELD_STR
(
"tank"
,
(
_srs_config
->
get_log_tank_file
()
?
"file"
:
"console"
))
<<
JFIELD_CONT
<<
JFIELD_STR
(
"level"
,
_srs_config
->
get_log_level
())
<<
JFIELD_CONT
<<
JFIELD_STR
(
"cwd"
,
_srs_config
->
cwd
())
<<
JFIELD_CONT
<<
JFIELD_STR
(
"file"
,
_srs_config
->
get_log_file
())
<<
JOBJECT_END
<<
JOBJECT_END
;
// HTTP PUT
srs_trace
(
"http api PUT logs, req is: %s"
,
req
->
body
().
c_str
());
return
res_json
(
skt
,
req
,
ss
.
str
());
SrsJsonAny
*
json
=
SrsJsonAny
::
loads
(
req
->
body_raw
());
SrsAutoFree
(
SrsJsonAny
,
json
);
if
(
!
json
)
{
return
response_error
(
skt
,
req
,
ERROR_HTTP_API_LOGS
,
"invalid PUT json"
);
}
else
if
(
!
json
->
is_object
())
{
return
response_error
(
skt
,
req
,
ERROR_HTTP_API_LOGS
,
"invalid PUT json logs params"
);
}
SrsJsonObject
*
o
=
json
->
to_object
();
SrsJsonAny
*
prop
=
NULL
;
if
((
prop
=
o
->
ensure_property_string
(
"file"
))
!=
NULL
&&
_srs_config
->
set_log_file
(
prop
->
to_str
()))
{
if
((
ret
=
_srs_config
->
force_reload_log_file
())
!=
ERROR_SUCCESS
)
{
return
response_error
(
skt
,
req
,
ret
,
"reload log file failed"
);
}
srs_warn
(
"http api reload log file to %s"
,
prop
->
to_str
().
c_str
());
}
if
((
prop
=
o
->
ensure_property_string
(
"tank"
))
!=
NULL
&&
_srs_config
->
set_log_tank
(
prop
->
to_str
()))
{
if
((
ret
=
_srs_config
->
force_reload_log_tank
())
!=
ERROR_SUCCESS
)
{
return
response_error
(
skt
,
req
,
ret
,
"reload log tank failed"
);
}
srs_warn
(
"http api reload log tank to %s"
,
prop
->
to_str
().
c_str
());
}
if
((
prop
=
o
->
ensure_property_string
(
"level"
))
!=
NULL
&&
_srs_config
->
set_log_level
(
prop
->
to_str
()))
{
if
((
ret
=
_srs_config
->
force_reload_log_level
())
!=
ERROR_SUCCESS
)
{
return
response_error
(
skt
,
req
,
ret
,
"reload log level failed"
);
}
srs_warn
(
"http api reload log level to %s"
,
prop
->
to_str
().
c_str
());
}
return
response_error
(
skt
,
req
,
ret
,
"PUT logs success."
);
}
SrsApiVersion
::
SrsApiVersion
()
...
...
trunk/src/app/srs_app_json.cpp
查看文件 @
3064e5e
...
...
@@ -306,6 +306,10 @@ SrsJsonArray* SrsJsonAny::array()
#ifdef SRS_JSON_USE_NXJSON
SrsJsonAny
*
srs_json_parse_tree_nx_json
(
const
nx_json
*
node
)
{
if
(
!
node
)
{
return
NULL
;
}
switch
(
node
->
type
)
{
case
NX_JSON_NULL
:
return
SrsJsonAny
::
null
();
...
...
@@ -338,6 +342,7 @@ SrsJsonAny* srs_json_parse_tree_nx_json(const nx_json* node)
return
arr
;
}
}
return
NULL
;
}
...
...
@@ -352,8 +357,13 @@ SrsJsonAny* SrsJsonAny::loads(char* str)
}
const
nx_json
*
o
=
nx_json_parse
(
str
,
0
);
SrsJsonAny
*
json
=
srs_json_parse_tree_nx_json
(
o
);
nx_json_free
(
o
);
if
(
o
)
{
nx_json_free
(
o
);
}
return
json
;
}
#endif
...
...
@@ -529,7 +539,7 @@ extern "C" {
// redefine NX_JSON_REPORT_ERROR to use custom error reporting
#ifndef NX_JSON_REPORT_ERROR
#define NX_JSON_REPORT_ERROR(msg, p) srs_
error("NXJSON PARSE ERROR (%d): " msg " at %s\n
", __LINE__, p)
#define NX_JSON_REPORT_ERROR(msg, p) srs_
warn("NXJSON PARSE ERROR (%d): " msg " at %s
", __LINE__, p)
#endif
#define IS_WHITESPACE(c) ((unsigned char)(c)<=(unsigned char)' ')
...
...
trunk/src/core/srs_core.hpp
查看文件 @
3064e5e
...
...
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// current release version
#define VERSION_MAJOR "0"
#define VERSION_MINOR "9"
#define VERSION_REVISION "10
3
"
#define VERSION_REVISION "10
4
"
#define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION
// server info.
#define RTMP_SIG_SRS_KEY "srs"
...
...
trunk/src/kernel/srs_kernel_error.hpp
查看文件 @
3064e5e
...
...
@@ -183,6 +183,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define ERROR_HTTP_HANDLER_INVALID 804
#define ERROR_HTTP_OPEN_FILE 805
#define ERROR_HTTP_READ_FILE 806
#define ERROR_HTTP_API_LOGS 807
// system control message,
// not an error, but special control logic.
...
...
请
注册
或
登录
后发表评论