Some minimal changes
This commit is contained in:
parent
48326bd102
commit
dbca214ef2
@ -94,13 +94,21 @@ bool LicenseServerClient::start_connection(std::string &error) {
|
|||||||
this->network.event_base = event_base_new();
|
this->network.event_base = event_base_new();
|
||||||
this->network.event_read = event_new(this->network.event_base, this->network.file_descriptor, EV_READ | EV_PERSIST, [](int, short e, void* _this) {
|
this->network.event_read = event_new(this->network.event_base, this->network.file_descriptor, EV_READ | EV_PERSIST, [](int, short e, void* _this) {
|
||||||
auto client = reinterpret_cast<LicenseServerClient*>(_this);
|
auto client = reinterpret_cast<LicenseServerClient*>(_this);
|
||||||
auto client_ref = client->shared_from_this(); /* We're not allowed to delete outself while hading data. This will lead to dangling pointers */
|
auto client_ref = client->weak_from_this().lock();
|
||||||
|
if(!client_ref) {
|
||||||
|
logCritical(0, "Network callback for expired client (E011)!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
client->callback_read(e);
|
client->callback_read(e);
|
||||||
client_ref.reset();
|
client_ref.reset();
|
||||||
}, this);
|
}, this);
|
||||||
this->network.event_write = event_new(this->network.event_base, this->network.file_descriptor, EV_WRITE, [](int, short e, void* _this) {
|
this->network.event_write = event_new(this->network.event_base, this->network.file_descriptor, EV_WRITE, [](int, short e, void* _this) {
|
||||||
auto client = reinterpret_cast<LicenseServerClient*>(_this);
|
auto client = reinterpret_cast<LicenseServerClient*>(_this);
|
||||||
auto client_ref = client->shared_from_this(); /* We're not allowed to delete outself while hading data. This will lead to dangling pointers */
|
auto client_ref = client->weak_from_this().lock();
|
||||||
|
if(!client_ref) {
|
||||||
|
logCritical(0, "Network callback for expired client (E012)!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
client->callback_write(e);
|
client->callback_write(e);
|
||||||
client_ref.reset();
|
client_ref.reset();
|
||||||
}, this);
|
}, this);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user