gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnunet-nim] branch master updated: connection to cadet ser


From: gnunet
Subject: [GNUnet-SVN] [gnunet-nim] branch master updated: connection to cadet service successful
Date: Sat, 28 Jul 2018 02:26:22 +0200

This is an automated email from the git hooks/post-receive script.

lurchi pushed a commit to branch master
in repository gnunet-nim.

The following commit(s) were added to refs/heads/master by this push:
     new e8c2962  connection to cadet service successful
e8c2962 is described below

commit e8c2962e6005d1ef08c4ff1e1faf32c3f3b89887
Author: lurchi <address@hidden>
AuthorDate: Sat Jul 28 02:26:01 2018 +0200

    connection to cadet service successful
---
 asynccadet.nim         | 11 +++++++----
 gnunet_application.nim |  4 +++-
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/asynccadet.nim b/asynccadet.nim
index 6e12712..3cffa40 100644
--- a/asynccadet.nim
+++ b/asynccadet.nim
@@ -48,8 +48,11 @@ proc channelMessageCheckCb(cls: pointer,
   result = GNUNET_OK
 
 proc cadetConnectCb(cls: pointer) {.cdecl.} =
-  let event = cast[AsyncEvent](cls)
-  event.trigger()
+  let app = cast[ptr GnunetApplication](cls)
+  echo "cadetConnectCb"
+  var event: AsyncEvent
+  if app.connectEvents.take("cadet", event):
+    event.trigger()
 
 proc messageHandlers(): array[2, GNUNET_MQ_MessageHandler] =
   result = [
@@ -79,8 +82,8 @@ proc sendMessage*(channel: CadetChannel, payload: seq[byte]) =
 
 proc connectCadet*(app: ref GnunetApplication): Future[CadetHandle] =
   let future = newFuture[CadetHandle]("connectCadet")
-  var event = newAsyncEvent()
-  discard GNUNET_SCHEDULER_add_now(cadetConnectCb, addr event)
+  let event = app.connectEvents.mgetOrPut("cadet", newAsyncEvent())
+  discard GNUNET_SCHEDULER_add_now(cadetConnectCb, addr app[])
   proc eventCb(fd: AsyncFd): bool =
     debug("eventCb")
     let cadetHandle = CadetHandle(handle: 
GNUNET_CADET_connect(app.configHandle),
diff --git a/gnunet_application.nim b/gnunet_application.nim
index 8612669..fd5420a 100644
--- a/gnunet_application.nim
+++ b/gnunet_application.nim
@@ -11,6 +11,7 @@ type
     schedulerDriver: GNUNET_SCHEDULER_Driver
     schedulerHandle: ptr GNUNET_SCHEDULER_Handle
     configHandle*: ptr GNUNET_CONFIGURATION_Handle
+    connectEvents*: Table[string, AsyncEvent]
 
 proc schedulerAdd(cls: pointer,
                   task: ptr GNUNET_SCHEDULER_Task,
@@ -66,6 +67,7 @@ proc initGnunetApplication*(configFile: string): ref 
GnunetApplication =
                                                 set_wakeup: schedulerSetWakeup)
   app.schedulerHandle = GNUNET_SCHEDULER_driver_init(addr app.schedulerDriver)
   app.configHandle = GNUNET_CONFIGURATION_create()
+  app.connectEvents = initTable[string, AsyncEvent]()
   assert(GNUNET_SYSERR != GNUNET_CONFIGURATION_load(app.configHandle, 
configFile))
   return app
 
@@ -82,7 +84,7 @@ proc microsecondsUntilTimeout*(app: ref GnunetApplication): 
int =
   if app.timeoutUs < now.abs_value_us:
     debug("app.timeoutUs = ", app.timeoutUs, ", now = ", now.abs_value_us)
     return 0
-  elif app.timeoutUs == 0xff_ff_ff_ff_ff_ff_ff_ff'u64:
+  elif app.timeoutUs == 0xff_ff_ff_ff_ff_ff_ff_ff'u64: # high(uint64) not 
implemented
     return -1
   return int(min(app.timeoutUs - now.abs_value_us, uint64(high(cint))))
 

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]