aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Ulrich <christian@ulrich.earth>2020-07-10 18:08:11 +0200
committerChristian Ulrich <christian@ulrich.earth>2020-07-10 18:08:11 +0200
commit17b7bf0168c20e3fe39f8bd6be320a468e638961 (patch)
tree5ad0b84bf6369214d4fdc592112322cc12da2baf
parent3a1416d57727ccc277baad1bb9ec83f690476aaf (diff)
downloadgnunet-nim-17b7bf0168c20e3fe39f8bd6be320a468e638961.tar.gz
gnunet-nim-17b7bf0168c20e3fe39f8bd6be320a468e638961.zip
GNUNET_SCHEDULER_add does not work anymore before first call to GNUNET_SCHEDULER_do_work
-rw-r--r--src/gnunet_nim/cadet.nim19
1 files changed, 4 insertions, 15 deletions
diff --git a/src/gnunet_nim/cadet.nim b/src/gnunet_nim/cadet.nim
index b079f52..64991d7 100644
--- a/src/gnunet_nim/cadet.nim
+++ b/src/gnunet_nim/cadet.nim
@@ -140,18 +140,7 @@ proc disconnect(cadetHandle: ptr CadetHandle) =
140proc shutdownCb(cls: pointer) {.cdecl.} = 140proc shutdownCb(cls: pointer) {.cdecl.} =
141 disconnect(cast[ptr CadetHandle](cls)) 141 disconnect(cast[ptr CadetHandle](cls))
142 142
143proc cadetConnectCb(cls: pointer) {.cdecl.} = 143proc initCadet*(app: ref GnunetApplication): ref CadetHandle =
144 let app = cast[ptr GnunetApplication](cls) 144 new(result, proc(handle: ref CadetHandle) = disconnect(addr handle[]))
145 var future: FutureBase 145 result.handle = GNUNET_CADET_connect(app.configHandle)
146 if app.connectFutures.take("cadet", future): 146 result.shutdownTask = GNUNET_SCHEDULER_add_shutdown(shutdownCb, addr result[])
147 var cadetHandle: ref CadetHandle
148 new(cadetHandle, proc(handle: ref CadetHandle) = disconnect(addr handle[]))
149 cadetHandle.handle = GNUNET_CADET_connect(app.configHandle)
150 cadetHandle.shutdownTask = GNUNET_SCHEDULER_add_shutdown(shutdownCb,
151 addr cadetHandle[])
152 Future[ref CadetHandle](future).complete(cadetHandle)
153
154proc initCadet*(app: ref GnunetApplication): Future[ref CadetHandle] =
155 result = newFuture[ref CadetHandle]("connectCadet")
156 app.connectFutures.add("cadet", result)
157 discard GNUNET_SCHEDULER_add_now(cadetConnectCb, addr app[])