summary refs log tree commit diff stats
path: root/examples/ssl/extradata.nim
blob: 1e3b89b02168cf216519d56e1ce9347d0137477e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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()