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
2015-08-28 13:17:46 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
66ffcad635ab706ac9804b1415c49913a14dedf6
66ffcad6
1 parent
f1676163
for #319, always allow raw query.
显示空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
25 行增加
和
46 行删除
trunk/conf/full.conf
trunk/src/app/srs_app_config.cpp
trunk/src/app/srs_app_http_api.cpp
trunk/conf/full.conf
查看文件 @
66ffcad
trunk/src/app/srs_app_config.cpp
查看文件 @
66ffcad
...
...
@@ -1806,38 +1806,16 @@ int SrsConfig::raw_to_json(SrsAmf0Object* obj)
SrsAmf0Object
*
sobj
=
SrsAmf0Any
::
object
();
obj
->
set
(
"http_api"
,
sobj
);
for
(
int
i
=
0
;
i
<
(
int
)
root
->
directives
.
size
();
i
++
)
{
SrsConfDirective
*
dir
=
root
->
directives
.
at
(
i
);
if
(
dir
->
name
!=
"http_api"
)
{
continue
;
}
sobj
->
set
(
"enabled"
,
SrsAmf0Any
::
boolean
(
get_http_api_enabled
()));
sobj
->
set
(
"listen"
,
SrsAmf0Any
::
str
(
get_http_api_listen
().
c_str
()));
sobj
->
set
(
"crossdomain"
,
SrsAmf0Any
::
boolean
(
get_http_api_crossdomain
()));
for
(
int
j
=
0
;
j
<
(
int
)
dir
->
directives
.
size
();
j
++
)
{
SrsConfDirective
*
sdir
=
dir
->
directives
.
at
(
j
);
if
(
sdir
->
name
==
"enabled"
)
{
sobj
->
set
(
sdir
->
name
,
sdir
->
dumps_arg0_to_boolean
());
}
else
if
(
sdir
->
name
==
"listen"
)
{
sobj
->
set
(
sdir
->
name
,
sdir
->
dumps_arg0_to_str
());
}
else
if
(
sdir
->
name
==
"crossdomain"
)
{
sobj
->
set
(
sdir
->
name
,
sdir
->
dumps_arg0_to_boolean
());
}
else
if
(
sdir
->
name
==
"raw_api"
)
{
SrsAmf0Object
*
ssobj
=
SrsAmf0Any
::
object
();
sobj
->
set
(
sdir
->
name
,
ssobj
);
sobj
->
set
(
"raw_api"
,
ssobj
);
for
(
int
k
=
0
;
k
<
(
int
)
sdir
->
directives
.
size
();
k
++
)
{
SrsConfDirective
*
ssdir
=
sdir
->
directives
.
at
(
k
);
if
(
ssdir
->
name
==
"enabled"
)
{
ssobj
->
set
(
ssdir
->
name
,
ssdir
->
dumps_arg0_to_boolean
());
}
else
if
(
ssdir
->
name
==
"allow_reload"
)
{
ssobj
->
set
(
ssdir
->
name
,
ssdir
->
dumps_arg0_to_boolean
());
}
else
if
(
ssdir
->
name
==
"allow_query"
)
{
ssobj
->
set
(
ssdir
->
name
,
ssdir
->
dumps_arg0_to_boolean
());
}
}
}
}
}
ssobj
->
set
(
"enabled"
,
SrsAmf0Any
::
boolean
(
get_raw_api
()));
ssobj
->
set
(
"allow_reload"
,
SrsAmf0Any
::
boolean
(
get_raw_api_allow_reload
()));
ssobj
->
set
(
"allow_query"
,
SrsAmf0Any
::
boolean
(
get_raw_api_allow_query
()));
return
ret
;
}
...
...
trunk/src/app/srs_app_http_api.cpp
查看文件 @
66ffcad
...
...
@@ -859,6 +859,24 @@ int SrsGoApiRaw::serve_http(ISrsHttpResponseWriter* w, ISrsHttpMessage* r)
{
int
ret
=
ERROR_SUCCESS
;
std
::
string
rpc
=
r
->
query_get
(
"rpc"
);
// the object to return for request.
SrsAmf0Object
*
obj
=
SrsAmf0Any
::
object
();
SrsAutoFree
(
SrsAmf0Object
,
obj
);
obj
->
set
(
"code"
,
SrsAmf0Any
::
number
(
ERROR_SUCCESS
));
// for rpc=raw, to query the raw api config for http api.
if
(
rpc
==
"raw"
)
{
// query global scope.
if
((
ret
=
_srs_config
->
raw_to_json
(
obj
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"raw api rpc raw failed. ret=%d"
,
ret
);
return
srs_api_response_code
(
w
,
r
,
ret
);
}
return
srs_api_response
(
w
,
r
,
obj
->
to_json
());
}
// whether enabled the HTTP RAW API.
if
(
!
raw_api
)
{
ret
=
ERROR_SYSTEM_CONFIG_RAW_DISABLED
;
...
...
@@ -867,7 +885,6 @@ int SrsGoApiRaw::serve_http(ISrsHttpResponseWriter* w, ISrsHttpMessage* r)
}
// the rpc is required.
std
::
string
rpc
=
r
->
query_get
(
"rpc"
);
if
(
rpc
.
empty
()
||
(
rpc
!=
"reload"
&&
rpc
!=
"query"
&&
rpc
!=
"raw"
))
{
ret
=
ERROR_SYSTEM_CONFIG_RAW
;
srs_error
(
"raw api invalid rpc=%s. ret=%d"
,
rpc
.
c_str
(),
ret
);
...
...
@@ -887,22 +904,6 @@ int SrsGoApiRaw::serve_http(ISrsHttpResponseWriter* w, ISrsHttpMessage* r)
return
srs_api_response_code
(
w
,
r
,
ret
);
}
// the object to return for request.
SrsAmf0Object
*
obj
=
SrsAmf0Any
::
object
();
SrsAutoFree
(
SrsAmf0Object
,
obj
);
obj
->
set
(
"code"
,
SrsAmf0Any
::
number
(
ERROR_SUCCESS
));
// for rpc=raw, to query the raw api config for http api.
if
(
rpc
==
"raw"
)
{
// query global scope.
if
((
ret
=
_srs_config
->
raw_to_json
(
obj
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"raw api rpc raw failed. ret=%d"
,
ret
);
return
srs_api_response_code
(
w
,
r
,
ret
);
}
return
srs_api_response
(
w
,
r
,
obj
->
to_json
());
}
// for rpc=query, to get the configs of server.
// @param scope the scope to query for config, it can be:
// global, the configs belongs to the root, donot includes any sub directives.
...
...
请
注册
或
登录
后发表评论