Skip to content

Commit 019083b

Browse files
committed
Removed caching mechanism.
The design is badly though and currently not used by customers. The current design doesn't fully handle management of the cache and is hence half managed with responsibility of the users. A new design will be developed with a fully managed design (in the meantime it would be simpler for users to just manage their caching independently).
1 parent 8e304b2 commit 019083b

File tree

7 files changed

+1
-412
lines changed

7 files changed

+1
-412
lines changed

src/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ AM_CPPFLAGS = -I../ -I$(srcdir)/httpserver/
2020
METASOURCES = AUTO
2121
lib_LTLIBRARIES = libhttpserver.la
2222
libhttpserver_la_SOURCES = string_utilities.cpp webserver.cpp http_utils.cpp http_request.cpp http_response.cpp http_resource.cpp details/comet_manager.cpp details/http_endpoint.cpp
23-
noinst_HEADERS = httpserver/string_utilities.hpp httpserver/details/modded_request.hpp httpserver/details/http_response_ptr.hpp httpserver/details/cache_entry.hpp httpserver/details/comet_manager.hpp gettext.h
23+
noinst_HEADERS = httpserver/string_utilities.hpp httpserver/details/modded_request.hpp httpserver/details/http_response_ptr.hpp httpserver/details/comet_manager.hpp gettext.h
2424
nobase_include_HEADERS = httpserver.hpp httpserver/create_webserver.hpp httpserver/webserver.hpp httpserver/http_utils.hpp httpserver/details/http_endpoint.hpp httpserver/http_request.hpp httpserver/http_response.hpp httpserver/http_resource.hpp httpserver/binders.hpp httpserver/http_response_builder.hpp
2525

2626
AM_CXXFLAGS += -fPIC -Wall

src/http_response.cpp

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ http_response::http_response(const http_response_builder& builder):
5353
keepalive_msg(builder._keepalive_msg),
5454
send_topic(builder._send_topic),
5555
underlying_connection(0x0),
56-
ce(builder._ce),
5756
cycle_callback(builder._cycle_callback),
5857
get_raw_response(this, builder._get_raw_response),
5958
decorate_response(this, builder._decorate_response),
@@ -69,7 +68,6 @@ http_response::http_response(const http_response_builder& builder):
6968

7069
http_response::~http_response()
7170
{
72-
if(ce != 0x0) webserver::unlock_cache_entry(ce);
7371
}
7472

7573
//RESPONSE
@@ -116,10 +114,6 @@ int http_response::enqueue_response_str(
116114
return MHD_queue_response(connection, response_code, response);
117115
}
118116

119-
void http_response::decorate_response_cache(MHD_Response* response)
120-
{
121-
}
122-
123117
int http_response::enqueue_response_basic(
124118
MHD_Connection* connection,
125119
MHD_Response* response
@@ -167,23 +161,6 @@ void http_response::get_raw_response_file(
167161
}
168162
}
169163

170-
void http_response::get_raw_response_cache(
171-
MHD_Response** response,
172-
webserver* ws
173-
)
174-
{
175-
bool valid;
176-
http_response* r;
177-
if(ce == 0x0)
178-
r = ws->get_from_cache(content, &valid, &ce, true, false);
179-
else
180-
webserver::get_response(ce, &r);
181-
r->get_raw_response(response, ws);
182-
r->decorate_response(*response); //It is done here to avoid to search two times for the same element
183-
184-
//TODO: Check if element is not in cache and throw exception
185-
}
186-
187164
namespace details
188165
{
189166

src/httpserver/details/cache_entry.hpp

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

src/httpserver/http_response.hpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ namespace details
4848
{
4949
struct http_response_ptr;
5050
ssize_t cb(void*, uint64_t, char*, size_t);
51-
struct cache_entry;
5251
};
5352

5453
class bad_caching_attempt: public std::exception
@@ -90,7 +89,6 @@ class http_response
9089
keepalive_msg(b.keepalive_msg),
9190
send_topic(b.send_topic),
9291
underlying_connection(b.underlying_connection),
93-
ce(b.ce),
9492
cycle_callback(b.cycle_callback),
9593
get_raw_response(this, b._get_raw_response),
9694
decorate_response(this, b._decorate_response),
@@ -108,7 +106,6 @@ class http_response
108106
response_code(-1),
109107
fp(-1),
110108
underlying_connection(0x0),
111-
ce(0x0),
112109
completed(false),
113110
ws(0x0),
114111
connection_id(0x0)
@@ -234,7 +231,6 @@ class http_response
234231
std::string keepalive_msg;
235232
std::string send_topic;
236233
struct MHD_Connection* underlying_connection;
237-
details::cache_entry* ce;
238234
cycle_callback_ptr cycle_callback;
239235

240236
const get_raw_response_t get_raw_response;
@@ -254,10 +250,8 @@ class http_response
254250
webserver* ws = 0x0);
255251

256252
void get_raw_response_lp_send(MHD_Response** res, webserver* ws = 0x0);
257-
void get_raw_response_cache(MHD_Response** res, webserver* ws = 0x0);
258253
void get_raw_response_deferred(MHD_Response** res, webserver* ws = 0x0);
259254
void decorate_response_str(MHD_Response* res);
260-
void decorate_response_cache(MHD_Response* res);
261255
void decorate_response_deferred(MHD_Response* res);
262256
int enqueue_response_str(MHD_Connection* connection, MHD_Response* res);
263257

src/httpserver/http_response_builder.hpp

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,6 @@ namespace http
4040
class header_comparator;
4141
};
4242

43-
namespace details
44-
{
45-
struct cache_entry;
46-
};
47-
4843
struct byte_string
4944
{
5045
public:
@@ -91,7 +86,6 @@ class http_response_builder
9186
_keepalive_secs(-1),
9287
_keepalive_msg(""),
9388
_send_topic(""),
94-
_ce(0x0),
9589
_get_raw_response(&http_response::get_raw_response_str),
9690
_decorate_response(&http_response::decorate_response_str),
9791
_enqueue_response(&http_response::enqueue_response_str)
@@ -118,7 +112,6 @@ class http_response_builder
118112
_keepalive_secs(-1),
119113
_keepalive_msg(""),
120114
_send_topic(""),
121-
_ce(0x0),
122115
_get_raw_response(&http_response::get_raw_response_str),
123116
_decorate_response(&http_response::decorate_response_str),
124117
_enqueue_response(&http_response::enqueue_response_str)
@@ -140,7 +133,6 @@ class http_response_builder
140133
_keepalive_secs(b._keepalive_secs),
141134
_keepalive_msg(b._keepalive_msg),
142135
_send_topic(b._send_topic),
143-
_ce(b._ce),
144136
_get_raw_response(b._get_raw_response),
145137
_decorate_response(b._decorate_response),
146138
_enqueue_response(b._enqueue_response)
@@ -162,7 +154,6 @@ class http_response_builder
162154
_keepalive_secs = b._keepalive_secs;
163155
_keepalive_msg = b._keepalive_msg;
164156
_send_topic = b._send_topic;
165-
_ce = b._ce;
166157
_get_raw_response = b._get_raw_response;
167158
_decorate_response = b._decorate_response;
168159
_enqueue_response = b._enqueue_response;
@@ -224,13 +215,6 @@ class http_response_builder
224215
return *this;
225216
}
226217

227-
http_response_builder& cache_response()
228-
{
229-
_get_raw_response = &http_response::get_raw_response_cache;
230-
_decorate_response = &http_response::decorate_response_cache;
231-
return *this;
232-
}
233-
234218
http_response_builder& deferred_response(cycle_callback_ptr cycle_callback)
235219
{
236220
_cycle_callback = cycle_callback;
@@ -275,20 +259,11 @@ class http_response_builder
275259
std::string _keepalive_msg;
276260
std::string _send_topic;
277261
cycle_callback_ptr _cycle_callback;
278-
details::cache_entry* _ce;
279262

280263
void (http_response::*_get_raw_response)(MHD_Response**, webserver*);
281264
void (http_response::*_decorate_response)(MHD_Response*);
282265
int (http_response::*_enqueue_response)(MHD_Connection*, MHD_Response*);
283266

284-
http_response_builder& cache_response(details::cache_entry* ce)
285-
{
286-
_ce = ce;
287-
_get_raw_response = &http_response::get_raw_response_cache;
288-
_decorate_response = &http_response::decorate_response_cache;
289-
return *this;
290-
}
291-
292267
friend class http_response;
293268
};
294269

src/httpserver/webserver.hpp

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ struct httpserver_ska;
6161
namespace details {
6262
struct daemon_item;
6363
struct modded_request;
64-
struct cache_entry;
6564
class comet_manager;
6665
}
6766

@@ -121,22 +120,6 @@ class webserver
121120
std::string& message
122121
);
123122

124-
http_response* get_from_cache(const std::string& key, bool* valid,
125-
bool lock = false, bool write = false
126-
);
127-
http_response* get_from_cache(const std::string& key, bool* valid,
128-
details::cache_entry** ce, bool lock = false, bool write = false
129-
);
130-
void lock_cache_element(details::cache_entry* ce, bool write = false);
131-
void unlock_cache_element(details::cache_entry* ce);
132-
details::cache_entry* put_in_cache(const std::string& key, http_response* value,
133-
bool* new_elem, bool lock = false,
134-
bool write = false, int validity = -1
135-
);
136-
void remove_from_cache(const std::string& key);
137-
bool is_valid(const std::string& key);
138-
void clean_cache();
139-
140123
log_access_ptr get_access_logger() const
141124
{
142125
return this->log_access;
@@ -213,9 +196,7 @@ class webserver
213196
std::map<details::http_endpoint, http_resource*> registered_resources;
214197
std::map<std::string, http_resource*> registered_resources_str;
215198

216-
std::map<std::string, details::cache_entry*> response_cache;
217199
int next_to_choose;
218-
pthread_rwlock_t cache_guard;
219200
std::set<http::ip_representation> bans;
220201
std::set<http::ip_representation> allowances;
221202

@@ -276,10 +257,6 @@ class webserver
276257
void **con_cls, int upgrade_socket
277258
);
278259

279-
static void unlock_cache_entry(details::cache_entry*);
280-
static void lock_cache_entry(details::cache_entry*);
281-
static void get_response(details::cache_entry*, http_response** res);
282-
283260
int bodyless_requests_answer(MHD_Connection* connection,
284261
const char* method, const char* version,
285262
struct details::modded_request* mr

0 commit comments

Comments
 (0)