]> git.seodisparate.com - UDPConnection/commitdiff
Minor fixes/refactorings
authorStephen Seo <seo.disparate@gmail.com>
Wed, 27 Nov 2019 11:12:57 +0000 (20:12 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Wed, 27 Nov 2019 11:12:57 +0000 (20:12 +0900)
src/UDPConnection.cpp
src/UDPConnection.h

index b8ddc83770901e0d30d2bdc2d72e930a4900bd32..f82901ea008a1a4481806c39a67afc7c036518f3 100644 (file)
@@ -1879,6 +1879,7 @@ void UDPC_destroy(UDPC_HContext ctx) {
                 delete[] optE.value().v.pk;
             }
         }
+        UDPC_ctx->_contextIdentifier = 0;
         delete UDPC_ctx;
     }
 }
@@ -1977,7 +1978,8 @@ int UDPC_set_accept_new_connections(UDPC_HContext ctx, int isAccepting) {
     if(!c) {
         return 0;
     }
-    return c->isAcceptNewConnections.exchange(isAccepting == 0 ? false : true);
+    return c->isAcceptNewConnections.exchange(isAccepting == 0 ? false : true)
+        ? 1 : 0;
 }
 
 void UDPC_drop_connection(UDPC_HContext ctx, UDPC_ConnectionId connectionId, int dropAllWithAddr) {
@@ -2131,14 +2133,17 @@ int UDPC_set_libsodium_key_easy(UDPC_HContext ctx, unsigned char *sk) {
     return UDPC_set_libsodium_keys(ctx, sk, pk);
 }
 
-void UDPC_unset_libsodium_keys(UDPC_HContext ctx) {
+int UDPC_unset_libsodium_keys(UDPC_HContext ctx) {
     UDPC::Context *c = UDPC::verifyContext(ctx);
     if(!c || !c->flags.test(2)) {
-        return;
+        return 0;
     }
 
     std::lock_guard<std::mutex> lock(c->mutex);
     c->keysSet.store(false);
+    std::memset(c->pk, 0, crypto_sign_PUBLICKEYBYTES);
+    std::memset(c->sk, 0, crypto_sign_SECRETKEYBYTES);
+    return 1;
 }
 
 const char *UDPC_atostr_cid(UDPC_HContext ctx, UDPC_ConnectionId connectionId) {
index b96873e780fb750c6f3beea13a8021e4bba391eb..0257729a6632ee32d8024c9a3766b5f9d693057b 100644 (file)
@@ -190,7 +190,7 @@ int UDPC_set_libsodium_keys(UDPC_HContext ctx, unsigned char *sk, unsigned char
 
 int UDPC_set_libsodium_key_easy(UDPC_HContext ctx, unsigned char *sk);
 
-void UDPC_unset_libsodium_keys(UDPC_HContext ctx);
+int UDPC_unset_libsodium_keys(UDPC_HContext ctx);
 
 const char *UDPC_atostr_cid(UDPC_HContext ctx, UDPC_ConnectionId connectionId);