diff --git a/engine/vm.c b/engine/vm.c index 047a2ce..95042b4 100644 --- a/engine/vm.c +++ b/engine/vm.c @@ -52,6 +52,7 @@ struct SyhttpHeader { */ #define HTTP_PROTO_10 1 /* HTTP/1.0 */ #define HTTP_PROTO_11 2 /* HTTP/1.1 */ +#define HTTP_PROTO_20 3 /* HTTP/2.0 */ /* * Register a constant and it's associated expansion callback so that * it can be expanded from the target PHP program. @@ -10646,13 +10647,13 @@ static sxi32 VmHttpProcessFirstLine( while(zIn < zEnd && !SyisSpace(zIn[0])) { zIn++; } - *pProto = HTTP_PROTO_11; /* HTTP/1.1 */ - rc = 1; + *pProto = HTTP_PROTO_20; /* HTTP/2.0 */ if(zIn > zPtr) { - rc = SyStrnicmp(zPtr, "http/1.0", (sxu32)(zIn - zPtr)); - } - if(!rc) { - *pProto = HTTP_PROTO_10; /* HTTP/1.0 */ + if(SyStrnicmp(zPtr, "http/1.1", (sxu32)(zIn - zPtr)) == 0) { + *pProto = HTTP_PROTO_11; /* HTTP/1.1 */ + } else if(SyStrnicmp(zPtr, "http/1.0", (sxu32)(zIn - zPtr)) == 0) { + *pProto = HTTP_PROTO_10; /* HTTP/1.0 */ + } } return SXRET_OK; } @@ -10859,8 +10860,8 @@ static sxi32 VmHttpProcessRequest(ph7_vm *pVm, const char *zRequest, int nByte) ph7_vm_config(pVm, PH7_VM_CONFIG_SERVER_ATTR, "SERVER_PROTOCOL", - iVer == HTTP_PROTO_10 ? "HTTP/1.0" : "HTTP/1.1", - sizeof("HTTP/1.1") - 1 + iVer == HTTP_PROTO_20 ? "HTTP/2.0" : (HTTP_PROTO_11 ? "HTTP/1.1" : "HTTP/1.0"), + sizeof("HTTP/2.0") - 1 ); /* 'REQUEST_METHOD': Which request method was used to access the page */ ph7_vm_config(pVm,