在使用GoAhead的时候,发现设置多个cookie时只有第一个设置成功,研究了下源码,发现是个bug,有一个不是很优雅的临时解决方案,修改源码如下:
http.c 的第2933行代码如下:
if (wp->responseCookie) {
old = wp->responseCookie;
wp->responseCookie = sfmt("%s %s", wp->responseCookie, cookie);
wfree(old);
wfree(cookie);
} else {
wp->responseCookie = cookie;
}
把它改成:
if (wp->responseCookie) {
old = wp->responseCookie;
wp->responseCookie = sfmt("%s \r\nSet-Cookie: %s", wp->responseCookie, cookie);
wfree(old);
wfree(cookie);
} else {
wp->responseCookie = cookie;
}
主要是改了2935行的代码。
注:这里的版本为goahead-4.0.2