summary refs log tree commit diff stats
path: root/examples/ssl/extradata.nim
diff options
context:
space:
mode:
Diffstat (limited to 'examples/ssl/extradata.nim')
-rw-r--r--examples/ssl/extradata.nim26
1 files changed, 26 insertions, 0 deletions
diff --git a/examples/ssl/extradata.nim b/examples/ssl/extradata.nim
new file mode 100644
index 000000000..1e3b89b02
--- /dev/null
+++ b/examples/ssl/extradata.nim
@@ -0,0 +1,26 @@
+# Stores extra data inside the SSL context.
+import net
+
+let ctx = newContext()
+
+# Our unique index for storing foos
+let fooIndex = ctx.getExtraDataIndex()
+# And another unique index for storing foos
+let barIndex = ctx.getExtraDataIndex()
+echo "got indexes ", fooIndex, " ", barIndex
+
+try:
+  discard ctx.getExtraData(fooIndex)
+  assert false
+except IndexError:
+  echo("Success")
+
+type
+  FooRef = ref object of RootRef
+    foo: int
+
+let foo = FooRef(foo: 5)
+ctx.setExtraData(fooIndex, foo)
+doAssert ctx.getExtraData(fooIndex).FooRef == foo
+
+ctx.destroyContext()