Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
ZLMediaKit
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
张翔宇
ZLMediaKit
Commits
917763c4
Commit
917763c4
authored
5 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复http头重复的bug
parent
c0a69816
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
15 行增加
和
8 行删除
+15
-8
src/Common/Parser.h
+9
-5
src/Http/HttpSession.cpp
+6
-3
没有找到文件。
src/Common/Parser.h
查看文件 @
917763c4
...
...
@@ -16,7 +16,9 @@ namespace mediakit{
string
FindField
(
const
char
*
buf
,
const
char
*
start
,
const
char
*
end
,
int
bufSize
=
0
);
struct
StrCaseCompare
{
bool
operator
()(
const
string
&
__x
,
const
string
&
__y
)
const
{
return
strcasecmp
(
__x
.
data
(),
__y
.
data
())
<
0
;
}
bool
operator
()(
const
string
&
__x
,
const
string
&
__y
)
const
{
return
strcasecmp
(
__x
.
data
(),
__y
.
data
())
<
0
;
}
};
...
...
@@ -25,17 +27,19 @@ class StrCaseMap : public multimap<string, string, StrCaseCompare>{
typedef
multimap
<
string
,
string
,
StrCaseCompare
>
Super
;
StrCaseMap
()
=
default
;
~
StrCaseMap
()
=
default
;
string
&
operator
[](
const
string
&
key
){
auto
it
=
find
(
key
);
template
<
class
K
>
string
&
operator
[](
K
&&
k
){
auto
it
=
find
(
std
::
forward
<
K
>
(
k
));
if
(
it
==
end
()){
it
=
Super
::
emplace
(
key
,
""
);
it
=
Super
::
emplace
(
std
::
forward
<
K
>
(
k
)
,
""
);
}
return
it
->
second
;
}
template
<
class
K
,
class
V
>
void
emplace
(
K
&&
k
,
V
&&
v
)
{
auto
it
=
find
(
k
);
auto
it
=
find
(
std
::
forward
<
K
>
(
k
)
);
if
(
it
!=
end
()){
return
;
}
...
...
This diff is collapsed.
Click to expand it.
src/Http/HttpSession.cpp
查看文件 @
917763c4
...
...
@@ -913,13 +913,16 @@ void HttpSession::responseDelay(const string &Origin,bool bClose,
sendNotFound
(
bClose
);
return
;
}
auto
headerOther
=
makeHttpHeader
(
bClose
,
contentOut
.
size
(),
"text/plain"
);
auto
headerOther
=
makeHttpHeader
(
bClose
,
contentOut
.
size
(),
"text/plain"
);
if
(
!
Origin
.
empty
()){
headerOther
[
"Access-Control-Allow-Origin"
]
=
Origin
;
headerOther
[
"Access-Control-Allow-Credentials"
]
=
"true"
;
}
const_cast
<
KeyValue
&>
(
headerOut
).
insert
(
headerOther
.
begin
(),
headerOther
.
end
());
sendResponse
(
codeOut
.
data
(),
headerOut
,
contentOut
);
for
(
auto
&
pr
:
headerOut
){
//替换掉默认的http头
headerOther
[
pr
.
first
]
=
pr
.
second
;
}
sendResponse
(
codeOut
.
data
(),
headerOther
,
contentOut
);
}
inline
void
HttpSession
::
sendNotFound
(
bool
bClose
)
{
GET_CONFIG
(
string
,
notFound
,
Http
::
kNotFound
);
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论