Skip to content

Commit 0e20e1b

Browse files
committed
Refactor code, categorize source code files. Add HTTP/2 protocol support
1 parent f5d6212 commit 0e20e1b

File tree

101 files changed

+12901
-4319
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+12901
-4319
lines changed

README.md

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
httpserver
2-
==========
1+
# httpserver
32

43
Http server is written on C++14 language.
54

@@ -11,20 +10,19 @@ by using the parameter `server_module`.
1110

1211
Sample application code: https://github.com/awwit/httpserverapp
1312

14-
Features
15-
--------
13+
## Features
1614

1715
This http server support:
1816

1917
* HTTP v1.1
2018
* HTTPS (TLS)
19+
* HTTP v2 (*need optimize cleanup of streams*)
2120
* Keep-Alive
2221
* WebSocket
23-
* Get-Parted requests
2422
* X-Sendfile (header)
23+
* Get-Parted requests
2524

26-
Dependencies
27-
------------
25+
## Dependencies
2826

2927
Common:
3028

@@ -34,8 +32,7 @@ Linux: `dl`, `pthread`, `rt`, `gnutls`
3432

3533
Windows: `ws2_32.lib`, `libgnutls.dll.a`
3634

37-
Build
38-
-----
35+
## Build
3936

4037
Linux:
4138

@@ -57,8 +54,7 @@ cd build
5754
devenv ./../projects/msvs/httpserver.sln /build
5855
```
5956

60-
Server start
61-
------------
57+
## Server start
6258

6359
```sh
6460
./httpserver --start
@@ -70,14 +66,12 @@ Or input a parameter `--config-path=<path>` to set the directory with configurat
7066
Use the parameter `--server-name=<name>` to define the name of web-server's instance.
7167
Instances can be used to run web-servers with different settings.
7268

73-
Server configuration
74-
--------------------
69+
## Server configuration
7570

7671
Server (and its applications) setting is made using config-files.
7772
Examples of settings are located in the folder [samples](samples/).
7873

79-
License
80-
=======
74+
# License
8175

8276
The source codes are licensed under the
8377
[AGPL](http://www.gnu.org/licenses/agpl.html),

projects/qt-creator/httpserver.qbs

Lines changed: 91 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,100 @@
11
import qbs
22

33
Project {
4-
CppApplication {
5-
name: "httpserver"
4+
CppApplication {
5+
name: "httpserver"
66

7-
cpp.cxxLanguageVersion: "c++14"
7+
cpp.cxxLanguageVersion: "c++14"
88

9-
cpp.defines: qbs.buildVariant == "debug" ? base : base.concat(["DEBUG"])
9+
cpp.defines: qbs.buildVariant == "debug" ? ["DEBUG"] : original
1010

11-
cpp.dynamicLibraries: base.concat(["gnutls"])
11+
cpp.dynamicLibraries: ["gnutls"]
1212

13-
Properties {
14-
condition: qbs.targetOS.contains("linux")
15-
cpp.defines: outer.concat(["POSIX"])
16-
cpp.dynamicLibraries: outer.concat(["dl", "pthread", "rt"])
17-
}
13+
Properties {
14+
condition: qbs.targetOS.contains("linux")
15+
cpp.platformDefines: outer.concat(["POSIX"])
16+
cpp.dynamicLibraries: outer.concat(["dl", "pthread", "rt"])
17+
}
18+
Properties {
19+
condition: qbs.targetOS.contains("windows")
20+
cpp.platformDefines: outer.concat(["WIN32", "NOMINMAX"])
21+
}
1822

19-
Properties {
20-
condition: qbs.targetOS.contains("windows")
21-
cpp.defines: outer.concat(["WIN32", "NOMINMAX"])
22-
}
23-
24-
files: [
25-
"../../src/ConfigParser.cpp",
26-
"../../src/ConfigParser.h",
27-
"../../src/DataVariantAbstract.h",
28-
"../../src/DataVariantFormUrlencoded.cpp",
29-
"../../src/DataVariantFormUrlencoded.h",
30-
"../../src/DataVariantMultipartFormData.cpp",
31-
"../../src/DataVariantMultipartFormData.h",
32-
"../../src/DataVariantTextPlain.cpp",
33-
"../../src/DataVariantTextPlain.h",
34-
"../../src/Event.cpp",
35-
"../../src/Event.h",
36-
"../../src/FileIncoming.cpp",
37-
"../../src/FileIncoming.h",
38-
"../../src/GlobalMutex.cpp",
39-
"../../src/GlobalMutex.h",
40-
"../../src/Main.cpp",
41-
"../../src/Main.h",
42-
"../../src/Module.cpp",
43-
"../../src/Module.h",
44-
"../../src/RawData.h",
45-
"../../src/RequestParameters.cpp",
46-
"../../src/RequestParameters.h",
47-
"../../src/Server.cpp",
48-
"../../src/Server.h",
49-
"../../src/ServerApplicationDefaultSettings.h",
50-
"../../src/ServerApplicationSettings.h",
51-
"../../src/ServerApplicationsTree.cpp",
52-
"../../src/ServerApplicationsTree.h",
53-
"../../src/ServerRequest.h",
54-
"../../src/ServerResponse.h",
55-
"../../src/ServerStructuresArguments.h",
56-
"../../src/SharedMemory.cpp",
57-
"../../src/SharedMemory.h",
58-
"../../src/SignalHandlers.cpp",
59-
"../../src/SignalHandlers.h",
60-
"../../src/Socket.cpp",
61-
"../../src/Socket.h",
62-
"../../src/SocketAdapter.cpp",
63-
"../../src/SocketAdapter.h",
64-
"../../src/SocketAdapterDefault.cpp",
65-
"../../src/SocketAdapterDefault.h",
66-
"../../src/SocketAdapterTls.cpp",
67-
"../../src/SocketAdapterTls.h",
68-
"../../src/SocketList.cpp",
69-
"../../src/SocketList.h",
70-
"../../src/System.cpp",
71-
"../../src/System.h",
72-
"../../src/Utils.cpp",
73-
"../../src/Utils.h",
74-
]
75-
}
23+
files: [
24+
"../../src/transfer/AppRequest.h",
25+
"../../src/transfer/AppResponse.h",
26+
"../../src/server/ServerControls.cpp",
27+
"../../src/server/ServerControls.h",
28+
"../../src/server/ServerSettings.cpp",
29+
"../../src/server/ServerSettings.h",
30+
"../../src/server/SocketsQueue.h",
31+
"../../src/server/config/ConfigParser.cpp",
32+
"../../src/server/config/ConfigParser.h",
33+
"../../src/server/data-variant/Abstract.cpp",
34+
"../../src/server/data-variant/Abstract.h",
35+
"../../src/server/data-variant/FormUrlencoded.cpp",
36+
"../../src/server/data-variant/FormUrlencoded.h",
37+
"../../src/server/data-variant/MultipartFormData.cpp",
38+
"../../src/server/data-variant/MultipartFormData.h",
39+
"../../src/server/data-variant/TextPlain.cpp",
40+
"../../src/server/data-variant/TextPlain.h",
41+
"../../src/server/protocol/ServerHttp2Protocol.cpp",
42+
"../../src/server/protocol/ServerHttp2Protocol.h",
43+
"../../src/server/protocol/ServerHttp2Stream.cpp",
44+
"../../src/server/protocol/ServerHttp2Stream.h",
45+
"../../src/server/protocol/ServerWebSocket.cpp",
46+
"../../src/server/protocol/ServerWebSocket.h",
47+
"../../src/socket/Adapter.cpp",
48+
"../../src/socket/Adapter.h",
49+
"../../src/socket/AdapterDefault.cpp",
50+
"../../src/socket/AdapterDefault.h",
51+
"../../src/socket/AdapterTls.cpp",
52+
"../../src/socket/AdapterTls.h",
53+
"../../src/socket/List.cpp",
54+
"../../src/socket/List.h",
55+
"../../src/system/Cache.h",
56+
"../../src/utils/Event.cpp",
57+
"../../src/utils/Event.h",
58+
"../../src/transfer/FileIncoming.cpp",
59+
"../../src/transfer/FileIncoming.h",
60+
"../../src/system/GlobalMutex.cpp",
61+
"../../src/system/GlobalMutex.h",
62+
"../../src/transfer/http2/HPack.cpp",
63+
"../../src/transfer/http2/HPack.h",
64+
"../../src/transfer/http2/Http2.cpp",
65+
"../../src/transfer/http2/Http2.h",
66+
"../../src/transfer/HttpStatusCode.h",
67+
"../../src/Main.cpp",
68+
"../../src/Main.h",
69+
"../../src/system/Module.cpp",
70+
"../../src/system/Module.h",
71+
"../../src/transfer/ProtocolVariant.h",
72+
"../../src/server/Request.cpp",
73+
"../../src/server/Request.h",
74+
"../../src/server/Server.cpp",
75+
"../../src/server/Server.h",
76+
"../../src/server/ServerApplicationSettings.h",
77+
"../../src/server/ServerApplicationsTree.cpp",
78+
"../../src/server/ServerApplicationsTree.h",
79+
"../../src/server/protocol/ServerHttp1.cpp",
80+
"../../src/server/protocol/ServerHttp1.h",
81+
"../../src/server/protocol/ServerHttp2.cpp",
82+
"../../src/server/protocol/ServerHttp2.h",
83+
"../../src/server/protocol/ServerProtocol.cpp",
84+
"../../src/server/protocol/ServerProtocol.h",
85+
"../../src/server/protocol/extensions/Sendfile.cpp",
86+
"../../src/server/protocol/extensions/Sendfile.h",
87+
"../../src/server/ServerStructuresArguments.h",
88+
"../../src/system/SharedMemory.cpp",
89+
"../../src/system/SharedMemory.h",
90+
"../../src/SignalHandlers.cpp",
91+
"../../src/SignalHandlers.h",
92+
"../../src/socket/Socket.cpp",
93+
"../../src/socket/Socket.h",
94+
"../../src/system/System.cpp",
95+
"../../src/system/System.h",
96+
"../../src/utils/Utils.cpp",
97+
"../../src/utils/Utils.h",
98+
]
99+
}
76100
}

src/DataVariantAbstract.h

Lines changed: 0 additions & 40 deletions
This file was deleted.

src/DataVariantFormUrlencoded.cpp

Lines changed: 0 additions & 62 deletions
This file was deleted.

src/DataVariantFormUrlencoded.h

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)