diff --git a/.github/actions/install_nim/action.yml b/.github/actions/install_nim/action.yml new file mode 100644 index 0000000..55a0fc8 --- /dev/null +++ b/.github/actions/install_nim/action.yml @@ -0,0 +1,133 @@ +name: Install Nim +inputs: + os: + description: "Operating system to build for" + required: true + cpu: + description: "CPU to build for" + default: "amd64" + nim_ref: + description: "Nim version" + default: "version-1-6" + shell: + description: "Shell to run commands in" + default: "bash --noprofile --norc -e -o pipefail" + +runs: + using: "composite" + steps: + - name: Install build dependencies (Linux i386) + shell: ${{ inputs.shell }} + if: inputs.os == 'Linux' && inputs.cpu == 'i386' + run: | + sudo dpkg --add-architecture i386 + sudo apt-get update -qq + sudo DEBIAN_FRONTEND='noninteractive' apt-get install \ + --no-install-recommends -yq gcc-multilib g++-multilib \ + libssl-dev:i386 + mkdir -p external/bin + cat << EOF > external/bin/gcc + #!/bin/bash + exec $(which gcc) -m32 "\$@" + EOF + cat << EOF > external/bin/g++ + #!/bin/bash + exec $(which g++) -m32 "\$@" + EOF + chmod 755 external/bin/gcc external/bin/g++ + echo '${{ github.workspace }}/external/bin' >> $GITHUB_PATH + + - name: MSYS2 (Windows i386) + if: inputs.os == 'Windows' && inputs.cpu == 'i386' + uses: msys2/setup-msys2@v2 + with: + path-type: inherit + msystem: MINGW32 + install: >- + base-devel + git + mingw-w64-i686-toolchain + + - name: MSYS2 (Windows amd64) + if: inputs.os == 'Windows' && inputs.cpu == 'amd64' + uses: msys2/setup-msys2@v2 + with: + path-type: inherit + install: >- + base-devel + git + mingw-w64-x86_64-toolchain + + - name: Restore Nim DLLs dependencies (Windows) from cache + if: inputs.os == 'Windows' + id: windows-dlls-cache + uses: actions/cache@v4 + with: + path: external/dlls + key: 'dlls' + + - name: Install DLL dependencies (Windows) + shell: ${{ inputs.shell }} + if: > + steps.windows-dlls-cache.outputs.cache-hit != 'true' && + inputs.os == 'Windows' + run: | + mkdir external + curl -L "https://nim-lang.org/download/windeps.zip" -o external/windeps.zip + 7z x external/windeps.zip -oexternal/dlls + + - name: Path to cached dependencies (Windows) + shell: ${{ inputs.shell }} + if: > + inputs.os == 'Windows' + run: | + echo '${{ github.workspace }}'"/external/dlls" >> $GITHUB_PATH + + - name: Derive environment variables + shell: ${{ inputs.shell }} + run: | + if [[ '${{ inputs.cpu }}' == 'amd64' ]]; then + PLATFORM=x64 + elif [[ '${{ inputs.cpu }}' == 'arm64' ]]; then + PLATFORM=arm64 + else + PLATFORM=x86 + fi + echo "PLATFORM=$PLATFORM" >> $GITHUB_ENV + + ncpu= + MAKE_CMD="make" + case '${{ inputs.os }}' in + 'Linux') + ncpu=$(nproc) + ;; + 'macOS') + ncpu=$(sysctl -n hw.ncpu) + ;; + 'Windows') + ncpu=$NUMBER_OF_PROCESSORS + MAKE_CMD="mingw32-make" + ;; + esac + [[ -z "$ncpu" || $ncpu -le 0 ]] && ncpu=1 + echo "ncpu=$ncpu" >> $GITHUB_ENV + echo "MAKE_CMD=${MAKE_CMD}" >> $GITHUB_ENV + echo '${{ github.workspace }}/nim/bin' >> $GITHUB_PATH + + - name: Restore Nim from cache + id: nim-cache + uses: actions/cache@v4 + with: + path: '${{ github.workspace }}/nim' + key: ${{ inputs.os }}-${{ inputs.cpu }}-nim-${{ inputs.nim_ref }}-cache-${{ env.cache_nonce }} + + - name: Build Nim and Nimble + shell: ${{ inputs.shell }} + if: ${{ steps.nim-cache.outputs.cache-hit != 'true' }} + run: | + # We don't want partial matches of the cache restored + rm -rf nim + curl -O -L -s -S https://raw.githubusercontent.com/status-im/nimbus-build-system/master/scripts/build_nim.sh + env MAKE="${MAKE_CMD} -j${ncpu}" ARCH_OVERRIDE=${PLATFORM} NIM_COMMIT=${{ inputs.nim_ref }} \ + QUICK_AND_DIRTY_COMPILER=1 QUICK_AND_DIRTY_NIMBLE=1 CC=gcc \ + bash build_nim.sh nim csources dist/nimble NimBinaries diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2e762c1..532c0ad 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,14 +1,116 @@ -name: CI +name: Continuous Integration + on: push: branches: - master pull_request: + merge_group: workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + jobs: - build: - uses: status-im/nimbus-common-workflow/.github/workflows/common.yml@main - with: - test-command: | - nimble test --styleCheck:off \ No newline at end of file + test: + timeout-minutes: 90 + strategy: + fail-fast: false + matrix: + platform: + - os: linux + cpu: amd64 + - os: linux + cpu: i386 + - os: linux-gcc-14 + cpu: amd64 + - os: macos + cpu: amd64 + - os: macos-14 + cpu: arm64 + - os: windows + cpu: amd64 + nim: + - ref: version-1-6 + memory_management: refc + - ref: version-2-0 + memory_management: refc + include: + - platform: + os: linux + builder: ubuntu-22.04 + shell: bash + - platform: + os: linux-gcc-14 + builder: ubuntu-24.04 + shell: bash + - platform: + os: macos + builder: macos-13 + shell: bash + - platform: + os: macos-14 + builder: macos-14 + shell: bash + - platform: + os: windows + builder: windows-2022 + shell: msys2 {0} + + defaults: + run: + shell: ${{ matrix.shell }} + + name: '${{ matrix.platform.os }}-${{ matrix.platform.cpu }} (Nim ${{ matrix.nim.ref }})' + runs-on: ${{ matrix.builder }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + + - name: Setup Nim + uses: "./.github/actions/install_nim" + with: + os: ${{ matrix.platform.os }} + cpu: ${{ matrix.platform.cpu }} + shell: ${{ matrix.shell }} + nim_ref: ${{ matrix.nim.ref }} + + - name: Restore deps from cache + id: deps-cache + uses: actions/cache@v3 + with: + path: nimbledeps + # Using nim.ref as a simple way to differentiate between nimble using the "pkgs" or "pkgs2" directories. + # The change happened on Nimble v0.14.0. Also forcing the deps to be reinstalled on each os and cpu. + key: nimbledeps-${{ matrix.nim.ref }}-${{ matrix.builder }}-${{ matrix.platform.cpu }}-${{ hashFiles('.pinned') }} # hashFiles returns a different value on windows + + - name: Install deps + if: ${{ steps.deps-cache.outputs.cache-hit != 'true' }} + run: | + nimble install + + - name: Use gcc 14 + if : ${{ matrix.platform.os == 'linux-gcc-14'}} + run: | + # Add GCC-14 to alternatives + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 14 + + # Set GCC-14 as the default + sudo update-alternatives --set gcc /usr/bin/gcc-14 + + - name: Install deps (windows) + if : ${{ matrix.platform.os == 'windows'}} + run: | + pacman -S --noconfirm base-devel gcc + + - name: Run tests + run: | + nim --version + nimble --version + gcc --version + + NIMFLAGS="${NIMFLAGS} --mm:${{ matrix.nim.memory_management }}" + nimble test --styleCheck:off --verbose --debug diff --git a/.gitignore b/.gitignore index 7a9a46d..fad9ae0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,16 +1,2 @@ -* -!*/ -!*.* - -# ignore all cmake build files, except version.h -build/* -!build/lib/ -build/lib/* -!build/lib/includes/ -build/lib/includes/* -!build/lib/includes/ngtcp2/ -build/lib/includes/ngtcp2/* -!build/lib/includes/ngtcp2/version.h - -!LICENSE-MIT -!LICENSE-APACHEv2 +!libs/ +!libs/* \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index c7202c5..087d3cf 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ -[submodule "sources"] - path = sources - url = https://github.com/ngtcp2/ngtcp2.git +[submodule "libs/ngtcp2"] + path = libs/ngtcp2 + url = https://github.com/ngtcp2/ngtcp2 +[submodule "libs/picotls"] + path = libs/picotls + url = https://github.com/h2o/picotls diff --git a/build.sh b/build.sh index 13d0cc3..0dc15a6 100755 --- a/build.sh +++ b/build.sh @@ -1,35 +1,39 @@ #!/bin/bash root=$(dirname "$0") +sources=${root}/libs -# install nimterop, if not already installed -if ! [ -x "$(command -v toast)" ]; then - nimble install -y nimterop@2532ce0 -fi - -# run cmake on ngtcp2 sources -cmake -S "${root}/sources" -B "${root}/build" - -# add prelude -cat "${root}/prelude.nim" > "${root}/ngtcp2.nim" - -# dividing line -echo >> "${root}/ngtcp2.nim" +rm -f ngtcp2.nim # assemble list of C files to be compiled -for file in `ls "${root}/sources/lib"/*.c`; do - compile="${compile} --compile=${file}" +toCompile=( + "${sources}/picotls/picotlsvs/picotls/wintimeofday.c" + "${sources}/picotls/lib/pembase64.c" + "${sources}/picotls/lib/hpke.c" + "${sources}/picotls/lib/picotls.c" + "${sources}/picotls/lib/openssl.c" +) + +for file in `ls "${sources}/ngtcp2/crypto"/*.c`; do + toCompile+=("$file") +done +for file in `ls "${sources}/ngtcp2/crypto/picotls"/*.c`; do + toCompile+=("$file") +done +for file in `ls "${sources}/ngtcp2/lib"/*.c`; do + toCompile+=("$file") +done +for file in `ls "${root}/build/lib"/*.c`; do + toCompile+=("$file") done -# generate nim wrapper with nimterop -toast \ - $compile \ - --pnim \ - --preprocess \ - --noHeader \ - --defines=NGTCP2_STATICLIB \ - --replace=sockaddr=SockAddr,SockAddr_storage=Sockaddr_storage,socklen_t=SockLen \ - --includeDirs="${root}/sources/lib/includes" \ - --includeDirs="${root}/build/lib/includes" \ - "${root}/sources/lib/includes/ngtcp2/ngtcp2.h" >> "${root}/ngtcp2.nim" +nim c --maxLoopIterationsVM:100000000 generate_ngtcp2.nim -sed -i 's/\bpassC\b/passc/g' ngtcp2.nim +# add prelude +cat "${root}/prelude.nim" > ngtcp2.nim + +for file in "${toCompile[@]}"; do + echo "{.compile: \"$file\".}" >> ngtcp2.nim +done + +cat tmp_ngtcp2.nim >> ngtcp2.nim +rm -f tmp_ngtcp2.nim diff --git a/build/lib/cred_buffer.c b/build/lib/cred_buffer.c new file mode 100644 index 0000000..2fe3243 --- /dev/null +++ b/build/lib/cred_buffer.c @@ -0,0 +1,140 @@ +#include +#include +#include +#include + +#include "utils/cred_buffer.h" + +#define MIN(a, b) ((a) < (b) ? (a) : (b)) + +static int cred_buffer_getc(ptls_cred_buffer_t *buf) +{ + return PTLS_CRED_BUFFER_LEFT(buf) > 0 ? buf->base[buf->off++] : -1; +} + +static ssize_t fsize(FILE *fp) +{ + long sz; + + if (fseek(fp, 0, SEEK_END) == -1 || (sz = ftell(fp)) == -1) { + return -1; + } + + rewind(fp); + + return (ssize_t) sz; +} + +/* The caller owns 'mem' and must have called ptls_buffer_init prior to + * invoking this function */ +int ptls_cred_buffer_set_from_file(ptls_cred_buffer_t *buf, const char *fname) +{ + FILE *fp = NULL; + ssize_t sz; + char *m = NULL; + +#ifdef _WINDOWS + errno_t err = fopen_s(&fp, fname, "r"); + if (err != 0) { + return -1; + } +#else + fp = fopen(fname, "r"); + if (fp == NULL) { + return -1; + } +#endif + + if ((sz = fsize(fp)) == -1 || + (m = malloc(sz)) == NULL || + fread(m, sz, 1, fp) != 1) { + goto err; + } + + (void) fclose(fp); + + buf->base = m; + buf->len = sz; + buf->off = 0; + buf->owns_base = 1; + + return 0; +err: + if (m) + free(m); + if (fp != NULL) + (void) fclose(fp); + + return -1; +} + +int ptls_cred_buffer_set_from_string(ptls_cred_buffer_t *buf, char *s) +{ + buf->base = s; + buf->len = strlen(s); + buf->off = 0; + buf->owns_base = 0; + + return 0; +} + +void ptls_cred_buffer_dispose(ptls_cred_buffer_t *buf) +{ + if (buf->owns_base) { + if (buf->base) { + free(buf->base); + buf->base = NULL; + } + buf->len = buf->off = 0; + buf->owns_base = 0; + } + + return; +} + +void ptls_cred_buffer_rewind(ptls_cred_buffer_t *buf) +{ + buf->off = 0; + return; +} + +/* z -> nlptr */ +char *ptls_cred_buffer_gets(char *s, int n, ptls_cred_buffer_t *buf) +{ + char *p = s; + char *z; + size_t k; + int c; + + if (n-- <= 1) { + if (n) return NULL; + *s = '\0'; + return s; + } + + while (n) { + if (PTLS_CRED_BUFFER_RPOS(buf) != PTLS_CRED_BUFFER_REND(buf)) { + z = memchr(PTLS_CRED_BUFFER_RPOS(buf), '\n', PTLS_CRED_BUFFER_LEFT(buf)); + k = z ? z - PTLS_CRED_BUFFER_RPOS(buf) + 1 : PTLS_CRED_BUFFER_LEFT(buf); + k = MIN(k, n); + memcpy(p, PTLS_CRED_BUFFER_RPOS(buf), k); + buf->off += k; + p += k; + n -= k; + if (z || !n) break; + } + + if ((c = cred_buffer_getc(buf)) < 0) { + if (p == s || PTLS_CRED_BUFFER_LEFT(buf) > 0) s = NULL; + break; + } + + n--; + + if ((*p++ = c) == '\n') break; + } + + if (s) *p = '\0'; + + return s; +} \ No newline at end of file diff --git a/build/lib/includes/utils/cred_buffer.h b/build/lib/includes/utils/cred_buffer.h new file mode 100644 index 0000000..d7d8a9e --- /dev/null +++ b/build/lib/includes/utils/cred_buffer.h @@ -0,0 +1,24 @@ + +#ifndef PTLS_CRED_BUFFER_H +#define PTLS_CRED_BUFFER_H + +#include +#include "picotls.h" + +typedef struct ptls_cred_buffer_s { + char *base; + size_t len; + size_t off; + int owns_base; +#define PTLS_CRED_BUFFER_RPOS(buf) ((buf)->base + (buf)->off) +#define PTLS_CRED_BUFFER_REND(buf) ((buf)->base + (buf)->len) +#define PTLS_CRED_BUFFER_LEFT(buf) ((buf)->len - (buf)->off) +} ptls_cred_buffer_t; + +int ptls_cred_buffer_set_from_file(ptls_cred_buffer_t *buf, const char *fname); +int ptls_cred_buffer_set_from_string(ptls_cred_buffer_t *buf, char *s); +void ptls_cred_buffer_dispose(ptls_cred_buffer_t *buf); +void ptls_cred_buffer_rewind(ptls_cred_buffer_t *buf); +char *ptls_cred_buffer_gets(char *s, int n, ptls_cred_buffer_t *buf); + +#endif /* !PTLS_CRED_BUFFER_H */ \ No newline at end of file diff --git a/build/lib/includes/utils/pem_utils.h b/build/lib/includes/utils/pem_utils.h new file mode 100644 index 0000000..7759a1c --- /dev/null +++ b/build/lib/includes/utils/pem_utils.h @@ -0,0 +1,28 @@ +/* +* Copyright (c) 2017 Christian Huitema +* +* Permission to use, copy, modify, and distribute this software for any +* purpose with or without fee is hereby granted, provided that the above +* copyright notice and this permission notice appear in all copies. +* +* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +#ifndef PTLS_PEM_UTILS +#define PTLS_PEM_UTILS + +#include +#include +#include "cred_buffer.h" + +int ptls_load_certificates_from_memory(ptls_context_t *ctx, ptls_cred_buffer_t *mem); + +int ptls_openssl_init_sign_certificate_with_mem_key(ptls_openssl_sign_certificate_t *self, const void *buf, int len); + +#endif /* PTLS_PEM_UTILS */ \ No newline at end of file diff --git a/build/lib/includes/wincompat.h b/build/lib/includes/wincompat.h new file mode 100644 index 0000000..746dc68 --- /dev/null +++ b/build/lib/includes/wincompat.h @@ -0,0 +1,37 @@ +#ifndef WINCOMPAT_H +#define WINCOMPAT_H + +#include +#define ssize_t int +#include +#include +#include + +#ifndef gettimeofday +#define gettimeofday wintimeofday + +#ifndef __attribute__ +#define __attribute__(X) +#endif + +#ifdef __cplusplus +extern "C" { +#endif +struct tzone { + int tz_minuteswest; /* minutes west of Greenwich */ + int tz_dsttime; /* type of DST correction */ +}; + +int wintimeofday(struct timeval *tv, struct tzone *tz); + +#ifndef strcasecmp +#define strcasecmp _stricmp +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif + +#endif /* WINCOMPAT_H */ \ No newline at end of file diff --git a/build/lib/pem_utils.c b/build/lib/pem_utils.c new file mode 100644 index 0000000..2962e98 --- /dev/null +++ b/build/lib/pem_utils.c @@ -0,0 +1,152 @@ +#include +#include +#include +#include "utils/pem_utils.h" +#include +#include +#include +#include + +static int ptls_compare_separator_line(const char *line, const char *begin_or_end, const char *label) +{ + int ret = strncmp(line, "-----", 5); + size_t text_index = 5; + + if (ret == 0) { + size_t begin_or_end_length = strlen(begin_or_end); + ret = strncmp(line + text_index, begin_or_end, begin_or_end_length); + text_index += begin_or_end_length; + } + + if (ret == 0) { + ret = line[text_index] - ' '; + text_index++; + } + + if (ret == 0) { + size_t label_length = strlen(label); + ret = strncmp(line + text_index, label, label_length); + text_index += label_length; + } + + if (ret == 0) { + ret = strncmp(line + text_index, "-----", 5); + } + + return ret; +} + +// Extracted from https://github.com/h2o/picotls/pull/284/ +// Remove both pem.c/h and cred_buffer.c/h once that PR gets merged +static int ptls_get_pem_object_from_memory(ptls_cred_buffer_t *mem, const char *label, ptls_buffer_t *buf) +{ + int ret = PTLS_ERROR_PEM_LABEL_NOT_FOUND; + char line[256]; + ptls_base64_decode_state_t state; + + /* Get the label on a line by itself */ + while (ptls_cred_buffer_gets(line, 256, mem)) { + if (ptls_compare_separator_line(line, "BEGIN", label) == 0) { + ret = 0; + ptls_base64_decode_init(&state); + break; + } + } + /* Get the data in the buffer */ + while (ret == 0 && ptls_cred_buffer_gets(line, 256, mem)) { + if (ptls_compare_separator_line(line, "END", label) == 0) { + if (state.status == PTLS_BASE64_DECODE_DONE || (state.status == PTLS_BASE64_DECODE_IN_PROGRESS && state.nbc == 0)) { + ret = 0; + } else { + ret = PTLS_ERROR_INCORRECT_BASE64; + } + break; + } else { + ret = ptls_base64_decode(line, &state, buf); + } + } + + return ret; +} + + + +int ptls_load_pem_objects_from_memory(ptls_cred_buffer_t *mem, const char *label, ptls_iovec_t *list, size_t list_max, size_t *nb_objects) +{ + int ret = 0; + size_t count = 0; + + *nb_objects = 0; + + if (ret == 0) { + while (count < list_max) { + ptls_buffer_t buf; + + ptls_buffer_init(&buf, "", 0); + + ret = ptls_get_pem_object_from_memory(mem, label, &buf); + + if (ret == 0) { + if (buf.off > 0 && buf.is_allocated) { + list[count].base = buf.base; + list[count].len = buf.off; + count++; + } else { + ptls_buffer_dispose(&buf); + } + } else { + ptls_buffer_dispose(&buf); + break; + } + } + } + + if (ret == PTLS_ERROR_PEM_LABEL_NOT_FOUND && count > 0) { + ret = 0; + } + + *nb_objects = count; + + return ret; +} + + + +#define PTLS_MAX_CERTS_IN_CONTEXT 16 + +int ptls_load_certificates_from_memory(ptls_context_t *ctx, ptls_cred_buffer_t *mem) +{ + int ret = 0; + + ctx->certificates.list = (ptls_iovec_t *)malloc(PTLS_MAX_CERTS_IN_CONTEXT * sizeof(ptls_iovec_t)); + + if (ctx->certificates.list == NULL) { + ret = PTLS_ERROR_NO_MEMORY; + } else { + ret = ptls_load_pem_objects_from_memory(mem, "CERTIFICATE", ctx->certificates.list, PTLS_MAX_CERTS_IN_CONTEXT, + &ctx->certificates.count); + } + + return ret; +} + + +int ptls_openssl_init_sign_certificate_with_mem_key(ptls_openssl_sign_certificate_t *self, const void *buf, int len) { + BIO *bio = BIO_new_mem_buf(buf, len); + if (bio == NULL) { + return 8880; + } + + EVP_PKEY *evp_key = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL); + BIO_free(bio); + if (evp_key == NULL) { + return 8881; + } + + // Initialize the certificate signing structure + int ret = ptls_openssl_init_sign_certificate(self, evp_key); + + EVP_PKEY_free(evp_key); + + return ret; +} diff --git a/generate_ngtcp2.nim b/generate_ngtcp2.nim new file mode 100644 index 0000000..c350efb --- /dev/null +++ b/generate_ngtcp2.nim @@ -0,0 +1,16 @@ +import futhark, strformat +from os import parentDir, `/` + +importc: + outputPath currentSourcePath.parentDir / "tmp_ngtcp2.nim" + path currentSourcePath.parentDir/"libs/ngtcp2/lib/includes" + path currentSourcePath.parentDir/"build/lib/includes" + path currentSourcePath.parentDir/"libs/ngtcp2/crypto/includes/" + path currentSourcePath.parentDir/"libs"/"picotls"/"include" + "ngtcp2/ngtcp2.h" + "ngtcp2/ngtcp2_crypto.h" + "picotls.h" + "picotls/openssl.h" + "ngtcp2/ngtcp2_crypto_picotls.h" + "utils/cred_buffer.h" + "utils/pem_utils.h" \ No newline at end of file diff --git a/libs/ngtcp2 b/libs/ngtcp2 new file mode 160000 index 0000000..048cdfd --- /dev/null +++ b/libs/ngtcp2 @@ -0,0 +1 @@ +Subproject commit 048cdfd0c2658ddcc82ae7a9375b025e933956a0 diff --git a/libs/picotls b/libs/picotls new file mode 160000 index 0000000..bbcdbe6 --- /dev/null +++ b/libs/picotls @@ -0,0 +1 @@ +Subproject commit bbcdbe6dc31ec5d4b72a7beece4daf58098bad42 diff --git a/ngtcp2.nim b/ngtcp2.nim index 830fff4..f88b021 100644 --- a/ngtcp2.nim +++ b/ngtcp2.nim @@ -4,3809 +4,10412 @@ import strformat # Socket definitions import nativesockets +{.passc: "-DNGTCP2_STATICLIB".} + when defined(windows): {.passl: "-lws2_32".} + {.passc: "-D_WINDOWS".} else: {.passc: "-DHAVE_UNISTD_H".} -# C include directories +when defined(macosx): + {.passl: "-L/opt/homebrew/opt/openssl@3/lib -lcrypto".} + {.passc: "-I/opt/homebrew/opt/openssl@3/include".} +else: + {.passl: "-lcrypto".} + const root = currentSourcePath.parentDir -const sourceInclude = root/"sources"/"lib"/"includes" -const buildInclude = root/"build"/"lib"/"includes" +const libIncludes = root/"build"/"lib"/"includes" +const ngtcp2Crypto = root/"libs"/"ngtcp2"/"crypto" +const ngtcp2CryptoIncludes = root/"libs"/"ngtcp2"/"crypto"/"includes" +const ngtcp2Lib = root/"libs"/"ngtcp2"/"lib" +const ngtcp2LibIncludes = root/"libs"/"ngtcp2"/"lib"/"includes" +const picotlsInclude = root/"libs"/"picotls"/"include" -{.passc: fmt"-I{sourceInclude} -I{buildInclude}".} +{.passc: fmt"-I{libIncludes}".} +{.passc: fmt"-I{ngtcp2Crypto}".} +{.passc: fmt"-I{ngtcp2CryptoIncludes}".} +{.passc: fmt"-I{ngtcp2Lib}".} +{.passc: fmt"-I{ngtcp2LibIncludes}".} +{.passc: fmt"-I{picotlsInclude}".} -# Generated @ 2024-07-03T20:14:17+02:00 -# Command line: -# /nim/1.6.20/nimble/pkgs/nimterop-0.6.11/nimterop/toast --compile=./sources/lib/ngtcp2_acktr.c --compile=./sources/lib/ngtcp2_addr.c --compile=./sources/lib/ngtcp2_balloc.c --compile=./sources/lib/ngtcp2_bbr.c --compile=./sources/lib/ngtcp2_buf.c --compile=./sources/lib/ngtcp2_cc.c --compile=./sources/lib/ngtcp2_cid.c --compile=./sources/lib/ngtcp2_conn.c --compile=./sources/lib/ngtcp2_conv.c --compile=./sources/lib/ngtcp2_crypto.c --compile=./sources/lib/ngtcp2_err.c --compile=./sources/lib/ngtcp2_frame_chain.c --compile=./sources/lib/ngtcp2_gaptr.c --compile=./sources/lib/ngtcp2_idtr.c --compile=./sources/lib/ngtcp2_ksl.c --compile=./sources/lib/ngtcp2_log.c --compile=./sources/lib/ngtcp2_map.c --compile=./sources/lib/ngtcp2_mem.c --compile=./sources/lib/ngtcp2_objalloc.c --compile=./sources/lib/ngtcp2_opl.c --compile=./sources/lib/ngtcp2_path.c --compile=./sources/lib/ngtcp2_pkt.c --compile=./sources/lib/ngtcp2_pmtud.c --compile=./sources/lib/ngtcp2_ppe.c --compile=./sources/lib/ngtcp2_pq.c --compile=./sources/lib/ngtcp2_pv.c --compile=./sources/lib/ngtcp2_qlog.c --compile=./sources/lib/ngtcp2_range.c --compile=./sources/lib/ngtcp2_ringbuf.c --compile=./sources/lib/ngtcp2_rob.c --compile=./sources/lib/ngtcp2_rst.c --compile=./sources/lib/ngtcp2_rtb.c --compile=./sources/lib/ngtcp2_settings.c --compile=./sources/lib/ngtcp2_str.c --compile=./sources/lib/ngtcp2_strm.c --compile=./sources/lib/ngtcp2_transport_params.c --compile=./sources/lib/ngtcp2_unreachable.c --compile=./sources/lib/ngtcp2_vec.c --compile=./sources/lib/ngtcp2_version.c --compile=./sources/lib/ngtcp2_window_filter.c --pnim --preprocess --noHeader --defines=NGTCP2_STATICLIB --replace=sockaddr=SockAddr,SockAddr_storage=Sockaddr_storage,socklen_t=SockLen --includeDirs=./sources/lib/includes --includeDirs=./build/lib/includes ./sources/lib/includes/ngtcp2/ngtcp2.h +{.compile: "./libs/picotls/picotlsvs/picotls/wintimeofday.c".} +{.compile: "./libs/picotls/lib/pembase64.c".} +{.compile: "./libs/picotls/lib/hpke.c".} +{.compile: "./libs/picotls/lib/picotls.c".} +{.compile: "./libs/picotls/lib/openssl.c".} +{.compile: "./libs/ngtcp2/crypto/shared.c".} +{.compile: "./libs/ngtcp2/crypto/picotls/picotls.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_acktr.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_addr.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_balloc.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_bbr.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_buf.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_cc.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_cid.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_conn.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_conv.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_crypto.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_dcidtr.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_err.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_frame_chain.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_gaptr.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_idtr.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_ksl.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_log.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_map.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_mem.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_objalloc.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_opl.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_path.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_pkt.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_pmtud.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_ppe.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_pq.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_pv.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_qlog.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_range.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_ringbuf.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_rob.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_rst.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_rtb.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_settings.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_str.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_strm.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_transport_params.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_unreachable.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_vec.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_version.c".} +{.compile: "./libs/ngtcp2/lib/ngtcp2_window_filter.c".} +{.compile: "./build/lib/cred_buffer.c".} +{.compile: "./build/lib/pem_utils.c".} -# const 'NGTCP2_PROTO_VER_MAX' has unsupported value 'NGTCP2_PROTO_VER_V1' -# const 'NGTCP2_PROTO_VER_MIN' has unsupported value 'NGTCP2_PROTO_VER_V1' -# const 'NGTCP2_PKT_INFO_VERSION' has unsupported value 'NGTCP2_PKT_INFO_V1' -# const 'NGTCP2_AF_INET' has unsupported value 'AF_INET' -# const 'NGTCP2_AF_INET6' has unsupported value 'AF_INET6' -# const 'NGTCP2_TRANSPORT_PARAMS_VERSION' has unsupported value 'NGTCP2_TRANSPORT_PARAMS_V1' -# const 'NGTCP2_CONN_INFO_VERSION' has unsupported value 'NGTCP2_CONN_INFO_V1' -# const 'NGTCP2_SETTINGS_VERSION' has unsupported value 'NGTCP2_SETTINGS_V2' -# const 'NGTCP2_CALLBACKS_VERSION' has unsupported value 'NGTCP2_CALLBACKS_V1' -import macros +{.warning[UnusedImport]: off.} +{.hint[XDeclaredButNotUsed]: off.} +from macros import hint, warning, newLit, getSize -macro defineEnum(typ: untyped): untyped = - result = newNimNode(nnkStmtList) +from os import parentDir - # Enum mapped to distinct cint - result.add quote do: - type `typ`* = distinct cint +when not declared(ownSizeOf): + macro ownSizeof(x: typed): untyped = + newLit(x.getSize) - for i in ["+", "-", "*", "div", "mod", "shl", "shr", "or", "and", "xor", "<", "<=", "==", ">", ">="]: - let - ni = newIdentNode(i) - typout = if i[0] in "<=>": newIdentNode("bool") else: typ # comparisons return bool - if i[0] == '>': # cannot borrow `>` and `>=` from templates - let - nopp = if i.len == 2: newIdentNode("<=") else: newIdentNode("<") - result.add quote do: - proc `ni`*(x: `typ`, y: cint): `typout` = `nopp`(y, x) - proc `ni`*(x: cint, y: `typ`): `typout` = `nopp`(y, x) - proc `ni`*(x, y: `typ`): `typout` = `nopp`(y, x) - else: - result.add quote do: - proc `ni`*(x: `typ`, y: cint): `typout` {.borrow.} - proc `ni`*(x: cint, y: `typ`): `typout` {.borrow.} - proc `ni`*(x, y: `typ`): `typout` {.borrow.} - result.add quote do: - proc `ni`*(x: `typ`, y: int): `typout` = `ni`(x, y.cint) - proc `ni`*(x: int, y: `typ`): `typout` = `ni`(x.cint, y) - - let - divop = newIdentNode("/") # `/`() - dlrop = newIdentNode("$") # `$`() - notop = newIdentNode("not") # `not`() - result.add quote do: - proc `divop`*(x, y: `typ`): `typ` = `typ`((x.float / y.float).cint) - proc `divop`*(x: `typ`, y: cint): `typ` = `divop`(x, `typ`(y)) - proc `divop`*(x: cint, y: `typ`): `typ` = `divop`(`typ`(x), y) - proc `divop`*(x: `typ`, y: int): `typ` = `divop`(x, y.cint) - proc `divop`*(x: int, y: `typ`): `typ` = `divop`(x.cint, y) - - proc `dlrop`*(x: `typ`): string {.borrow.} - proc `notop`*(x: `typ`): `typ` {.borrow.} - - -{.experimental: "codeReordering".} -{.passc: "-DNGTCP2_STATICLIB".} -{.passc: "-I./sources/lib/includes".} -{.passc: "-I./build/lib/includes".} -{.compile: "./sources/lib/ngtcp2_acktr.c".} -{.compile: "./sources/lib/ngtcp2_addr.c".} -{.compile: "./sources/lib/ngtcp2_balloc.c".} -{.compile: "./sources/lib/ngtcp2_bbr.c".} -{.compile: "./sources/lib/ngtcp2_buf.c".} -{.compile: "./sources/lib/ngtcp2_cc.c".} -{.compile: "./sources/lib/ngtcp2_cid.c".} -{.compile: "./sources/lib/ngtcp2_conn.c".} -{.compile: "./sources/lib/ngtcp2_conv.c".} -{.compile: "./sources/lib/ngtcp2_crypto.c".} -{.compile: "./sources/lib/ngtcp2_err.c".} -{.compile: "./sources/lib/ngtcp2_frame_chain.c".} -{.compile: "./sources/lib/ngtcp2_gaptr.c".} -{.compile: "./sources/lib/ngtcp2_idtr.c".} -{.compile: "./sources/lib/ngtcp2_ksl.c".} -{.compile: "./sources/lib/ngtcp2_log.c".} -{.compile: "./sources/lib/ngtcp2_map.c".} -{.compile: "./sources/lib/ngtcp2_mem.c".} -{.compile: "./sources/lib/ngtcp2_objalloc.c".} -{.compile: "./sources/lib/ngtcp2_opl.c".} -{.compile: "./sources/lib/ngtcp2_path.c".} -{.compile: "./sources/lib/ngtcp2_pkt.c".} -{.compile: "./sources/lib/ngtcp2_pmtud.c".} -{.compile: "./sources/lib/ngtcp2_ppe.c".} -{.compile: "./sources/lib/ngtcp2_pq.c".} -{.compile: "./sources/lib/ngtcp2_pv.c".} -{.compile: "./sources/lib/ngtcp2_qlog.c".} -{.compile: "./sources/lib/ngtcp2_range.c".} -{.compile: "./sources/lib/ngtcp2_ringbuf.c".} -{.compile: "./sources/lib/ngtcp2_rob.c".} -{.compile: "./sources/lib/ngtcp2_rst.c".} -{.compile: "./sources/lib/ngtcp2_rtb.c".} -{.compile: "./sources/lib/ngtcp2_settings.c".} -{.compile: "./sources/lib/ngtcp2_str.c".} -{.compile: "./sources/lib/ngtcp2_strm.c".} -{.compile: "./sources/lib/ngtcp2_transport_params.c".} -{.compile: "./sources/lib/ngtcp2_unreachable.c".} -{.compile: "./sources/lib/ngtcp2_vec.c".} -{.compile: "./sources/lib/ngtcp2_version.c".} -{.compile: "./sources/lib/ngtcp2_window_filter.c".} -defineEnum(ngtcp2_pkt_type) ## ``` - ## @enum - ## - ## :type:ngtcp2_pkt_type defines QUIC version-independent QUIC - ## packet types. - ## ``` -defineEnum(ngtcp2_path_validation_result) ## ``` - ## @enum - ## - ## :type:ngtcp2_path_validation_result defines path validation - ## result code. - ## ``` -defineEnum(ngtcp2_cc_algo) ## ``` - ## @enum - ## - ## :type:ngtcp2_cc_algo defines congestion control algorithms. - ## ``` -defineEnum(ngtcp2_token_type) ## ``` - ## @enum - ## - ## :type:ngtcp2_token_type defines the type of token. - ## ``` -defineEnum(ngtcp2_encryption_level) ## ``` - ## @enum - ## - ## :type:ngtcp2_encryption_level is QUIC encryption level. - ## ``` -defineEnum(ngtcp2_connection_id_status_type) ## ``` - ## @enum - ## - ## :type:ngtcp2_connection_id_status_type defines a set of status - ## for Destination Connection ID. - ## ``` -defineEnum(ngtcp2_ccerr_type) ## ``` - ## @enum - ## - ## :type:ngtcp2_ccerr_type defines connection error type. - ## ``` -const - NGTCP2_SECONDS* = (cast[ngtcp2_duration](1000000000'u64)) - NGTCP2_MILLISECONDS* = (cast[ngtcp2_duration](1000000'u64)) - NGTCP2_MICROSECONDS* = (cast[ngtcp2_duration](1000'u64)) - NGTCP2_NANOSECONDS* = (cast[ngtcp2_duration](1'u64)) - NGTCP2_PROTO_VER_V1* = (cast[uint32](0x00000001'u)) - NGTCP2_PROTO_VER_V2* = (cast[uint32](0x6B3343CF'u)) - NGTCP2_RESERVED_VERSION_MASK* = 0x0A0A0A0A'u - NGTCP2_MAX_UDP_PAYLOAD_SIZE* = 1200 - NGTCP2_MAX_PMTUD_UDP_PAYLOAD_SIZE* = 1452 - NGTCP2_MAX_VARINT* = ((1'u64 shl typeof(1'u64)(62)) - typeof(1'u64)(1)) - NGTCP2_STATELESS_RESET_TOKENLEN* = 16 - NGTCP2_MIN_STATELESS_RESET_RANDLEN* = 5 - NGTCP2_PATH_CHALLENGE_DATALEN* = 8 - NGTCP2_RETRY_KEY_V1* = "�\fi\v�fWZ\x1DvkT�h�N" - NGTCP2_RETRY_NONCE_V1* = "F\x15��]c+�#�%�" - NGTCP2_RETRY_KEY_V2* = "���\eV�H�`��έ|̒" - NGTCP2_RETRY_NONCE_V2* = "�ii�-|m���J" - NGTCP2_HP_MASKLEN* = 5 - NGTCP2_HP_SAMPLELEN* = 16 - NGTCP2_DEFAULT_INITIAL_RTT* = (333 * typeof(333)(NGTCP2_MILLISECONDS)) - NGTCP2_MAX_CIDLEN* = 20 - NGTCP2_MIN_CIDLEN* = 1 - NGTCP2_MIN_INITIAL_DCIDLEN* = 8 - NGTCP2_ECN_NOT_ECT* = 0x00000000 - NGTCP2_ECN_ECT_1* = 0x00000001 - NGTCP2_ECN_ECT_0* = 0x00000002 - NGTCP2_ECN_CE* = 0x00000003 - NGTCP2_ECN_MASK* = 0x00000003 - NGTCP2_PKT_INFO_V1* = 1 - NGTCP2_ERR_INVALID_ARGUMENT* = -201 - NGTCP2_ERR_NOBUF* = -202 - NGTCP2_ERR_PROTO* = -203 - NGTCP2_ERR_INVALID_STATE* = -204 - NGTCP2_ERR_ACK_FRAME* = -205 - NGTCP2_ERR_STREAM_ID_BLOCKED* = -206 - NGTCP2_ERR_STREAM_IN_USE* = -207 - NGTCP2_ERR_STREAM_DATA_BLOCKED* = -208 - NGTCP2_ERR_FLOW_CONTROL* = -209 - NGTCP2_ERR_CONNECTION_ID_LIMIT* = -210 - NGTCP2_ERR_STREAM_LIMIT* = -211 - NGTCP2_ERR_FINAL_SIZE* = -212 - NGTCP2_ERR_CRYPTO* = -213 - NGTCP2_ERR_PKT_NUM_EXHAUSTED* = -214 - NGTCP2_ERR_REQUIRED_TRANSPORT_PARAM* = -215 - NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM* = -216 - NGTCP2_ERR_FRAME_ENCODING* = -217 - NGTCP2_ERR_DECRYPT* = -218 - NGTCP2_ERR_STREAM_SHUT_WR* = -219 - NGTCP2_ERR_STREAM_NOT_FOUND* = -220 - NGTCP2_ERR_STREAM_STATE* = -221 - NGTCP2_ERR_RECV_VERSION_NEGOTIATION* = -222 - NGTCP2_ERR_CLOSING* = -223 - NGTCP2_ERR_DRAINING* = -224 - NGTCP2_ERR_TRANSPORT_PARAM* = -225 - NGTCP2_ERR_DISCARD_PKT* = -226 - NGTCP2_ERR_CONN_ID_BLOCKED* = -227 - NGTCP2_ERR_INTERNAL* = -228 - NGTCP2_ERR_CRYPTO_BUFFER_EXCEEDED* = -229 - NGTCP2_ERR_WRITE_MORE* = -230 - NGTCP2_ERR_RETRY* = -231 - NGTCP2_ERR_DROP_CONN* = -232 - NGTCP2_ERR_AEAD_LIMIT_REACHED* = -233 - NGTCP2_ERR_NO_VIABLE_PATH* = -234 - NGTCP2_ERR_VERSION_NEGOTIATION* = -235 - NGTCP2_ERR_HANDSHAKE_TIMEOUT* = -236 - NGTCP2_ERR_VERSION_NEGOTIATION_FAILURE* = -237 - NGTCP2_ERR_IDLE_CLOSE* = -238 - NGTCP2_ERR_FATAL* = -500 - NGTCP2_ERR_NOMEM* = -501 - NGTCP2_ERR_CALLBACK_FAILURE* = -502 - NGTCP2_PKT_FLAG_NONE* = 0x00000000'u - NGTCP2_PKT_FLAG_LONG_FORM* = 0x00000001'u - NGTCP2_PKT_FLAG_FIXED_BIT_CLEAR* = 0x00000002'u - NGTCP2_PKT_FLAG_KEY_PHASE* = 0x00000004'u - NGTCP2_PKT_VERSION_NEGOTIATION* = (0x00000080).ngtcp2_pkt_type ## ``` - ## :enum:NGTCP2_PKT_VERSION_NEGOTIATION is defined by libngtcp2 - ## for convenience. - ## ``` - NGTCP2_PKT_STATELESS_RESET* = (0x00000081).ngtcp2_pkt_type ## ``` - ## :enum:NGTCP2_PKT_STATELESS_RESET is defined by libngtcp2 for - ## convenience. - ## ``` - NGTCP2_PKT_INITIAL* = (0x00000010).ngtcp2_pkt_type ## ``` - ## :enum:NGTCP2_PKT_INITIAL indicates Initial packet. - ## ``` - NGTCP2_PKT_0RTT* = (0x00000011).ngtcp2_pkt_type ## ``` - ## :enum:NGTCP2_PKT_0RTT indicates 0-RTT packet. - ## ``` - NGTCP2_PKT_HANDSHAKE* = (0x00000012).ngtcp2_pkt_type ## ``` - ## :enum:NGTCP2_PKT_HANDSHAKE indicates Handshake packet. - ## ``` - NGTCP2_PKT_RETRY* = (0x00000013).ngtcp2_pkt_type ## ``` - ## :enum:NGTCP2_PKT_RETRY indicates Retry packet. - ## ``` - NGTCP2_PKT_1RTT* = (0x00000040).ngtcp2_pkt_type ## ``` - ## :enum:NGTCP2_PKT_1RTT is defined by libngtcp2 for convenience. - ## ``` - NGTCP2_NO_ERROR* = 0x00000000'u - NGTCP2_INTERNAL_ERROR* = 0x00000001'u - NGTCP2_CONNECTION_REFUSED* = 0x00000002'u - NGTCP2_FLOW_CONTROL_ERROR* = 0x00000003'u - NGTCP2_STREAM_LIMIT_ERROR* = 0x00000004'u - NGTCP2_STREAM_STATE_ERROR* = 0x00000005'u - NGTCP2_FINAL_SIZE_ERROR* = 0x00000006'u - NGTCP2_FRAME_ENCODING_ERROR* = 0x00000007'u - NGTCP2_TRANSPORT_PARAMETER_ERROR* = 0x00000008'u - NGTCP2_CONNECTION_ID_LIMIT_ERROR* = 0x00000009'u - NGTCP2_PROTOCOL_VIOLATION* = 0x0000000A'u - NGTCP2_INVALID_TOKEN* = 0x0000000B'u - NGTCP2_APPLICATION_ERROR* = 0x0000000C'u - NGTCP2_CRYPTO_BUFFER_EXCEEDED* = 0x0000000D'u - NGTCP2_KEY_UPDATE_ERROR* = 0x0000000E'u - NGTCP2_AEAD_LIMIT_REACHED* = 0x0000000F'u - NGTCP2_NO_VIABLE_PATH* = 0x00000010'u - NGTCP2_CRYPTO_ERROR* = 0x00000100'u - NGTCP2_VERSION_NEGOTIATION_ERROR* = 0x00000011 - NGTCP2_PATH_VALIDATION_RESULT_SUCCESS* = (0).ngtcp2_path_validation_result ## ``` - ## :enum:NGTCP2_PATH_VALIDATION_RESULT_SUCCESS indicates - ## successful validation. - ## ``` - NGTCP2_PATH_VALIDATION_RESULT_FAILURE* = ( - NGTCP2_PATH_VALIDATION_RESULT_SUCCESS + 1).ngtcp2_path_validation_result ## ``` - ## :enum:NGTCP2_PATH_VALIDATION_RESULT_FAILURE indicates - ## validation failure. - ## ``` - NGTCP2_PATH_VALIDATION_RESULT_ABORTED* = ( - NGTCP2_PATH_VALIDATION_RESULT_FAILURE + 1).ngtcp2_path_validation_result ## ``` - ## :enum:NGTCP2_PATH_VALIDATION_RESULT_ABORTED indicates that path - ## validation was aborted. - ## ``` - NGTCP2_DEFAULT_MAX_RECV_UDP_PAYLOAD_SIZE* = 65527 - NGTCP2_DEFAULT_ACK_DELAY_EXPONENT* = 3 - NGTCP2_DEFAULT_MAX_ACK_DELAY* = (25 * typeof(25)(NGTCP2_MILLISECONDS)) - NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT* = 2 - NGTCP2_TLSEXT_QUIC_TRANSPORT_PARAMETERS_V1* = 0x00000039'u - NGTCP2_TRANSPORT_PARAMS_V1* = 1 - NGTCP2_CONN_INFO_V1* = 1 - NGTCP2_CC_ALGO_RENO* = (0x00000000).ngtcp2_cc_algo ## ``` - ## :enum:NGTCP2_CC_ALGO_RENO represents Reno. - ## ``` - NGTCP2_CC_ALGO_CUBIC* = (0x00000001).ngtcp2_cc_algo ## ``` - ## :enum:NGTCP2_CC_ALGO_CUBIC represents Cubic. - ## ``` - NGTCP2_CC_ALGO_BBR* = (0x00000002).ngtcp2_cc_algo ## ``` - ## :enum:NGTCP2_CC_ALGO_BBR represents BBR v2. - ## ``` - NGTCP2_QLOG_WRITE_FLAG_NONE* = 0x00000000'u - NGTCP2_QLOG_WRITE_FLAG_FIN* = 0x00000001'u - NGTCP2_TOKEN_TYPE_UNKNOWN* = (0).ngtcp2_token_type ## ``` - ## :enum:NGTCP2_TOKEN_TYPE_UNKNOWN indicates that the type of - ## token is unknown. - ## ``` - NGTCP2_TOKEN_TYPE_RETRY* = (NGTCP2_TOKEN_TYPE_UNKNOWN + 1).ngtcp2_token_type ## ``` - ## :enum:NGTCP2_TOKEN_TYPE_RETRY indicates that a token comes from - ## Retry packet. - ## ``` - NGTCP2_TOKEN_TYPE_NEW_TOKEN* = (NGTCP2_TOKEN_TYPE_RETRY + 1).ngtcp2_token_type ## ``` - ## :enum:NGTCP2_TOKEN_TYPE_NEW_TOKEN indicates that a token comes - ## from NEW_TOKEN frame. - ## ``` - NGTCP2_SETTINGS_V1* = 1 - NGTCP2_SETTINGS_V2* = 2 - NGTCP2_ENCRYPTION_LEVEL_INITIAL* = (0).ngtcp2_encryption_level ## ``` - ## :enum:NGTCP2_ENCRYPTION_LEVEL_INITIAL is Initial encryption - ## level. - ## ``` - NGTCP2_ENCRYPTION_LEVEL_HANDSHAKE* = (NGTCP2_ENCRYPTION_LEVEL_INITIAL + 1).ngtcp2_encryption_level ## ``` - ## :enum:NGTCP2_ENCRYPTION_LEVEL_HANDSHAKE is Handshake encryption - ## level. - ## ``` - NGTCP2_ENCRYPTION_LEVEL_1RTT* = (NGTCP2_ENCRYPTION_LEVEL_HANDSHAKE + 1).ngtcp2_encryption_level ## ``` - ## :enum:NGTCP2_ENCRYPTION_LEVEL_1RTT is 1-RTT encryption level. - ## ``` - NGTCP2_ENCRYPTION_LEVEL_0RTT* = (NGTCP2_ENCRYPTION_LEVEL_1RTT + 1).ngtcp2_encryption_level ## ``` - ## :enum:NGTCP2_ENCRYPTION_LEVEL_0RTT is 0-RTT encryption level. - ## ``` - NGTCP2_STREAM_DATA_FLAG_NONE* = 0x00000000'u - NGTCP2_STREAM_DATA_FLAG_FIN* = 0x00000001'u - NGTCP2_STREAM_DATA_FLAG_0RTT* = 0x00000002'u - NGTCP2_STREAM_CLOSE_FLAG_NONE* = 0x00000000'u - NGTCP2_STREAM_CLOSE_FLAG_APP_ERROR_CODE_SET* = 0x00000001'u - NGTCP2_PATH_VALIDATION_FLAG_NONE* = 0x00000000'u - NGTCP2_PATH_VALIDATION_FLAG_PREFERRED_ADDR* = 0x00000001'u - NGTCP2_PATH_VALIDATION_FLAG_NEW_TOKEN* = 0x00000002'u - NGTCP2_CONNECTION_ID_STATUS_TYPE_ACTIVATE* = (0).ngtcp2_connection_id_status_type ## ``` - ## :enum:NGTCP2_CONNECTION_ID_STATUS_TYPE_ACTIVATE indicates that - ## a local endpoint starts using new Destination Connection ID. - ## ``` - NGTCP2_CONNECTION_ID_STATUS_TYPE_DEACTIVATE* = ( - NGTCP2_CONNECTION_ID_STATUS_TYPE_ACTIVATE + 1).ngtcp2_connection_id_status_type ## ``` - ## :enum:NGTCP2_CONNECTION_ID_STATUS_TYPE_DEACTIVATE indicates - ## that a local endpoint stops using a given Destination Connection - ## ID. - ## ``` - NGTCP2_DATAGRAM_FLAG_NONE* = 0x00000000'u - NGTCP2_DATAGRAM_FLAG_0RTT* = 0x00000001'u - NGTCP2_CALLBACKS_V1* = 1 - NGTCP2_WRITE_STREAM_FLAG_NONE* = 0x00000000'u - NGTCP2_WRITE_STREAM_FLAG_MORE* = 0x00000001'u - NGTCP2_WRITE_STREAM_FLAG_FIN* = 0x00000002'u - NGTCP2_WRITE_DATAGRAM_FLAG_NONE* = 0x00000000'u - NGTCP2_WRITE_DATAGRAM_FLAG_MORE* = 0x00000001'u - NGTCP2_CCERR_TYPE_TRANSPORT* = (0).ngtcp2_ccerr_type ## ``` - ## :enum:NGTCP2_CCERR_TYPE_TRANSPORT indicates the QUIC transport - ## error, and the error code is QUIC transport error code. - ## ``` - NGTCP2_CCERR_TYPE_APPLICATION* = (NGTCP2_CCERR_TYPE_TRANSPORT + 1).ngtcp2_ccerr_type ## ``` - ## :enum:NGTCP2_CCERR_TYPE_APPLICATION indicates an application - ## error, and the error code is application error code. - ## ``` - NGTCP2_CCERR_TYPE_VERSION_NEGOTIATION* = (NGTCP2_CCERR_TYPE_APPLICATION + 1).ngtcp2_ccerr_type ## ``` - ## :enum:NGTCP2_CCERR_TYPE_VERSION_NEGOTIATION is a special case - ## of QUIC transport error, and it indicates that client receives - ## Version Negotiation packet. - ## ``` - NGTCP2_CCERR_TYPE_IDLE_CLOSE* = (NGTCP2_CCERR_TYPE_VERSION_NEGOTIATION + 1).ngtcp2_ccerr_type ## ``` - ## :enum:NGTCP2_CCERR_TYPE_IDLE_CLOSE is a special case of QUIC - ## transport error, and it indicates that connection is closed - ## because of idle timeout. - ## ``` - NGTCP2_CCERR_TYPE_DROP_CONN* = (NGTCP2_CCERR_TYPE_IDLE_CLOSE + 1).ngtcp2_ccerr_type ## ``` - ## :enum:NGTCP2_CCERR_TYPE_DROP_CONN is a special case of QUIC - ## transport error, and it indicates that connection should be - ## dropped without sending a CONNECTION_CLOSE frame. - ## ``` - NGTCP2_CCERR_TYPE_RETRY* = (NGTCP2_CCERR_TYPE_DROP_CONN + 1).ngtcp2_ccerr_type ## ``` - ## :enum:NGTCP2_CCERR_TYPE_RETRY is a special case of QUIC - ## transport error, and it indicates that RETRY packet should be - ## sent to a client. - ## ``` - NGTCP2_VERSION_AGE* = 1 type - ngtcp2_ssize* = ByteAddress ## ``` - ## @typedef - ## - ## :type:ngtcp2_ssize is signed counterpart of size_t. - ## ``` - ngtcp2_malloc* = proc (size: uint; user_data: pointer): pointer {.cdecl.} - ngtcp2_free* = proc (`ptr`: pointer; user_data: pointer) {.cdecl.} - ngtcp2_calloc* = proc (nmemb: uint; size: uint; user_data: pointer): pointer {. - cdecl.} - ngtcp2_realloc* = proc (`ptr`: pointer; size: uint; user_data: pointer): pointer {. - cdecl.} - ngtcp2_mem* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_mem is a custom memory allocator. The - ## :member:user_data field is passed to each allocator function. - ## This can be used, for example, to achieve per-connection memory - ## pool. - ## - ## In the following example code, my_malloc, my_free, - ## my_calloc and my_realloc are the replacement of the - ## standard allocators :manpage:malloc(3), :manpage:free(3), - ## :manpage:calloc(3) and :manpage:realloc(3) respectively:: - ## - ## voidmy_malloc_cb(size_t size, voiduser_data) { - ## (void)user_data; - ## return my_malloc(size); - ## } - ## - ## void my_free_cb(voidptr, voiduser_data) { - ## (void)user_data; - ## my_free(ptr); - ## } - ## - ## voidmy_calloc_cb(size_t nmemb, size_t size, voiduser_data) { - ## (void)user_data; - ## return my_calloc(nmemb, size); - ## } - ## - ## voidmy_realloc_cb(voidptr, size_t size, voiduser_data) { - ## (void)user_data; - ## return my_realloc(ptr, size); - ## } - ## - ## void conn_new() { - ## ngtcp2_mem mem = {NULL, my_malloc_cb, my_free_cb, my_calloc_cb, - ## my_realloc_cb}; - ## - ## ... - ## } - ## ``` - user_data*: pointer ## ``` - ## :member:user_data is an arbitrary user supplied data. This - ## is passed to each allocator function. - ## ``` - malloc*: ngtcp2_malloc ## ``` - ## :member:malloc is a custom allocator function to replace - ## :manpage:malloc(3). - ## ``` - free*: ngtcp2_free ## ``` - ## :member:free is a custom allocator function to replace - ## :manpage:free(3). - ## ``` - calloc*: ngtcp2_calloc ## ``` - ## :member:calloc is a custom allocator function to replace - ## :manpage:calloc(3). - ## ``` - realloc*: ngtcp2_realloc ## ``` - ## :member:realloc is a custom allocator function to replace - ## :manpage:realloc(3). - ## ``` - - ngtcp2_pkt_info* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_pkt_info is a packet metadata. - ## ``` - ecn*: uint8 ## ``` - ## :member:ecn is ECN marking, and when it is passed to - ## ngtcp2_conn_read_pkt(), it should be either - ## :macro:NGTCP2_ECN_NOT_ECT, :macro:NGTCP2_ECN_ECT_1, - ## :macro:NGTCP2_ECN_ECT_0, or :macro:NGTCP2_ECN_CE. - ## ``` - - ngtcp2_tstamp* = uint64 ## ``` - ## @typedef - ## - ## :type:ngtcp2_tstamp is a timestamp with nanosecond resolution. - ## UINT64_MAX is an invalid value, and it is often used to - ## indicate that no value is set. - ## ``` - ngtcp2_duration* = uint64 ## ``` - ## @typedef - ## - ## :type:ngtcp2_duration is a period of time in nanosecond - ## resolution. UINT64_MAX is an invalid value, and it is often - ## used to indicate that no value is set. - ## ``` - ngtcp2_cid* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_cid holds a Connection ID. - ## ``` - datalen*: uint ## ``` - ## :member:datalen is the length of Connection ID. - ## ``` - data*: array[20, uint8] ## ``` - ## :member:data is the buffer to store Connection ID. - ## ``` - - ngtcp2_vec* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_vec is struct iovec compatible structure to - ## reference arbitrary array of bytes. - ## ``` - base*: ptr uint8 ## ``` - ## :member:base points to the data. - ## ``` - len*: uint ## ``` - ## :member:len is the number of bytes which the buffer pointed by - ## base contains. - ## ``` - - ngtcp2_pkt_hd* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_pkt_hd represents QUIC packet header. - ## ``` - dcid*: ngtcp2_cid ## ``` - ## :member:dcid is Destination Connection ID. - ## ``` - scid*: ngtcp2_cid ## ``` - ## :member:scid is Source Connection ID. - ## ``` - pkt_num*: int64 ## ``` - ## :member:pkt_num is a packet number. - ## ``` - token*: ptr uint8 ## ``` - ## :member:token contains token. Only Initial packet may contain - ## token. NULL if no token is present. - ## ``` - tokenlen*: uint ## ``` - ## :member:tokenlen is the length of :member:token. 0 if no - ## token is present. - ## ``` - pkt_numlen*: uint ## ``` - ## :member:pkt_numlen is the number of bytes spent to encode - ## :member:pkt_num. - ## ``` - len*: uint ## ``` - ## :member:len is the sum of :member:pkt_numlen and the length - ## of QUIC packet payload. - ## ``` - version*: uint32 ## ``` - ## :member:version is QUIC version. - ## ``` - `type`*: uint8 ## ``` - ## :member:type is a type of QUIC packet. This field does not - ## have a QUIC packet type defined for a specific QUIC version. - ## Instead, it contains version independent packet type defined by - ## this library. See :type:ngtcp2_pkt_type. - ## ``` - flags*: uint8 ## ``` - ## :member:flags is zero or more of :macro:NGTCP2_PKT_FLAG_* - ## . - ## ``` - - ngtcp2_pkt_stateless_reset* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_pkt_stateless_reset represents Stateless Reset. - ## ``` - stateless_reset_token*: array[16, uint8] ## ``` - ## :member:stateless_reset_token contains stateless reset token. - ## ``` - rand*: ptr uint8 ## ``` - ## :member:rand points a buffer which contains random bytes - ## section. - ## ``` - randlen*: uint ## ``` - ## :member:randlen is the number of random bytes. - ## ``` - - ngtcp2_SockAddr* = SockAddr ## ``` - ## @typedef - ## - ## :type:ngtcp2_sockaddr is typedefed to struct sockaddr. If - ## :macro:NGTCP2_USE_GENERIC_SOCKADDR is defined, it is typedefed to - ## the generic struct sockaddr defined in ngtcp2.h. - ## ``` - ngtcp2_SockAddr_in* = SockAddr_in ## ``` - ## @typedef - ## - ## :type:ngtcp2_sockaddr_in is typedefed to struct sockaddr_in. If - ## :macro:NGTCP2_USE_GENERIC_SOCKADDR is defined, it is typedefed to - ## the generic struct sockaddr_in defined in ngtcp2.h. - ## ``` - ngtcp2_SockAddr_in6* = SockAddr_in6 ## ``` - ## @typedef - ## - ## :type:ngtcp2_sockaddr_in6 is typedefed to struct sockaddr_in6. - ## If :macro:NGTCP2_USE_GENERIC_SOCKADDR is defined, it is typedefed - ## to the generic struct sockaddr_in6 defined in ngtcp2.h. - ## ``` - ngtcp2_socklen* = SockLen ## ``` - ## @typedef - ## - ## :type:ngtcp2_socklen is typedefed to socklen_t. If - ## :macro:NGTCP2_USE_GENERIC_SOCKADDR is defined, it is typedefed to - ## uint32_t. - ## ``` - ngtcp2_SockAddr_union* {.union, bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_sockaddr_union conveniently includes all supported - ## address types. - ## ``` - sa*: ngtcp2_SockAddr - `in`*: ngtcp2_SockAddr_in - in6*: ngtcp2_SockAddr_in6 - - ngtcp2_preferred_addr* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_preferred_addr represents preferred address - ## structure. - ## ``` - cid*: ngtcp2_cid ## ``` - ## :member:cid is a Connection ID. - ## ``` - ipv4*: ngtcp2_SockAddr_in ## ``` - ## :member:ipv4 contains IPv4 address and port. - ## ``` - ipv6*: ngtcp2_SockAddr_in6 ## ``` - ## :member:ipv6 contains IPv6 address and port. - ## ``` - ipv4_present*: uint8 ## ``` - ## :member:ipv4_present indicates that :member:ipv4 contains - ## IPv4 address and port. - ## ``` - ipv6_present*: uint8 ## ``` - ## :member:ipv6_present indicates that :member:ipv6 contains - ## IPv6 address and port. - ## ``` - stateless_reset_token*: array[16, uint8] ## ``` - ## :member:stateless_reset_token contains stateless reset token. - ## ``` - - ngtcp2_version_info* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_version_info represents version_information - ## structure. See :rfc:9368. - ## ``` - chosen_version*: uint32 ## ``` - ## :member:chosen_version is the version chosen by the sender. - ## ``` - available_versions*: ptr uint8 ## ``` - ## :member:available_versions points the wire image of - ## available_versions field. The each version is therefore in - ## network byte order. - ## ``` - available_versionslen*: uint ## ``` - ## :member:available_versionslen is the number of bytes pointed by - ## :member:available_versions, not the number of versions - ## included. - ## ``` - - ngtcp2_transport_params* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_transport_params represents QUIC transport - ## parameters. - ## ``` - preferred_addr*: ngtcp2_preferred_addr ## ``` - ## :member:preferred_addr contains preferred address if - ## :member:preferred_addr_present is nonzero. - ## ``` - original_dcid*: ngtcp2_cid ## ``` - ## :member:original_dcid is the Destination Connection ID field - ## from the first Initial packet from client. Server must specify - ## this field and set :member:original_dcid_present to nonzero. - ## It is expected that application knows the original Destination - ## Connection ID even if it sends Retry packet, for example, by - ## including it in retry token. Otherwise, application should not - ## specify this field. - ## ``` - initial_scid*: ngtcp2_cid ## ``` - ## :member:initial_scid is the Source Connection ID field from the - ## first Initial packet the local endpoint sends. Application - ## should not specify this field. If :member:initial_scid_present - ## is set to nonzero, it indicates this field is set. - ## ``` - retry_scid*: ngtcp2_cid ## ``` - ## :member:retry_scid is the Source Connection ID field from Retry - ## packet. Only server uses this field. If server application - ## received Initial packet with retry token from client, and server - ## successfully verified its token, server application must set - ## Destination Connection ID field from the Initial packet to this - ## field, and set :member:retry_scid_present to nonzero. Server - ## application must verify that the Destination Connection ID from - ## Initial packet was sent in Retry packet by, for example, - ## including the Connection ID in a token, or including it in AAD - ## when encrypting a token. - ## ``` - initial_max_stream_data_bidi_local*: uint64 ## ``` - ## :member:initial_max_stream_data_bidi_local is the size of flow - ## control window of locally initiated stream. This is the number - ## of bytes that the remote endpoint can send, and the local - ## endpoint must ensure that it has enough buffer to receive them. - ## ``` - initial_max_stream_data_bidi_remote*: uint64 ## ``` - ## :member:initial_max_stream_data_bidi_remote is the size of flow - ## control window of remotely initiated stream. This is the number - ## of bytes that the remote endpoint can send, and the local - ## endpoint must ensure that it has enough buffer to receive them. - ## ``` - initial_max_stream_data_uni*: uint64 ## ``` - ## :member:initial_max_stream_data_uni is the size of flow control - ## window of remotely initiated unidirectional stream. This is the - ## number of bytes that the remote endpoint can send, and the local - ## endpoint must ensure that it has enough buffer to receive them. - ## ``` - initial_max_data*: uint64 ## ``` - ## :member:initial_max_data is the connection level flow control - ## window. - ## ``` - initial_max_streams_bidi*: uint64 ## ``` - ## :member:initial_max_streams_bidi is the number of concurrent - ## streams that the remote endpoint can create. - ## ``` - initial_max_streams_uni*: uint64 ## ``` - ## :member:initial_max_streams_uni is the number of concurrent - ## unidirectional streams that the remote endpoint can create. - ## ``` - max_idle_timeout*: ngtcp2_duration ## ``` - ## :member:max_idle_timeout is a duration during which sender - ## allows quiescent. 0 means no idle timeout. It must not be - ## UINT64_MAX. - ## ``` - max_udp_payload_size*: uint64 ## ``` - ## :member:max_udp_payload_size is the maximum UDP payload size - ## that the local endpoint can receive. - ## ``` - active_connection_id_limit*: uint64 ## ``` - ## :member:active_connection_id_limit is the maximum number of - ## Connection ID that sender can store. - ## ``` - ack_delay_exponent*: uint64 ## ``` - ## :member:ack_delay_exponent is the exponent used in ACK Delay - ## field in ACK frame. - ## ``` - max_ack_delay*: ngtcp2_duration ## ``` - ## :member:max_ack_delay is the maximum acknowledgement delay by - ## which the local endpoint will delay sending acknowledgements. It - ## must be strictly less than (1 << 14) milliseconds. - ## Sub-millisecond part is dropped when sending it in a QUIC - ## transport parameter. - ## ``` - max_datagram_frame_size*: uint64 ## ``` - ## :member:max_datagram_frame_size is the maximum size of DATAGRAM - ## frame that the local endpoint willingly receives. Specifying 0 - ## disables DATAGRAM support. See :rfc:9221. - ## ``` - stateless_reset_token_present*: uint8 ## ``` - ## :member:stateless_reset_token_present is nonzero if - ## :member:stateless_reset_token field is set. - ## ``` - disable_active_migration*: uint8 ## ``` - ## :member:disable_active_migration is nonzero if the local - ## endpoint does not support active connection migration. - ## ``` - original_dcid_present*: uint8 ## ``` - ## :member:original_dcid_present is nonzero if - ## :member:original_dcid field is set. - ## ``` - initial_scid_present*: uint8 ## ``` - ## :member:initial_scid_present is nonzero if - ## :member:initial_scid field is set. - ## ``` - retry_scid_present*: uint8 ## ``` - ## :member:retry_scid_present is nonzero if :member:retry_scid - ## field is set. - ## ``` - preferred_addr_present*: uint8 ## ``` - ## :member:preferred_addr_present is nonzero if - ## :member:preferred_address is set. - ## ``` - stateless_reset_token*: array[16, uint8] ## ``` - ## :member:stateless_reset_token contains stateless reset token. - ## ``` - grease_quic_bit*: uint8 ## ``` - ## :member:grease_quic_bit is nonzero if sender supports "Greasing - ## the QUIC Bit" extension. See :rfc:9287. - ## ``` - version_info*: ngtcp2_version_info ## ``` - ## :member:version_info contains version_information field if - ## :member:version_info_present is nonzero. Application should - ## not specify this field. - ## ``` - version_info_present*: uint8 ## ``` - ## :member:version_info_present is nonzero if - ## :member:version_info is set. Application should not specify - ## this field. - ## ``` - - ngtcp2_conn_info* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_conn_info holds various connection statistics. - ## ``` - latest_rtt*: ngtcp2_duration ## ``` - ## :member:latest_rtt is the latest RTT sample which is not - ## adjusted by acknowledgement delay. - ## ``` - min_rtt*: ngtcp2_duration ## ``` - ## :member:min_rtt is the minimum RTT seen so far. It is not - ## adjusted by acknowledgement delay. - ## ``` - smoothed_rtt*: ngtcp2_duration ## ``` - ## :member:smoothed_rtt is the smoothed RTT. - ## ``` - rttvar*: ngtcp2_duration ## ``` - ## :member:rttvar is a mean deviation of observed RTT. - ## ``` - cwnd*: uint64 ## ``` - ## :member:cwnd is the size of congestion window. - ## ``` - ssthresh*: uint64 ## ``` - ## :member:ssthresh is slow start threshold. - ## ``` - bytes_in_flight*: uint64 ## ``` - ## :member:bytes_in_flight is the number in bytes of all sent - ## packets which have not been acknowledged. - ## ``` - - ngtcp2_printf* = proc (user_data: pointer; format: cstring) {.cdecl, varargs.} - ngtcp2_rand_ctx* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_rand_ctx is a wrapper around native random number - ## generator. It is opaque to the ngtcp2 library. This might be - ## useful if application needs to specify random number generator per - ## thread or per connection. - ## ``` - native_handle*: pointer ## ``` - ## :member:native_handle is a pointer to an underlying random - ## number generator. - ## ``` - - ngtcp2_qlog_write* = proc (user_data: pointer; flags: uint32; data: pointer; - datalen: uint) {.cdecl.} - ngtcp2_settings* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_settings defines QUIC connection settings. - ## ``` - qlog_write*: ngtcp2_qlog_write ## ``` - ## :member:qlog_write is a callback function to write qlog. - ## Setting NULL disables qlog. - ## ``` - cc_algo*: ngtcp2_cc_algo ## ``` - ## :member:cc_algo specifies congestion control algorithm. - ## ``` - initial_ts*: ngtcp2_tstamp ## ``` - ## :member:initial_ts is an initial timestamp given to the - ## library. - ## ``` - initial_rtt*: ngtcp2_duration ## ``` - ## :member:initial_rtt is an initial RTT. - ## ``` - log_printf*: ngtcp2_printf ## ``` - ## :member:log_printf is a function that the library uses to write - ## logs. NULL means no logging output. It is nothing to do - ## with qlog. - ## ``` - max_tx_udp_payload_size*: uint ## ``` - ## :member:max_tx_udp_payload_size is the maximum size of UDP - ## datagram payload that the local endpoint transmits. - ## ``` - token*: ptr uint8 ## ``` - ## :member:token is a token from Retry packet or NEW_TOKEN frame. - ## - ## Server sets this field if it received the token in Client Initial - ## packet and successfully validated. It should also set - ## :member:token_type field. - ## - ## Client sets this field if it intends to send token in its Initial - ## packet. - ## - ## ngtcp2_conn_server_new and ngtcp2_conn_client_new make a copy - ## of token. - ## - ## Set NULL if there is no token. - ## ``` - tokenlen*: uint ## ``` - ## :member:tokenlen is the length of :member:token. Set 0 if - ## there is no token. - ## ``` - token_type*: ngtcp2_token_type ## ``` - ## :member:token_type is the type of token. Server application - ## should set this field. - ## ``` - rand_ctx*: ngtcp2_rand_ctx ## ``` - ## :member:rand_ctx is an optional random number generator to be - ## passed to :type:ngtcp2_rand callback. - ## ``` - max_window*: uint64 ## ``` - ## :member:max_window is the maximum connection-level flow control - ## window if connection-level window auto-tuning is enabled. The - ## connection-level window auto tuning is enabled if nonzero value - ## is specified in this field. The initial value of window size is - ## :member:ngtcp2_transport_params.initial_max_data. The window - ## size is scaled up to the value specified in this field. - ## ``` - max_stream_window*: uint64 ## ``` - ## :member:max_stream_window is the maximum stream-level flow - ## control window if stream-level window auto-tuning is enabled. - ## The stream-level window auto-tuning is enabled if nonzero value - ## is specified in this field. The initial value of window size is - ## :member:ngtcp2_transport_params.initial_max_stream_data_bidi_remote, - ## :member:ngtcp2_transport_params.initial_max_stream_data_bidi_local, - ## or :member:ngtcp2_transport_params.initial_max_stream_data_uni, - ## depending on the type of stream. The window size is scaled up to - ## the value specified in this field. - ## ``` - ack_thresh*: uint ## ``` - ## :member:ack_thresh is the minimum number of the received ACK - ## eliciting packets that trigger the immediate acknowledgement from - ## the local endpoint. - ## ``` - no_tx_udp_payload_size_shaping*: uint8 ## ``` - ## :member:no_tx_udp_payload_size_shaping, if set to nonzero, - ## instructs the library not to limit the UDP payload size to - ## :macro:NGTCP2_MAX_UDP_PAYLOAD_SIZE (which can be extended by - ## Path MTU Discovery), and instead use the minimum size among the - ## given buffer size, :member:max_tx_udp_payload_size, and the - ## received max_udp_payload_size QUIC transport parameter. - ## ``` - handshake_timeout*: ngtcp2_duration ## ``` - ## :member:handshake_timeout is the period of time before giving - ## up QUIC connection establishment. If QUIC handshake is not - ## complete within this period, ngtcp2_conn_handle_expiry returns - ## :macro:NGTCP2_ERR_HANDSHAKE_TIMEOUT error. The deadline is - ## :member:initial_ts + :member:handshake_timeout. If this - ## field is set to UINT64_MAX, no handshake timeout is set. - ## ``` - preferred_versions*: ptr uint32 ## ``` - ## :member:preferred_versions is the array of versions that are - ## preferred by the local endpoint. All versions set in this array - ## must be supported by the library, and compatible to QUIC v1. The - ## reserved versions are not allowed. They are sorted in the order - ## of preference. - ## - ## On compatible version negotiation, server will negotiate one of - ## those versions contained in this array if there is some overlap - ## between these versions and the versions offered by the client. - ## If there is no overlap, but the client chosen version is - ## supported by the library, the server chooses the client chosen - ## version as the negotiated version. This version set corresponds - ## to Offered Versions described in :rfc:9368, and it should be - ## included in Version Negotiation packet. - ## - ## Client uses this field and :member:original_version to prevent - ## version downgrade attack if it reacted upon Version Negotiation - ## packet. If this field is specified, client must include - ## |client_chosen_version| passed to ngtcp2_conn_client_new unless - ## |client_chosen_version| is a reserved version. - ## ``` - preferred_versionslen*: uint ## ``` - ## :member:preferred_versionslen is the number of versions that - ## are contained in the array pointed by - ## :member:preferred_versions. - ## ``` - available_versions*: ptr uint32 ## ``` - ## :member:available_versions is the array of versions that are - ## going to be set in :member:available_versions - ## field of outgoing - ## version_information QUIC transport parameter. - ## - ## For server, this corresponds to Fully-Deployed Versions described - ## in :rfc:9368. If this field is not set, it is set to - ## :member:preferred_versions internally if - ## :member:preferred_versionslen is not zero. If this field is - ## not set, and :member:preferred_versionslen is zero, this field - ## is set to :macro:NGTCP2_PROTO_VER_V1 internally. - ## - ## Client must include |client_chosen_version| passed to - ## ngtcp2_conn_client_new in this array if this field is set and - ## |client_chosen_version| is not a reserved version. If this field - ## is not set, |client_chosen_version| passed to - ## ngtcp2_conn_client_new will be set in this field internally - ## unless |client_chosen_version| is a reserved version. - ## ``` - available_versionslen*: uint ## ``` - ## :member:available_versionslen is the number of versions that - ## are contained in the array pointed by - ## :member:available_versions. - ## ``` - original_version*: uint32 ## ``` - ## :member:original_version is the original version that client - ## initially used to make a connection attempt. If it is set, and - ## it differs from |client_chosen_version| passed to - ## ngtcp2_conn_client_new, the library assumes that client reacted - ## upon Version Negotiation packet. Server does not use this field. - ## ``` - no_pmtud*: uint8 ## ``` - ## :member:no_pmtud, if set to nonzero, disables Path MTU - ## Discovery. - ## ``` - initial_pkt_num*: uint32 ## ``` - ## :member:pkt_num is the initial packet number for each packet - ## number space. It must be in range [0, INT32_MAX], inclusive. - ## ``` - pmtud_probes*: ptr uint16 ## ``` - ## The following fields have been added since NGTCP2_SETTINGS_V2. - ## - ## :member:pmtud_probes is the array of UDP datagram payload size - ## to probe during Path MTU Discovery. The discovery is done in the - ## order appeared in this array. The size must be strictly larger - ## than 1200, otherwise the behavior is undefined. The maximum - ## value in this array should be set to - ## :member:max_tx_udp_payload_size. If this field is not set, the - ## predefined PMTUD probes are made. This field has been available - ## since v1.4.0. - ## ``` - pmtud_probeslen*: uint ## ``` - ## :member:pmtud_probeslen is the number of elements that are - ## contained in the array pointed by :member:pmtud_probes. This - ## field has been available since v1.4.0. - ## ``` - - ngtcp2_addr* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_addr is the endpoint address. - ## ``` - `addr`*: ptr ngtcp2_SockAddr ## ``` - ## :member:addr points to the buffer which contains endpoint - ## address. It must not be NULL. - ## ``` - addrlen*: ngtcp2_socklen ## ``` - ## :member:addrlen is the length of :member:addr. It must not - ## be longer than sizeof(:type:ngtcp2_sockaddr_union). - ## ``` - - ngtcp2_path* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_path is the network endpoints where a packet is sent - ## and received. - ## ``` - local*: ngtcp2_addr ## ``` - ## :member:local is the address of local endpoint. - ## ``` - remote*: ngtcp2_addr ## ``` - ## :member:remote is the address of remote endpoint. - ## ``` - user_data*: pointer ## ``` - ## :member:user_data is an arbitrary data and opaque to the - ## library. - ## - ## Note that :type:ngtcp2_path is generally passed to - ## :type:ngtcp2_conn by an application, and :type:ngtcp2_conn - ## stores their copies. Unfortunately, there is no way for the - ## application to know when :type:ngtcp2_conn finished using a - ## specific :type:ngtcp2_path object in mid connection, which - ## means that the application cannot free the data pointed by this - ## field. Therefore, it is advised to use this field only when the - ## data pointed by this field persists in an entire lifetime of the - ## connection. - ## ``` - - ngtcp2_path_storage* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_path_storage is a convenient struct to have buffers - ## to store the longest addresses. - ## ``` - path*: ngtcp2_path ## ``` - ## :member:path stores network path. - ## ``` - local_addrbuf*: ngtcp2_SockAddr_union ## ``` - ## :member:local_addrbuf is a buffer to store local address. - ## ``` - remote_addrbuf*: ngtcp2_SockAddr_union ## ``` - ## :member:remote_addrbuf is a buffer to store remote address. - ## ``` - - ngtcp2_crypto_md* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_crypto_md is a wrapper around native message digest - ## object. - ## ``` - native_handle*: pointer ## ``` - ## :member:native_handle is a pointer to an underlying message - ## digest object. - ## ``` - - ngtcp2_crypto_aead* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_crypto_aead is a wrapper around native AEAD object. - ## ``` - native_handle*: pointer ## ``` - ## :member:native_handle is a pointer to an underlying AEAD - ## object. - ## ``` - max_overhead*: uint ## ``` - ## :member:max_overhead is the number of additional bytes which - ## AEAD encryption needs on encryption. - ## ``` - - ngtcp2_crypto_cipher* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_crypto_cipher is a wrapper around native cipher - ## object. - ## ``` - native_handle*: pointer ## ``` - ## :member:native_handle is a pointer to an underlying cipher - ## object. - ## ``` - - ngtcp2_crypto_aead_ctx* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_crypto_aead_ctx is a wrapper around native AEAD - ## cipher context object. It should be initialized with a specific - ## key. ngtcp2 library reuses this context object to encrypt or - ## decrypt multiple packets. - ## ``` - native_handle*: pointer ## ``` - ## :member:native_handle is a pointer to an underlying AEAD - ## context object. - ## ``` - - ngtcp2_crypto_cipher_ctx* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_crypto_cipher_ctx is a wrapper around native cipher - ## context object. It should be initialized with a specific key. - ## ngtcp2 library reuses this context object to encrypt or decrypt - ## multiple packet headers. - ## ``` - native_handle*: pointer ## ``` - ## :member:native_handle is a pointer to an underlying cipher - ## context object. - ## ``` - - ngtcp2_crypto_ctx* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_crypto_ctx is a convenient structure to bind all - ## crypto related objects in one place. Use - ## ngtcp2_crypto_ctx_initial to initialize this struct for Initial - ## packet encryption. For Handshake and 1-RTT packets, use - ## ngtcp2_crypto_ctx_tls. For 0-RTT packets, use - ## ngtcp2_crypto_ctx_tls_early. - ## ``` - aead*: ngtcp2_crypto_aead ## ``` - ## :member:aead is AEAD object. - ## ``` - md*: ngtcp2_crypto_md ## ``` - ## :member:md is message digest object. - ## ``` - hp*: ngtcp2_crypto_cipher ## ``` - ## :member:hp is header protection cipher. - ## ``` - max_encryption*: uint64 ## ``` - ## :member:max_encryption is the number of encryption which this - ## key can be used with. - ## ``` - max_decryption_failure*: uint64 ## ``` - ## :member:max_decryption_failure is the number of decryption - ## failure with this key. - ## ``` - - ngtcp2_version_cid* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_version_cid is a convenient struct to store the - ## result of ngtcp2_pkt_decode_version_cid. - ## ``` - version*: uint32 ## ``` - ## :member:version stores QUIC version. - ## ``` - dcid*: ptr uint8 ## ``` - ## :member:dcid points to the Destination Connection ID. - ## ``` - dcidlen*: uint ## ``` - ## :member:dcidlen is the length of the Destination Connection ID - ## pointed by :member:dcid. - ## ``` - scid*: ptr uint8 ## ``` - ## :member:scid points to the Source Connection ID. - ## ``` - scidlen*: uint ## ``` - ## :member:scidlen is the length of the Source Connection ID - ## pointed by :member:scid. - ## ``` - - ngtcp2_conn* {.incompleteStruct.} = object - ngtcp2_client_initial* = proc (conn: ptr ngtcp2_conn; user_data: pointer): cint {. - cdecl.} - ngtcp2_recv_client_initial* = proc (conn: ptr ngtcp2_conn; - dcid: ptr ngtcp2_cid; user_data: pointer): cint {. - cdecl.} - ngtcp2_recv_crypto_data* = proc (conn: ptr ngtcp2_conn; - encryption_level: ngtcp2_encryption_level; - offset: uint64; data: ptr uint8; - datalen: uint; user_data: pointer): cint {. - cdecl.} - ngtcp2_handshake_completed* = proc (conn: ptr ngtcp2_conn; user_data: pointer): cint {. - cdecl.} - ngtcp2_handshake_confirmed* = proc (conn: ptr ngtcp2_conn; user_data: pointer): cint {. - cdecl.} - ngtcp2_recv_version_negotiation* = proc (conn: ptr ngtcp2_conn; - hd: ptr ngtcp2_pkt_hd; sv: ptr uint32; nsv: uint; user_data: pointer): cint {. - cdecl.} - ngtcp2_recv_retry* = proc (conn: ptr ngtcp2_conn; hd: ptr ngtcp2_pkt_hd; - user_data: pointer): cint {.cdecl.} - ngtcp2_encrypt* = proc (dest: ptr uint8; aead: ptr ngtcp2_crypto_aead; - aead_ctx: ptr ngtcp2_crypto_aead_ctx; - plaintext: ptr uint8; plaintextlen: uint; - nonce: ptr uint8; noncelen: uint; aad: ptr uint8; - aadlen: uint): cint {.cdecl.} - ngtcp2_decrypt* = proc (dest: ptr uint8; aead: ptr ngtcp2_crypto_aead; - aead_ctx: ptr ngtcp2_crypto_aead_ctx; - ciphertext: ptr uint8; ciphertextlen: uint; - nonce: ptr uint8; noncelen: uint; aad: ptr uint8; - aadlen: uint): cint {.cdecl.} - ngtcp2_hp_mask* = proc (dest: ptr uint8; hp: ptr ngtcp2_crypto_cipher; - hp_ctx: ptr ngtcp2_crypto_cipher_ctx; - sample: ptr uint8): cint {.cdecl.} - ngtcp2_recv_stream_data* = proc (conn: ptr ngtcp2_conn; flags: uint32; - stream_id: int64; offset: uint64; - data: ptr uint8; datalen: uint; - user_data: pointer; stream_user_data: pointer): cint {. - cdecl.} - ngtcp2_stream_open* = proc (conn: ptr ngtcp2_conn; stream_id: int64; - user_data: pointer): cint {.cdecl.} - ngtcp2_stream_close* = proc (conn: ptr ngtcp2_conn; flags: uint32; - stream_id: int64; app_error_code: uint64; - user_data: pointer; stream_user_data: pointer): cint {. - cdecl.} - ngtcp2_stream_reset* = proc (conn: ptr ngtcp2_conn; stream_id: int64; - final_size: uint64; app_error_code: uint64; - user_data: pointer; stream_user_data: pointer): cint {. - cdecl.} - ngtcp2_acked_stream_data_offset* = proc (conn: ptr ngtcp2_conn; - stream_id: int64; offset: uint64; datalen: uint64; user_data: pointer; - stream_user_data: pointer): cint {.cdecl.} - ngtcp2_recv_stateless_reset* = proc (conn: ptr ngtcp2_conn; - sr: ptr ngtcp2_pkt_stateless_reset; - user_data: pointer): cint {.cdecl.} - ngtcp2_extend_max_streams* = proc (conn: ptr ngtcp2_conn; max_streams: uint64; - user_data: pointer): cint {.cdecl.} - ngtcp2_extend_max_stream_data* = proc (conn: ptr ngtcp2_conn; - stream_id: int64; max_data: uint64; user_data: pointer; - stream_user_data: pointer): cint {.cdecl.} - ngtcp2_rand* = proc (dest: ptr uint8; destlen: uint; - rand_ctx: ptr ngtcp2_rand_ctx) {.cdecl.} - ngtcp2_get_new_connection_id* = proc (conn: ptr ngtcp2_conn; - cid: ptr ngtcp2_cid; token: ptr uint8; - cidlen: uint; user_data: pointer): cint {. - cdecl.} - ngtcp2_remove_connection_id* = proc (conn: ptr ngtcp2_conn; - cid: ptr ngtcp2_cid; user_data: pointer): cint {. - cdecl.} - ngtcp2_update_key* = proc (conn: ptr ngtcp2_conn; rx_secret: ptr uint8; - tx_secret: ptr uint8; - rx_aead_ctx: ptr ngtcp2_crypto_aead_ctx; - rx_iv: ptr uint8; - tx_aead_ctx: ptr ngtcp2_crypto_aead_ctx; - tx_iv: ptr uint8; current_rx_secret: ptr uint8; - current_tx_secret: ptr uint8; secretlen: uint; - user_data: pointer): cint {.cdecl.} - ngtcp2_path_validation* = proc (conn: ptr ngtcp2_conn; flags: uint32; - path: ptr ngtcp2_path; - old_path: ptr ngtcp2_path; - res: ngtcp2_path_validation_result; - user_data: pointer): cint {.cdecl.} - ngtcp2_select_preferred_addr* = proc (conn: ptr ngtcp2_conn; - dest: ptr ngtcp2_path; - paddr: ptr ngtcp2_preferred_addr; - user_data: pointer): cint {.cdecl.} - ngtcp2_connection_id_status* = proc (conn: ptr ngtcp2_conn; `type`: ngtcp2_connection_id_status_type; - seq: uint64; cid: ptr ngtcp2_cid; - token: ptr uint8; user_data: pointer): cint {. - cdecl.} - ngtcp2_recv_new_token* = proc (conn: ptr ngtcp2_conn; token: ptr uint8; - tokenlen: uint; user_data: pointer): cint {. - cdecl.} - ngtcp2_delete_crypto_aead_ctx* = proc (conn: ptr ngtcp2_conn; - aead_ctx: ptr ngtcp2_crypto_aead_ctx; user_data: pointer) {.cdecl.} - ngtcp2_delete_crypto_cipher_ctx* = proc (conn: ptr ngtcp2_conn; - cipher_ctx: ptr ngtcp2_crypto_cipher_ctx; user_data: pointer) {.cdecl.} - ngtcp2_recv_datagram* = proc (conn: ptr ngtcp2_conn; flags: uint32; - data: ptr uint8; datalen: uint; - user_data: pointer): cint {.cdecl.} - ngtcp2_ack_datagram* = proc (conn: ptr ngtcp2_conn; dgram_id: uint64; - user_data: pointer): cint {.cdecl.} - ngtcp2_lost_datagram* = proc (conn: ptr ngtcp2_conn; dgram_id: uint64; - user_data: pointer): cint {.cdecl.} - ngtcp2_get_path_challenge_data* = proc (conn: ptr ngtcp2_conn; - data: ptr uint8; user_data: pointer): cint {.cdecl.} - ngtcp2_stream_stop_sending* = proc (conn: ptr ngtcp2_conn; stream_id: int64; - app_error_code: uint64; - user_data: pointer; - stream_user_data: pointer): cint {.cdecl.} - ngtcp2_version_negotiation* = proc (conn: ptr ngtcp2_conn; version: uint32; - client_dcid: ptr ngtcp2_cid; - user_data: pointer): cint {.cdecl.} - ngtcp2_recv_key* = proc (conn: ptr ngtcp2_conn; - level: ngtcp2_encryption_level; user_data: pointer): cint {. - cdecl.} - ngtcp2_tls_early_data_rejected* = proc (conn: ptr ngtcp2_conn; - user_data: pointer): cint {.cdecl.} - ngtcp2_callbacks* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_callbacks holds a set of callback functions. - ## ``` - client_initial*: ngtcp2_client_initial ## ``` - ## :member:client_initial is a callback function which is invoked - ## when client asks TLS stack to produce first TLS cryptographic - ## handshake message. This callback function must be specified for - ## a client application. - ## ``` - recv_client_initial*: ngtcp2_recv_client_initial ## ``` - ## :member:recv_client_initial is a callback function which is - ## invoked when a server receives the first Initial packet from - ## client. This callback function must be specified for a server - ## application. - ## ``` - recv_crypto_data*: ngtcp2_recv_crypto_data ## ``` - ## :member:recv_crypto_data is a callback function which is - ## invoked when cryptographic data (CRYPTO frame, in other words, - ## TLS message) is received. This callback function must be - ## specified. - ## ``` - handshake_completed*: ngtcp2_handshake_completed ## ``` - ## :member:handshake_completed is a callback function which is - ## invoked when QUIC cryptographic handshake has completed. This - ## callback function is optional. - ## ``` - recv_version_negotiation*: ngtcp2_recv_version_negotiation ## ``` - ## :member:recv_version_negotiation is a callback function which - ## is invoked when Version Negotiation packet is received by a - ## client. This callback function is optional. - ## ``` - encrypt*: ngtcp2_encrypt ## ``` - ## :member:encrypt is a callback function which is invoked to - ## encrypt a QUIC packet. This callback function must be specified. - ## ``` - decrypt*: ngtcp2_decrypt ## ``` - ## :member:decrypt is a callback function which is invoked to - ## decrypt a QUIC packet. This callback function must be specified. - ## ``` - hp_mask*: ngtcp2_hp_mask ## ``` - ## :member:hp_mask is a callback function which is invoked to get - ## a mask to encrypt or decrypt QUIC packet header. This callback - ## function must be specified. - ## ``` - recv_stream_data*: ngtcp2_recv_stream_data ## ``` - ## :member:recv_stream_data is a callback function which is - ## invoked when stream data, which includes application data, is - ## received. This callback function is optional. - ## ``` - acked_stream_data_offset*: ngtcp2_acked_stream_data_offset ## ``` - ## :member:acked_stream_data_offset is a callback function which - ## is invoked when stream data, which includes application data, is - ## acknowledged by a remote endpoint. It tells an application the - ## largest offset of acknowledged stream data without a gap so that - ## application can free memory for the data up to that offset. This - ## callback function is optional. - ## ``` - stream_open*: ngtcp2_stream_open ## ``` - ## :member:stream_open is a callback function which is invoked - ## when new remote stream is opened by a remote endpoint. This - ## callback function is optional. - ## ``` - stream_close*: ngtcp2_stream_close ## ``` - ## :member:stream_close is a callback function which is invoked - ## when a stream is closed. This callback function is optional. - ## ``` - recv_stateless_reset*: ngtcp2_recv_stateless_reset ## ``` - ## :member:recv_stateless_reset is a callback function which is - ## invoked when Stateless Reset packet is received. This callback - ## function is optional. - ## ``` - recv_retry*: ngtcp2_recv_retry ## ``` - ## :member:recv_retry is a callback function which is invoked when - ## a client receives Retry packet. For client, this callback - ## function must be specified. Server never receive Retry packet. - ## ``` - extend_max_local_streams_bidi*: ngtcp2_extend_max_streams ## ``` - ## :member:extend_max_local_streams_bidi is a callback function - ## which is invoked when the number of bidirectional stream which a - ## local endpoint can open is increased. This callback function is - ## optional. - ## ``` - extend_max_local_streams_uni*: ngtcp2_extend_max_streams ## ``` - ## :member:extend_max_local_streams_uni is a callback function - ## which is invoked when the number of unidirectional stream which a - ## local endpoint can open is increased. This callback function is - ## optional. - ## ``` - rand*: ngtcp2_rand ## ``` - ## :member:rand is a callback function which is invoked when the - ## library needs random data. This callback function must be - ## specified. - ## ``` - get_new_connection_id*: ngtcp2_get_new_connection_id ## ``` - ## :member:get_new_connection_id is a callback function which is - ## invoked when the library needs new connection ID. This callback - ## function must be specified. - ## ``` - remove_connection_id*: ngtcp2_remove_connection_id ## ``` - ## :member:remove_connection_id is a callback function which - ## notifies an application that connection ID is no longer used by a - ## remote endpoint. This callback function is optional. - ## ``` - update_key*: ngtcp2_update_key ## ``` - ## :member:update_key is a callback function which is invoked when - ## the library tells an application that it must update keying - ## materials, and install new keys. This callback function must be - ## specified. - ## ``` - path_validation*: ngtcp2_path_validation ## ``` - ## :member:path_validation is a callback function which is invoked - ## when path validation completed. This callback function is - ## optional. - ## ``` - select_preferred_addr*: ngtcp2_select_preferred_addr ## ``` - ## :member:select_preferred_addr is a callback function which is - ## invoked when the library asks a client to select preferred - ## address presented by a server. If not set, client ignores - ## preferred addresses. This callback function is optional. - ## ``` - stream_reset*: ngtcp2_stream_reset ## ``` - ## :member:stream_reset is a callback function which is invoked - ## when a stream is reset by a remote endpoint. This callback - ## function is optional. - ## ``` - extend_max_remote_streams_bidi*: ngtcp2_extend_max_streams ## ``` - ## :member:extend_max_remote_streams_bidi is a callback function - ## which is invoked when the number of bidirectional streams which a - ## remote endpoint can open is increased. This callback function is - ## optional. - ## ``` - extend_max_remote_streams_uni*: ngtcp2_extend_max_streams ## ``` - ## :member:extend_max_remote_streams_uni is a callback function - ## which is invoked when the number of unidirectional streams which - ## a remote endpoint can open is increased. This callback function - ## is optional. - ## ``` - extend_max_stream_data*: ngtcp2_extend_max_stream_data ## ``` - ## :member:extend_max_stream_data is callback function which is - ## invoked when the maximum offset of stream data that a local - ## endpoint can send is increased. This callback function is - ## optional. - ## ``` - dcid_status*: ngtcp2_connection_id_status ## ``` - ## :member:dcid_status is a callback function which is invoked - ## when the new Destination Connection ID is activated, or the - ## activated Destination Connection ID is now deactivated. This - ## callback function is optional. - ## ``` - handshake_confirmed*: ngtcp2_handshake_confirmed ## ``` - ## :member:handshake_confirmed is a callback function which is - ## invoked when both endpoints agree that handshake has finished. - ## This field is ignored by server because - ## :member:handshake_completed also indicates the handshake - ## confirmation for server. This callback function is optional. - ## ``` - recv_new_token*: ngtcp2_recv_new_token ## ``` - ## :member:recv_new_token is a callback function which is invoked - ## when new token is received from server. This field is ignored by - ## server. This callback function is optional. - ## ``` - delete_crypto_aead_ctx*: ngtcp2_delete_crypto_aead_ctx ## ``` - ## :member:delete_crypto_aead_ctx is a callback function which - ## deletes a given AEAD cipher context object. This callback - ## function must be specified. - ## ``` - delete_crypto_cipher_ctx*: ngtcp2_delete_crypto_cipher_ctx ## ``` - ## :member:delete_crypto_cipher_ctx is a callback function which - ## deletes a given cipher context object. This callback function - ## must be specified. - ## ``` - recv_datagram*: ngtcp2_recv_datagram ## ``` - ## :member:recv_datagram is a callback function which is invoked - ## when DATAGRAM frame is received. This callback function is - ## optional. - ## ``` - ack_datagram*: ngtcp2_ack_datagram ## ``` - ## :member:ack_datagram is a callback function which is invoked - ## when a QUIC packet containing DATAGRAM frame is acknowledged by a - ## remote endpoint. This callback function is optional. - ## ``` - lost_datagram*: ngtcp2_lost_datagram ## ``` - ## :member:lost_datagram is a callback function which is invoked - ## when a QUIC packet containing DATAGRAM frame is declared lost. - ## This callback function is optional. - ## ``` - get_path_challenge_data*: ngtcp2_get_path_challenge_data ## ``` - ## :member:get_path_challenge_data is a callback function which is - ## invoked when the library needs new data sent along with - ## PATH_CHALLENGE frame. This callback must be specified. - ## ``` - stream_stop_sending*: ngtcp2_stream_stop_sending ## ``` - ## :member:stream_stop_sending is a callback function which is - ## invoked when a local endpoint no longer reads from a stream - ## before it receives all stream data. This callback function is - ## optional. - ## ``` - version_negotiation*: ngtcp2_version_negotiation ## ``` - ## :member:version_negotiation is a callback function which is - ## invoked when the compatible version negotiation takes place. - ## This callback function must be specified. - ## ``` - recv_rx_key*: ngtcp2_recv_key ## ``` - ## :member:recv_rx_key is a callback function which is invoked - ## when a new key for decrypting packets is installed during QUIC - ## cryptographic handshake. It is not called for - ## :enum:ngtcp2_encryption_level.NGTCP2_ENCRYPTION_LEVEL_INITIAL. - ## ``` - recv_tx_key*: ngtcp2_recv_key ## ``` - ## :member:recv_tx_key is a callback function which is invoked - ## when a new key for encrypting packets is installed during QUIC - ## cryptographic handshake. It is not called for - ## :enum:ngtcp2_encryption_level.NGTCP2_ENCRYPTION_LEVEL_INITIAL. - ## ``` - tls_early_data_rejected*: ngtcp2_tls_early_data_rejected ## ``` - ## :member:tls_early_data_rejected is a callback function which is - ## invoked when server rejected early data during TLS handshake, or - ## client decided not to attempt early data. This callback function - ## is only used by client. - ## ``` - - ngtcp2_cid_token* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_cid_token is the convenient struct to store - ## Connection ID, its associated path, and stateless reset token. - ## ``` - seq*: uint64 ## ``` - ## :member:seq is the sequence number of this Connection ID. - ## ``` - cid*: ngtcp2_cid ## ``` - ## :member:cid is Connection ID. - ## ``` - ps*: ngtcp2_path_storage ## ``` - ## :member:ps is the path which this Connection ID is associated - ## with. - ## ``` - token*: array[16, uint8] ## ``` - ## :member:token is the stateless reset token for this Connection - ## ID. - ## ``` - token_present*: uint8 ## ``` - ## :member:token_present is nonzero if token contains stateless - ## reset token. - ## ``` - - ngtcp2_ccerr* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_ccerr contains connection error code, its type, a - ## frame type that caused this error, and the optional reason phrase. - ## ``` - `type`*: ngtcp2_ccerr_type ## ``` - ## :member:type is the type of this error. - ## ``` - error_code*: uint64 ## ``` - ## :member:error_code is the error code for connection closure. - ## Its interpretation depends on :member:type. - ## ``` - frame_type*: uint64 ## ``` - ## :member:frame_type is the type of QUIC frame which triggers - ## this connection error. This field is set to 0 if the frame type - ## is unknown. - ## ``` - reason*: ptr uint8 ## ``` - ## :member:reason points to the buffer which contains a reason - ## phrase. It may be NULL if there is no reason phrase. If it is - ## received from a remote endpoint, it is truncated to at most 1024 - ## bytes. - ## ``` - reasonlen*: uint ## ``` - ## :member:reasonlen is the length of data pointed by - ## :member:reason. - ## ``` - - ngtcp2_info* {.bycopy.} = object ## ``` - ## @struct - ## - ## :type:ngtcp2_info is what ngtcp2_version returns. It holds - ## information about the particular ngtcp2 version. - ## ``` - age*: cint ## ``` - ## :member:age is the age of this struct. This instance of ngtcp2 - ## sets it to :macro:NGTCP2_VERSION_AGE but a future version may - ## bump it and add more struct fields at the bottom - ## ``` - version_num*: cint ## ``` - ## :member:version_num is the :macro:NGTCP2_VERSION_NUM number - ## (since :member:age ==1) - ## ``` - version_str*: cstring ## ``` - ## :member:version_str points to the :macro:NGTCP2_VERSION - ## string (since :member:age ==1) - ## ``` - -proc ngtcp2_cid_init*(cid: ptr ngtcp2_cid; data: ptr uint8; datalen: uint) {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_cid_init initializes Connection ID |cid| with the byte - ## string pointed by |data| and its length is |datalen|. |datalen| - ## must be at most :macro:NGTCP2_MAX_CIDLEN. - ## ``` -proc ngtcp2_cid_eq*(a: ptr ngtcp2_cid; b: ptr ngtcp2_cid): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_cid_eq returns nonzero if |a| and |b| share the same - ## Connection ID. - ## ``` -proc ngtcp2_transport_params_encode_versioned*(dest: ptr uint8; destlen: uint; - transport_params_version: cint; params: ptr ngtcp2_transport_params): ngtcp2_ssize {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_transport_params_encode encodes |params| in |dest| of - ## length |destlen|. - ## - ## If |dest| is NULL, and |destlen| is zero, this function just - ## returns the number of bytes required to store the encoded transport - ## parameters. - ## - ## This function returns the number of bytes written, or one of the - ## following negative error codes: - ## - ## :macro:NGTCP2_ERR_NOBUF - ## Buffer is too small. - ## ``` -proc ngtcp2_transport_params_decode_versioned*(transport_params_version: cint; - params: ptr ngtcp2_transport_params; data: ptr uint8; datalen: uint): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_transport_params_decode decodes transport parameters in - ## |data| of length |datalen|, and stores the result in the object - ## pointed by |params|. - ## - ## If an optional parameter is missing, the default value is assigned. - ## - ## The following fields may point to somewhere inside the buffer - ## pointed by |data| of length |datalen|: - ## - ## - :member:ngtcp2_transport_params.version_info.available_versions - ## - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM - ## The input is malformed. - ## ``` -proc ngtcp2_transport_params_decode_new*( - pparams: ptr ptr ngtcp2_transport_params; data: ptr uint8; datalen: uint; - mem: ptr ngtcp2_mem): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_transport_params_decode_new decodes transport parameters - ## in |data| of length |datalen|, and stores the result in the object - ## allocated dynamically. The pointer to the allocated object is - ## assigned to |*pparams|. Unlike ngtcp2_transport_params_decode, - ## all direct and indirect fields are also allocated dynamically if - ## needed. - ## - ## |mem| is a memory allocator to allocate memory. If |mem| is - ## NULL, the memory allocator returned by ngtcp2_mem_default() - ## is used. - ## - ## If the optional parameters are missing, the default value is - ## assigned. - ## - ## ngtcp2_transport_params_del frees the memory allocated by this - ## function. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM - ## The input is malformed. - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory. - ## ``` -proc ngtcp2_transport_params_del*(params: ptr ngtcp2_transport_params; - mem: ptr ngtcp2_mem) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_transport_params_del frees the |params| which must be - ## dynamically allocated by ngtcp2_transport_params_decode_new. - ## - ## |mem| is a memory allocator that allocated |params|. If |mem| is - ## NULL, the memory allocator returned by ngtcp2_mem_default() - ## is used. - ## - ## If |params| is NULL, this function does nothing. - ## ``` -proc ngtcp2_pkt_decode_version_cid*(dest: ptr ngtcp2_version_cid; - data: ptr uint8; datalen: uint; - short_dcidlen: uint): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_pkt_decode_version_cid extracts QUIC version, Destination - ## Connection ID and Source Connection ID from the packet pointed by - ## |data| of length |datalen|. This function can handle Connection ID - ## up to 255 bytes unlike ngtcp2_pkt_decode_hd_long or - ## ngtcp2_pkt_decode_hd_short which are only capable of handling - ## Connection ID less than or equal to :macro:NGTCP2_MAX_CIDLEN. - ## Longer Connection ID is only valid if the version is unsupported - ## QUIC version. - ## - ## If the given packet is Long header packet, this function extracts - ## the version from the packet, and assigns it to - ## :member:dest->version . It also - ## extracts the pointer to the Destination Connection ID and its - ## length, and assigns them to :member:dest->dcid - ## and :member:dest->dcidlen - ## respectively. Similarly, it extracts - ## the pointer to the Source Connection ID and its length, and assigns - ## them to :member:dest->scid and - ## :member:dest->scidlen respectively. - ## |short_dcidlen| is ignored. - ## - ## If the given packet is Short header packet, :member:dest->version - ## will be 0, :member:dest->scid - ## will be NULL, and - ## :member:dest->scidlen will be 0. - ## Because the Short header packet does not have the length of - ## Destination Connection ID, the caller has to pass the length in - ## |short_dcidlen|. This function extracts the pointer to the - ## Destination Connection ID, and assigns it to :member:dest->dcid - ## . |short_dcidlen| is assigned to - ## :member:dest->dcidlen . - ## - ## If Version Negotiation is required, this function returns - ## :macro:NGTCP2_ERR_VERSION_NEGOTIATION. Unlike the other error - ## cases, all fields of |dest| are assigned as described above. - ## - ## This function returns 0 if it succeeds. Otherwise, one of the - ## following negative error code: - ## - ## :macro:NGTCP2_ERR_INVALID_ARGUMENT - ## The function could not decode the packet header. - ## :macro:NGTCP2_ERR_VERSION_NEGOTIATION - ## Version Negotiation packet should be sent. - ## ``` -proc ngtcp2_pkt_decode_hd_long*(dest: ptr ngtcp2_pkt_hd; pkt: ptr uint8; - pktlen: uint): ngtcp2_ssize {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_pkt_decode_hd_long decodes QUIC long packet header in - ## |pkt| of length |pktlen|. This function only parses the input just - ## before packet number field. - ## - ## This function does not verify that length field is correct. In - ## other words, this function succeeds even if length > |pktlen|. - ## - ## This function can handle Connection ID up to - ## :macro:NGTCP2_MAX_CIDLEN. Consider to use - ## ngtcp2_pkt_decode_version_cid to get longer Connection ID. - ## - ## This function handles Version Negotiation specially. If version - ## field is 0, |pkt| must contain Version Negotiation packet. Version - ## Negotiation packet has random type in wire format. For - ## convenience, this function sets - ## :enum:ngtcp2_pkt_type.NGTCP2_PKT_VERSION_NEGOTIATION to - ## :member:dest->type , clears - ## :macro:NGTCP2_PKT_FLAG_LONG_FORM flag from :member:dest->flags - ## , and sets 0 to :member:dest->len - ## . Version Negotiation packet occupies a single - ## packet. - ## - ## It stores the result in the object pointed by |dest|, and returns - ## the number of bytes decoded to read the packet header if it - ## succeeds, or one of the following error codes: - ## - ## :macro:NGTCP2_ERR_INVALID_ARGUMENT - ## Packet is too short; or it is not a long header - ## ``` -proc ngtcp2_pkt_decode_hd_short*(dest: ptr ngtcp2_pkt_hd; pkt: ptr uint8; - pktlen: uint; dcidlen: uint): ngtcp2_ssize {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_pkt_decode_hd_short decodes QUIC short header in |pkt| of - ## length |pktlen|. Short header packet does not encode the length of - ## Connection ID, thus we need the input from the outside. |dcidlen| - ## is the length of Destination Connection ID in packet header. This - ## function only parses the input just before packet number field. - ## This function can handle Connection ID up to - ## :macro:NGTCP2_MAX_CIDLEN. Consider to use - ## ngtcp2_pkt_decode_version_cid to get longer Connection ID. It - ## stores the result in the object pointed by |dest|, and returns the - ## number of bytes decoded to read the packet header if it succeeds, - ## or one of the following error codes: - ## - ## :macro:NGTCP2_ERR_INVALID_ARGUMENT - ## Packet is too short; or it is not a short header - ## ``` -proc ngtcp2_pkt_write_stateless_reset*(dest: ptr uint8; destlen: uint; - stateless_reset_token: ptr uint8; - rand: ptr uint8; randlen: uint): ngtcp2_ssize {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_pkt_write_stateless_reset writes Stateless Reset packet in - ## the buffer pointed by |dest| whose length is |destlen|. - ## |stateless_reset_token| is a pointer to the Stateless Reset Token, - ## and its length must be :macro:NGTCP2_STATELESS_RESET_TOKENLEN - ## bytes long. |rand| specifies the random octets preceding Stateless - ## Reset Token. The length of |rand| is specified by |randlen| which - ## must be at least :macro:NGTCP2_MIN_STATELESS_RESET_RANDLEN bytes - ## long. - ## - ## If |randlen| is too long to write them all in the buffer, |rand| is - ## written to the buffer as much as possible, and is truncated. - ## - ## This function returns the number of bytes written to the buffer, or - ## one of the following negative error codes: - ## - ## :macro:NGTCP2_ERR_NOBUF - ## Buffer is too small. - ## :macro:NGTCP2_ERR_INVALID_ARGUMENT - ## |randlen| is strictly less than - ## :macro:NGTCP2_MIN_STATELESS_RESET_RANDLEN. - ## ``` -proc ngtcp2_pkt_write_version_negotiation*(dest: ptr uint8; destlen: uint; - unused_random: uint8; dcid: ptr uint8; dcidlen: uint; scid: ptr uint8; - scidlen: uint; sv: ptr uint32; nsv: uint): ngtcp2_ssize {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_pkt_write_version_negotiation writes Version Negotiation - ## packet in the buffer pointed by |dest| whose length is |destlen|. - ## |unused_random| should be generated randomly. |dcid| is a - ## Connection ID which appeared in a packet as a Source Connection ID - ## sent by client which caused version negotiation. Similarly, |scid| - ## is a Connection ID which appeared in a packet as a Destination - ## Connection ID sent by client. |sv| is a list of supported - ## versions, and |nsv| specifies the number of supported versions - ## included in |sv|. - ## - ## This function returns the number of bytes written to the buffer, or - ## one of the following negative error codes: - ## - ## :macro:NGTCP2_ERR_NOBUF - ## Buffer is too small. - ## ``` -proc ngtcp2_pkt_write_connection_close*(dest: ptr uint8; destlen: uint; - version: uint32; dcid: ptr ngtcp2_cid; - scid: ptr ngtcp2_cid; - error_code: uint64; reason: ptr uint8; - reasonlen: uint; - encrypt: ngtcp2_encrypt; - aead: ptr ngtcp2_crypto_aead; - aead_ctx: ptr ngtcp2_crypto_aead_ctx; - iv: ptr uint8; hp_mask: ngtcp2_hp_mask; - hp: ptr ngtcp2_crypto_cipher; - hp_ctx: ptr ngtcp2_crypto_cipher_ctx): ngtcp2_ssize {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_pkt_write_connection_close writes Initial packet - ## containing CONNECTION_CLOSE frame with the given |error_code| and - ## the optional |reason| of length |reasonlen| to the buffer pointed - ## by |dest| of length |destlen|. All encryption parameters are for - ## Initial packet encryption. The packet number is always 0. - ## - ## The primary use case of this function is for server to send - ## CONNECTION_CLOSE frame in Initial packet to close connection - ## without committing any state when validating Retry token fails. - ## - ## This function returns the number of bytes written if it succeeds, - ## or one of the following negative error codes: - ## - ## :macro:NGTCP2_ERR_NOBUF - ## Buffer is too small. - ## :macro:NGTCP2_ERR_CALLBACK_FAILURE - ## Callback function failed. - ## ``` -proc ngtcp2_pkt_write_retry*(dest: ptr uint8; destlen: uint; version: uint32; - dcid: ptr ngtcp2_cid; scid: ptr ngtcp2_cid; - odcid: ptr ngtcp2_cid; token: ptr uint8; - tokenlen: uint; encrypt: ngtcp2_encrypt; - aead: ptr ngtcp2_crypto_aead; - aead_ctx: ptr ngtcp2_crypto_aead_ctx): ngtcp2_ssize {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_pkt_write_retry writes Retry packet in the buffer pointed - ## by |dest| whose length is |destlen|. |dcid| is the Connection ID - ## which appeared in a packet as a Source Connection ID sent by - ## client. |scid| is a server chosen Source Connection ID. |odcid| - ## specifies Original Destination Connection ID which appeared in a - ## packet as a Destination Connection ID sent by client. |token| - ## specifies Retry Token, and |tokenlen| specifies its length. |aead| - ## must be AEAD_AES_128_GCM. |aead_ctx| must be initialized with - ## :macro:NGTCP2_RETRY_KEY as an encryption key. - ## - ## This function returns the number of bytes written to the buffer, or - ## one of the following negative error codes: - ## - ## :macro:NGTCP2_ERR_NOBUF - ## Buffer is too small. - ## :macro:NGTCP2_ERR_CALLBACK_FAILURE - ## Callback function failed. - ## :macro:NGTCP2_ERR_INVALID_ARGUMENT - ## :member:odcid->datalen is less than - ## :macro:NGTCP2_MIN_INITIAL_DCIDLEN. - ## ``` -proc ngtcp2_accept*(dest: ptr ngtcp2_pkt_hd; pkt: ptr uint8; pktlen: uint): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_accept is used by server implementation, and decides - ## whether packet |pkt| of length |pktlen| from client is acceptable - ## for the very first packet to a connection. - ## - ## If |dest| is not NULL and the function returns 0, the decoded - ## packet header is stored in the object pointed by |dest|. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_INVALID_ARGUMENT - ## The packet is not acceptable for the very first packet to a new - ## connection; or the function failed to parse the packet header. - ## ``` -proc ngtcp2_conn_client_new_versioned*(pconn: ptr ptr ngtcp2_conn; - dcid: ptr ngtcp2_cid; - scid: ptr ngtcp2_cid; - path: ptr ngtcp2_path; - client_chosen_version: uint32; - callbacks_version: cint; - callbacks: ptr ngtcp2_callbacks; - settings_version: cint; - settings: ptr ngtcp2_settings; - transport_params_version: cint; - params: ptr ngtcp2_transport_params; - mem: ptr ngtcp2_mem; user_data: pointer): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_client_new creates new :type:ngtcp2_conn, and - ## initializes it as client. On success, it stores the pointer to the - ## newly allocated object in |*pconn|. |dcid| is a randomized - ## Destination Connection ID which must be longer than or equal to - ## :macro:NGTCP2_MIN_INITIAL_DCIDLEN. |scid| is a Source Connection - ## ID chosen by client. |client_chosen_version| is a QUIC version - ## that a client chooses. |path| is the network path where this QUIC - ## connection is being established, and must not be NULL. - ## |callbacks|, |settings|, and |params| must not be NULL, and the - ## function makes a copy of each of them. |params| is a local QUIC - ## transport parameters, and sent to a remote endpoint during - ## handshake. |user_data| is the arbitrary pointer which is passed to - ## the user-defined callback functions. If |mem| is NULL, the - ## memory allocator returned by ngtcp2_mem_default() is used. - ## - ## Call ngtcp2_conn_del to free memory allocated for |*pconn|. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory. - ## ``` -proc ngtcp2_conn_server_new_versioned*(pconn: ptr ptr ngtcp2_conn; - dcid: ptr ngtcp2_cid; - scid: ptr ngtcp2_cid; - path: ptr ngtcp2_path; - client_chosen_version: uint32; - callbacks_version: cint; - callbacks: ptr ngtcp2_callbacks; - settings_version: cint; - settings: ptr ngtcp2_settings; - transport_params_version: cint; - params: ptr ngtcp2_transport_params; - mem: ptr ngtcp2_mem; user_data: pointer): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_server_new creates new :type:ngtcp2_conn, and - ## initializes it as server. On success, it stores the pointer to the - ## newly allocated object in |*pconn|. |dcid| is a Destination - ## Connection ID, and is usually the Connection ID that appears in - ## client Initial packet as Source Connection ID. |scid| is a Source - ## Connection ID chosen by server. |path| is the network path where - ## this QUIC connection is being established, and must not be - ## NULL. |client_chosen_version| is a QUIC version that a client - ## chooses. |callbacks|, |settings|, and |params| must not be - ## NULL, and the function makes a copy of each of them. |params| - ## is a local QUIC transport parameters, and sent to a remote endpoint - ## during handshake. |user_data| is the arbitrary pointer which is - ## passed to the user-defined callback functions. If |mem| is - ## NULL, the memory allocator returned by ngtcp2_mem_default() - ## is used. - ## - ## Call ngtcp2_conn_del to free memory allocated for |*pconn|. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory. - ## ``` -proc ngtcp2_conn_del*(conn: ptr ngtcp2_conn) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_del frees resources allocated for |conn|. It also - ## frees memory pointed by |conn|. - ## ``` -proc ngtcp2_conn_read_pkt_versioned*(conn: ptr ngtcp2_conn; - path: ptr ngtcp2_path; - pkt_info_version: cint; - pi: ptr ngtcp2_pkt_info; pkt: ptr uint8; - pktlen: uint; ts: ngtcp2_tstamp): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_read_pkt decrypts QUIC packet given in |pkt| of - ## length |pktlen| and processes it. |path| is the network path the - ## packet is delivered and must not be NULL. |pi| is packet - ## metadata and may be NULL. This function performs QUIC handshake - ## as well. - ## - ## This function must not be called from inside the callback - ## functions. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_RETRY - ## Server must perform address validation by sending Retry packet - ## (see ngtcp2_crypto_write_retry and ngtcp2_pkt_write_retry), - ## and discard the connection state. Client application does not - ## get this error code. - ## :macro:NGTCP2_ERR_DROP_CONN - ## Server application must drop the connection silently (without - ## sending any CONNECTION_CLOSE frame), and discard connection - ## state. Client application does not get this error code. - ## :macro:NGTCP2_ERR_DRAINING - ## A connection has entered the draining state, and no further - ## packet transmission is allowed. - ## :macro:NGTCP2_ERR_CLOSING - ## A connection has entered the closing state, and no further - ## packet transmission is allowed. Calling - ## ngtcp2_conn_write_connection_close makes a connection enter - ## this state. - ## :macro:NGTCP2_ERR_CRYPTO - ## An error happened in TLS stack. ngtcp2_conn_get_tls_alert - ## returns TLS alert if set. - ## - ## If any other negative error is returned, call - ## ngtcp2_conn_write_connection_close to get terminal packet, and - ## sending it makes QUIC connection enter the closing state. - ## ``` -proc ngtcp2_conn_write_pkt_versioned*(conn: ptr ngtcp2_conn; - path: ptr ngtcp2_path; - pkt_info_version: cint; - pi: ptr ngtcp2_pkt_info; dest: ptr uint8; - destlen: uint; ts: ngtcp2_tstamp): ngtcp2_ssize {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_write_pkt is equivalent to calling - ## ngtcp2_conn_writev_stream with -1 as |stream_id|, no stream data, - ## and :macro:NGTCP2_WRITE_STREAM_FLAG_NONE as flags. - ## ``` -proc ngtcp2_conn_tls_handshake_completed*(conn: ptr ngtcp2_conn) {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_tls_handshake_completed tells |conn| that the TLS - ## stack declares TLS handshake completion. This does not mean QUIC - ## handshake has completed. The library needs extra conditions to be - ## met. - ## ``` -proc ngtcp2_conn_get_handshake_completed*(conn: ptr ngtcp2_conn): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_handshake_completed returns nonzero if QUIC - ## handshake has completed. - ## ``` -proc ngtcp2_conn_install_initial_key*(conn: ptr ngtcp2_conn; - rx_aead_ctx: ptr ngtcp2_crypto_aead_ctx; - rx_iv: ptr uint8; - rx_hp_ctx: ptr ngtcp2_crypto_cipher_ctx; - tx_aead_ctx: ptr ngtcp2_crypto_aead_ctx; - tx_iv: ptr uint8; - tx_hp_ctx: ptr ngtcp2_crypto_cipher_ctx; - ivlen: uint): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_install_initial_key installs packet protection keying - ## materials for Initial packets. |rx_aead_ctx| is AEAD cipher - ## context object, and must be initialized with a decryption key. - ## |rx_iv| is IV of length |rx_ivlen| for decryption. |rx_hp_ctx| is - ## a packet header protection cipher context object for decryption. - ## Similarly, |tx_aead_ctx|, |tx_iv| and |tx_hp_ctx| are for - ## encrypting outgoing packets, and are the same length with the - ## decryption counterpart . If they have already been set, they are - ## overwritten. - ## - ## |ivlen| must be the minimum length of AEAD nonce, or 8 bytes if - ## that is larger. - ## - ## If this function succeeds, |conn| takes ownership of |rx_aead_ctx|, - ## |rx_hp_ctx|, |tx_aead_ctx|, and |tx_hp_ctx|. - ## :member:ngtcp2_callbacks.delete_crypto_aead_ctx and - ## :member:ngtcp2_callbacks.delete_crypto_cipher_ctx will be called - ## to delete these objects when they are no longer used. If this - ## function fails, the caller is responsible to delete them. - ## - ## After receiving Retry packet, a Destination Connection ID that - ## client sends in Initial packet most likely changes. In that case, - ## client application must generate these keying materials again based - ## on new Destination Connection ID, and install them again with this - ## function. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory. - ## ``` -proc ngtcp2_conn_install_vneg_initial_key*(conn: ptr ngtcp2_conn; - version: uint32; rx_aead_ctx: ptr ngtcp2_crypto_aead_ctx; rx_iv: ptr uint8; - rx_hp_ctx: ptr ngtcp2_crypto_cipher_ctx; - tx_aead_ctx: ptr ngtcp2_crypto_aead_ctx; tx_iv: ptr uint8; - tx_hp_ctx: ptr ngtcp2_crypto_cipher_ctx; ivlen: uint): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_install_vneg_initial_key installs packet protection - ## keying materials for Initial packets on compatible version - ## negotiation for |version|. |rx_aead_ctx| is AEAD cipher context - ## object, and must be initialized with a decryption key. |rx_iv| is - ## IV of length |rx_ivlen| for decryption. |rx_hp_ctx| is a packet - ## header protection cipher context object for decryption. Similarly, - ## |tx_aead_ctx|, |tx_iv| and |tx_hp_ctx| are for encrypting outgoing - ## packets, and are the same length with the decryption counterpart. - ## If they have already been set, they are overwritten. - ## - ## |ivlen| must be the minimum length of AEAD nonce, or 8 bytes if - ## that is larger. - ## - ## If this function succeeds, |conn| takes ownership of |rx_aead_ctx|, - ## |rx_hp_ctx|, |tx_aead_ctx|, and |tx_hp_ctx|. - ## :member:ngtcp2_callbacks.delete_crypto_aead_ctx and - ## :member:ngtcp2_callbacks.delete_crypto_cipher_ctx will be called - ## to delete these objects when they are no longer used. If this - ## function fails, the caller is responsible to delete them. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory. - ## ``` -proc ngtcp2_conn_install_rx_handshake_key*(conn: ptr ngtcp2_conn; - aead_ctx: ptr ngtcp2_crypto_aead_ctx; iv: ptr uint8; ivlen: uint; - hp_ctx: ptr ngtcp2_crypto_cipher_ctx): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_install_rx_handshake_key installs packet protection - ## keying materials for decrypting incoming Handshake packets. - ## |aead_ctx| is AEAD cipher context object which must be initialized - ## with a decryption key. |iv| is IV of length |ivlen|. |hp_ctx| is - ## a packet header protection cipher context object. - ## - ## |ivlen| must be the minimum length of AEAD nonce, or 8 bytes if - ## that is larger. - ## - ## If this function succeeds, |conn| takes ownership of |aead_ctx|, - ## and |hp_ctx|. :member:ngtcp2_callbacks.delete_crypto_aead_ctx - ## and :member:ngtcp2_callbacks.delete_crypto_cipher_ctx will be - ## called to delete these objects when they are no longer used. If - ## this function fails, the caller is responsible to delete them. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory. - ## ``` -proc ngtcp2_conn_install_tx_handshake_key*(conn: ptr ngtcp2_conn; - aead_ctx: ptr ngtcp2_crypto_aead_ctx; iv: ptr uint8; ivlen: uint; - hp_ctx: ptr ngtcp2_crypto_cipher_ctx): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_install_tx_handshake_key installs packet protection - ## keying materials for encrypting outgoing Handshake packets. - ## |aead_ctx| is AEAD cipher context object which must be initialized - ## with an encryption key. |iv| is IV of length |ivlen|. |hp_ctx| is - ## a packet header protection cipher context object. - ## - ## |ivlen| must be the minimum length of AEAD nonce, or 8 bytes if - ## that is larger. - ## - ## If this function succeeds, |conn| takes ownership of |aead_ctx| and - ## |hp_ctx|. :member:ngtcp2_callbacks.delete_crypto_aead_ctx and - ## :member:ngtcp2_callbacks.delete_crypto_cipher_ctx will be called - ## to delete these objects when they are no longer used. If this - ## function fails, the caller is responsible to delete them. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory. - ## ``` -proc ngtcp2_conn_install_0rtt_key*(conn: ptr ngtcp2_conn; - aead_ctx: ptr ngtcp2_crypto_aead_ctx; - iv: ptr uint8; ivlen: uint; - hp_ctx: ptr ngtcp2_crypto_cipher_ctx): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_install_0rtt_key installs packet protection AEAD - ## cipher context object |aead_ctx|, IV |iv| of length |ivlen|, and - ## packet header protection cipher context object |hp_ctx| to encrypt - ## (for client) or decrypt (for server) 0-RTT packets. - ## - ## |ivlen| must be the minimum length of AEAD nonce, or 8 bytes if - ## that is larger. - ## - ## If this function succeeds, |conn| takes ownership of |aead_ctx| and - ## |hp_ctx|. :member:ngtcp2_callbacks.delete_crypto_aead_ctx and - ## :member:ngtcp2_callbacks.delete_crypto_cipher_ctx will be called - ## to delete these objects when they are no longer used. If this - ## function fails, the caller is responsible to delete them. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory. - ## ``` -proc ngtcp2_conn_install_rx_key*(conn: ptr ngtcp2_conn; secret: ptr uint8; - secretlen: uint; - aead_ctx: ptr ngtcp2_crypto_aead_ctx; - iv: ptr uint8; ivlen: uint; - hp_ctx: ptr ngtcp2_crypto_cipher_ctx): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_install_rx_key installs packet protection keying - ## materials for decrypting 1-RTT packets. |secret| of length - ## |secretlen| is the decryption secret which is used to derive keying - ## materials passed to this function. |aead_ctx| is AEAD cipher - ## context object which must be initialized with a decryption key. - ## |iv| is IV of length |ivlen|. |hp_ctx| is a packet header - ## protection cipher context object. - ## - ## |ivlen| must be the minimum length of AEAD nonce, or 8 bytes if - ## that is larger. - ## - ## If this function succeeds, |conn| takes ownership of |aead_ctx| and - ## |hp_ctx|. :member:ngtcp2_callbacks.delete_crypto_aead_ctx and - ## :member:ngtcp2_callbacks.delete_crypto_cipher_ctx will be called - ## to delete these objects when they are no longer used. If this - ## function fails, the caller is responsible to delete them. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory. - ## ``` -proc ngtcp2_conn_install_tx_key*(conn: ptr ngtcp2_conn; secret: ptr uint8; - secretlen: uint; - aead_ctx: ptr ngtcp2_crypto_aead_ctx; - iv: ptr uint8; ivlen: uint; - hp_ctx: ptr ngtcp2_crypto_cipher_ctx): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_install_tx_key installs packet protection keying - ## materials for encrypting 1-RTT packets. |secret| of length - ## |secretlen| is the encryption secret which is used to derive keying - ## materials passed to this function. |aead_ctx| is AEAD cipher - ## context object which must be initialized with an encryption key. - ## |iv| is IV of length |ivlen|. |hp_ctx| is a packet header - ## protection cipher context object. - ## - ## |ivlen| must be the minimum length of AEAD nonce, or 8 bytes if - ## that is larger. - ## - ## If this function succeeds, |conn| takes ownership of |aead_ctx| and - ## |hp_ctx|. :member:ngtcp2_callbacks.delete_crypto_aead_ctx and - ## :member:ngtcp2_callbacks.delete_crypto_cipher_ctx will be called - ## to delete these objects when they are no longer used. If this - ## function fails, the caller is responsible to delete them. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory. - ## ``` -proc ngtcp2_conn_initiate_key_update*(conn: ptr ngtcp2_conn; ts: ngtcp2_tstamp): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_initiate_key_update initiates the key update. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_INVALID_STATE - ## The previous key update has not been confirmed yet; or key - ## update is too frequent; or new keys are not available yet. - ## ``` -proc ngtcp2_conn_set_tls_error*(conn: ptr ngtcp2_conn; liberr: cint) {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_set_tls_error sets the TLS related error |liberr| in - ## |conn|. |liberr| must be one of ngtcp2 library error codes (which - ## is defined as NGTCP2_ERR_* macro, such as - ## :macro:NGTCP2_ERR_DECRYPT). In general, error code should be - ## propagated via return value, but sometimes ngtcp2 API is called - ## inside callback function of TLS stack, and it does not allow to - ## return ngtcp2 error code directly. In this case, implementation - ## can set the error code (e.g., - ## :macro:NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM) using this function. - ## - ## See also ngtcp2_conn_get_tls_error. - ## ``` -proc ngtcp2_conn_get_tls_error*(conn: ptr ngtcp2_conn): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_tls_error returns the value set by - ## ngtcp2_conn_set_tls_error. If no value is set, this function - ## returns 0. - ## ``` -proc ngtcp2_conn_set_tls_alert*(conn: ptr ngtcp2_conn; alert: uint8) {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_set_tls_alert sets a TLS alert |alert| generated by a - ## TLS stack of a local endpoint to |conn|. - ## - ## See also ngtcp2_conn_get_tls_alert. - ## ``` -proc ngtcp2_conn_get_tls_alert*(conn: ptr ngtcp2_conn): uint8 {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_tls_alert returns the value set by - ## ngtcp2_conn_set_tls_alert. If no value is set, this function - ## returns 0. - ## ``` -proc ngtcp2_conn_set_keep_alive_timeout*(conn: ptr ngtcp2_conn; - timeout: ngtcp2_duration) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_set_keep_alive_timeout sets keep-alive timeout. If - ## nonzero value is given, after a connection is idle at least in a - ## given amount of time, a keep-alive packet is sent. If UINT64_MAX - ## is set, keep-alive functionality is disabled, and this is the - ## default. Specifying 0 in |timeout| is reserved for a future - ## extension, and for now it is treated as if UINT64_MAX is given. - ## ``` -proc ngtcp2_conn_get_expiry*(conn: ptr ngtcp2_conn): ngtcp2_tstamp {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_expiry returns the next expiry time. It returns - ## UINT64_MAX if there is no next expiry. - ## - ## Call ngtcp2_conn_handle_expiry and then - ## ngtcp2_conn_writev_stream (or ngtcp2_conn_writev_datagram) when - ## the expiry time has passed. - ## ``` -proc ngtcp2_conn_handle_expiry*(conn: ptr ngtcp2_conn; ts: ngtcp2_tstamp): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_handle_expiry handles expired timer. - ## ``` -proc ngtcp2_conn_get_pto*(conn: ptr ngtcp2_conn): ngtcp2_duration {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_pto returns Probe Timeout (PTO). - ## ``` -proc ngtcp2_conn_decode_and_set_remote_transport_params*(conn: ptr ngtcp2_conn; - data: ptr uint8; datalen: uint): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_decode_and_set_remote_transport_params decodes QUIC - ## transport parameters from the buffer pointed by |data| of length - ## |datalen|, and sets the result to |conn|. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_REQUIRED_TRANSPORT_PARAM - ## The required parameter is missing. - ## :macro:NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM - ## The input is malformed. - ## :macro:NGTCP2_ERR_TRANSPORT_PARAM - ## Failed to validate the remote QUIC transport parameters. - ## :macro:NGTCP2_ERR_VERSION_NEGOTIATION_FAILURE - ## Version negotiation failure. - ## :macro:NGTCP2_ERR_CALLBACK_FAILURE - ## User callback failed - ## ``` -proc ngtcp2_conn_get_remote_transport_params*(conn: ptr ngtcp2_conn): ptr ngtcp2_transport_params {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_remote_transport_params returns a pointer to the - ## remote QUIC transport parameters. If no remote transport - ## parameters are set, it returns NULL. - ## ``` -proc ngtcp2_conn_encode_0rtt_transport_params*(conn: ptr ngtcp2_conn; - dest: ptr uint8; destlen: uint): ngtcp2_ssize {.importc, cdecl.} -proc ngtcp2_conn_decode_and_set_0rtt_transport_params*(conn: ptr ngtcp2_conn; - data: ptr uint8; datalen: uint): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_decode_and_set_0rtt_transport_params decodes QUIC - ## transport parameters from |data| of length |datalen|, which is - ## assumed to be the parameters received from the server in the - ## previous connection, and sets it to |conn|. These parameters are - ## used to send 0-RTT data. QUIC requires that client application - ## should remember transport parameters along with a session ticket. - ## - ## At least following fields should be included: - ## - ## - :member:ngtcp2_transport_params.initial_max_streams_bidi - ## - :member:ngtcp2_transport_params.initial_max_streams_uni - ## - :member:ngtcp2_transport_params.initial_max_stream_data_bidi_local - ## - :member:ngtcp2_transport_params.initial_max_stream_data_bidi_remote - ## - :member:ngtcp2_transport_params.initial_max_stream_data_uni - ## - :member:ngtcp2_transport_params.initial_max_data - ## - :member:ngtcp2_transport_params.active_connection_id_limit - ## - :member:ngtcp2_transport_params.max_datagram_frame_size (if - ## DATAGRAM extension was negotiated) - ## - ## This function must only be used by client. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory. - ## :macro:NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM - ## The input is malformed. - ## ``` -proc ngtcp2_conn_set_local_transport_params_versioned*(conn: ptr ngtcp2_conn; - transport_params_version: cint; params: ptr ngtcp2_transport_params): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_set_local_transport_params sets the local transport - ## parameters |params|. This function can only be called by server. - ## Although the local transport parameters are passed to - ## ngtcp2_conn_server_new, server might want to update them after - ## ALPN is chosen. In that case, server can update the transport - ## parameters with this function. Server must call this function - ## before calling ngtcp2_conn_install_tx_handshake_key. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_INVALID_STATE - ## ngtcp2_conn_install_tx_handshake_key has been called. - ## ``` -proc ngtcp2_conn_get_local_transport_params*(conn: ptr ngtcp2_conn): ptr ngtcp2_transport_params {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_local_transport_params returns a pointer to the - ## local QUIC transport parameters. - ## ``` -proc ngtcp2_conn_encode_local_transport_params*(conn: ptr ngtcp2_conn; - dest: ptr uint8; destlen: uint): ngtcp2_ssize {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_encode_local_transport_params encodes the local QUIC - ## transport parameters in |dest| of length |destlen|. - ## - ## This function returns the number of bytes written, or one of the - ## following negative error codes: - ## - ## :macro:NGTCP2_ERR_NOBUF - ## Buffer is too small. - ## ``` -proc ngtcp2_conn_open_bidi_stream*(conn: ptr ngtcp2_conn; pstream_id: ptr int64; - stream_user_data: pointer): cint {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_open_bidi_stream opens new bidirectional stream. The - ## |stream_user_data| is the user data specific to the stream. The - ## stream ID of the opened stream is stored in |*pstream_id|. - ## - ## Application can call this function before handshake completes. For - ## 0-RTT packet, application can call this function after calling - ## ngtcp2_conn_decode_and_set_0rtt_transport_params. For 1-RTT - ## packet, application can call this function after calling - ## ngtcp2_conn_decode_and_set_remote_transport_params and - ## ngtcp2_conn_install_tx_key. If ngtcp2 crypto support library is - ## used, application can call this function after calling - ## ngtcp2_crypto_derive_and_install_tx_key for 1-RTT packet. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory - ## :macro:NGTCP2_ERR_STREAM_ID_BLOCKED - ## The remote endpoint does not allow |stream_id| yet. - ## ``` -proc ngtcp2_conn_open_uni_stream*(conn: ptr ngtcp2_conn; pstream_id: ptr int64; - stream_user_data: pointer): cint {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_open_uni_stream opens new unidirectional stream. The - ## |stream_user_data| is the user data specific to the stream. The - ## stream ID of the opened stream is stored in |*pstream_id|. - ## - ## Application can call this function before handshake completes. For - ## 0-RTT packet, application can call this function after calling - ## ngtcp2_conn_decode_and_set_0rtt_transport_params. For 1-RTT - ## packet, application can call this function after calling - ## ngtcp2_conn_decode_and_set_remote_transport_params and - ## ngtcp2_conn_install_tx_key. If ngtcp2 crypto support library is - ## used, application can call this function after calling - ## ngtcp2_crypto_derive_and_install_tx_key for 1-RTT packet. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory - ## :macro:NGTCP2_ERR_STREAM_ID_BLOCKED - ## The remote endpoint does not allow |stream_id| yet. - ## ``` -proc ngtcp2_conn_shutdown_stream*(conn: ptr ngtcp2_conn; flags: uint32; - stream_id: int64; app_error_code: uint64): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_shutdown_stream closes a stream denoted by - ## |stream_id| abruptly. |app_error_code| is one of application error - ## codes, and indicates the reason of shutdown. Successful call of - ## this function does not immediately erase the state of the stream. - ## The actual deletion is done when the remote endpoint sends - ## acknowledgement. Calling this function is equivalent to call - ## ngtcp2_conn_shutdown_stream_read, and - ## ngtcp2_conn_shutdown_stream_write sequentially with the following - ## differences. If |stream_id| refers to a local unidirectional - ## stream, this function only shutdowns write side of the stream. If - ## |stream_id| refers to a remote unidirectional stream, this function - ## only shutdowns read side of the stream. - ## - ## |flags| is currently unused, and should be set to 0. - ## - ## This function returns 0 if a stream denoted by |stream_id| is not - ## found. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory - ## ``` -proc ngtcp2_conn_shutdown_stream_write*(conn: ptr ngtcp2_conn; flags: uint32; - stream_id: int64; app_error_code: uint64): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_shutdown_stream_write closes write-side of a stream - ## denoted by |stream_id| abruptly. |app_error_code| is one of - ## application error codes, and indicates the reason of shutdown. If - ## this function succeeds, no further application data is sent to the - ## remote endpoint. It discards all data which has not been - ## acknowledged yet. - ## - ## |flags| is currently unused, and should be set to 0. - ## - ## This function returns 0 if a stream denoted by |stream_id| is not - ## found. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory - ## :macro:NGTCP2_ERR_INVALID_ARGUMENT - ## |stream_id| refers to a remote unidirectional stream. - ## ``` -proc ngtcp2_conn_shutdown_stream_read*(conn: ptr ngtcp2_conn; flags: uint32; - stream_id: int64; app_error_code: uint64): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_shutdown_stream_read closes read-side of a stream - ## denoted by |stream_id| abruptly. |app_error_code| is one of - ## application error codes, and indicates the reason of shutdown. If - ## this function succeeds, no further application data is forwarded to - ## an application layer. - ## - ## |flags| is currently unused, and should be set to 0. - ## - ## This function returns 0 if a stream denoted by |stream_id| is not - ## found. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory - ## :macro:NGTCP2_ERR_INVALID_ARGUMENT - ## |stream_id| refers to a local unidirectional stream. - ## ``` -proc ngtcp2_conn_write_stream_versioned*(conn: ptr ngtcp2_conn; - path: ptr ngtcp2_path; pkt_info_version: cint; pi: ptr ngtcp2_pkt_info; - dest: ptr uint8; destlen: uint; pdatalen: ptr ngtcp2_ssize; flags: uint32; - stream_id: int64; data: ptr uint8; datalen: uint; ts: ngtcp2_tstamp): ngtcp2_ssize {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_write_stream is just like - ## ngtcp2_conn_writev_stream. The only difference is that it - ## conveniently accepts a single buffer. - ## ``` -proc ngtcp2_conn_writev_stream_versioned*(conn: ptr ngtcp2_conn; - path: ptr ngtcp2_path; pkt_info_version: cint; pi: ptr ngtcp2_pkt_info; - dest: ptr uint8; destlen: uint; pdatalen: ptr ngtcp2_ssize; flags: uint32; - stream_id: int64; datav: ptr ngtcp2_vec; datavcnt: uint; ts: ngtcp2_tstamp): ngtcp2_ssize {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_writev_stream writes a packet containing stream data - ## of a stream denoted by |stream_id|. The buffer of the packet is - ## pointed by |dest| of length |destlen|. This function performs QUIC - ## handshake as well. - ## - ## |destlen| should be at least - ## :member:ngtcp2_settings.max_tx_udp_payload_size. It must be at - ## least :macro:NGTCP2_MAX_UDP_PAYLOAD_SIZE. - ## - ## Specifying -1 to |stream_id| means no new stream data to send. - ## - ## If |path| is not NULL, this function stores the network path - ## with which the packet should be sent. Each addr field - ## (:member:ngtcp2_path.local and :member:ngtcp2_path.remote) must - ## point to the buffer which should be at least - ## sizeof(:type:sockaddr_union) bytes long. The assignment might - ## not be done if nothing is written to |dest|. - ## - ## If |pi| is not NULL, this function stores packet metadata in it - ## if it succeeds. The metadata includes ECN markings. When calling - ## this function again after it returns - ## :macro:NGTCP2_ERR_WRITE_MORE, caller must pass the same |pi| to - ## this function. - ## - ## Stream data is specified as vector of data |datav|. |datavcnt| - ## specifies the number of :type:ngtcp2_vec that |datav| includes. - ## - ## If all given data is encoded as STREAM frame in |dest|, and if - ## |flags| & :macro:NGTCP2_WRITE_STREAM_FLAG_FIN is nonzero, fin - ## flag is set to outgoing STREAM frame. Otherwise, fin flag in - ## STREAM frame is not set. - ## - ## This packet may contain frames other than STREAM frame. The packet - ## might not contain STREAM frame if other frames occupy the packet. - ## In that case, |*pdatalen| would be -1 if |pdatalen| is not - ## NULL. - ## - ## Empty data is treated specially, and it is only accepted if no - ## data, including the empty data, is submitted to a stream or - ## :macro:NGTCP2_WRITE_STREAM_FLAG_FIN is set in |flags|. If 0 - ## length STREAM frame is successfully serialized, |*pdatalen| would - ## be 0. - ## - ## The number of data encoded in STREAM frame is stored in |*pdatalen| - ## if it is not NULL. The caller must keep the portion of data - ## covered by |*pdatalen| bytes in tact until - ## :member:ngtcp2_callbacks.acked_stream_data_offset indicates that - ## they are acknowledged by a remote endpoint or the stream is closed. - ## - ## If the given stream data is small (e.g., few bytes), the packet - ## might be severely under filled. Too many small packet might - ## increase overall packet processing costs. Unless there are - ## retransmissions, by default, application can only send 1 STREAM - ## frame in one QUIC packet. In order to include more than 1 STREAM - ## frame in one QUIC packet, specify - ## :macro:NGTCP2_WRITE_STREAM_FLAG_MORE in |flags|. This is - ## analogous to MSG_MORE flag in :manpage:send(2). If the - ## :macro:NGTCP2_WRITE_STREAM_FLAG_MORE is used, there are 4 - ## outcomes: - ## - ## - The function returns the written length of packet just like - ## without :macro:NGTCP2_WRITE_STREAM_FLAG_MORE. This is because - ## packet is nearly full, and the library decided to make a complete - ## packet. |*pdatalen| might be -1 or >= 0. It may return 0 which - ## indicates that no packet transmission is possible at the moment - ## for some reason. - ## - ## - The function returns :macro:NGTCP2_ERR_WRITE_MORE. In this - ## case, |*pdatalen| >= 0 is asserted. It indicates that - ## application can still call this function with different stream - ## data (or ngtcp2_conn_writev_datagram if it has data to send in - ## unreliable datagram) to pack them into the same packet. - ## Application has to specify the same |conn|, |path|, |pi|, |dest|, - ## |destlen|, and |ts| parameters, otherwise the behaviour is - ## undefined. The application can change |flags|. - ## - ## - The function returns one of the following negative error codes: - ## :macro:NGTCP2_ERR_STREAM_DATA_BLOCKED, - ## :macro:NGTCP2_ERR_STREAM_NOT_FOUND, or - ## :macro:NGTCP2_ERR_STREAM_SHUT_WR. In this case, |*pdatalen| == - ## -1 is asserted. Application can still write the stream data of - ## the other streams by calling this function (or - ## ngtcp2_conn_writev_datagram if it has data to send in - ## unreliable datagram) to pack them into the same packet. - ## Application has to specify the same |conn|, |path|, |pi|, |dest|, - ## |destlen|, and |ts| parameters, otherwise the behaviour is - ## undefined. The application can change |flags|. - ## - ## - The other negative error codes might be returned just like - ## without :macro:NGTCP2_WRITE_STREAM_FLAG_MORE. These errors - ## should be treated as a connection error. - ## - ## When application uses :macro:NGTCP2_WRITE_STREAM_FLAG_MORE at - ## least once, it must not call other ngtcp2 API functions - ## (application can still call ngtcp2_conn_write_connection_close to - ## handle error from this function. It can also call - ## ngtcp2_conn_shutdown_stream_read, - ## ngtcp2_conn_shutdown_stream_write, and - ## ngtcp2_conn_shutdown_stream), just keep calling this function (or - ## ngtcp2_conn_writev_datagram) until it returns 0, a positive - ## number (which indicates a complete packet is ready), or the error - ## codes other than :macro:NGTCP2_ERR_WRITE_MORE, - ## :macro:NGTCP2_ERR_STREAM_DATA_BLOCKED, - ## :macro:NGTCP2_ERR_STREAM_NOT_FOUND, and - ## :macro:NGTCP2_ERR_STREAM_SHUT_WR. If there is no stream data to - ## include, call this function with |stream_id| as -1 to stop - ## coalescing and write a packet. - ## - ## This function returns 0 if it cannot write any frame because buffer - ## is too small, or packet is congestion limited. Application should - ## keep reading and wait for congestion window to grow. - ## - ## This function must not be called from inside the callback - ## functions. - ## - ## ngtcp2_conn_update_pkt_tx_time must be called after this - ## function. Application may call this function multiple times before - ## calling ngtcp2_conn_update_pkt_tx_time. - ## - ## This function returns the number of bytes written in |dest| if it - ## succeeds, or one of the following negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory - ## :macro:NGTCP2_ERR_STREAM_NOT_FOUND - ## Stream does not exist - ## :macro:NGTCP2_ERR_STREAM_SHUT_WR - ## Stream is half closed (local); or stream is being reset. - ## :macro:NGTCP2_ERR_PKT_NUM_EXHAUSTED - ## Packet number is exhausted, and cannot send any more packet. - ## :macro:NGTCP2_ERR_CALLBACK_FAILURE - ## User callback failed - ## :macro:NGTCP2_ERR_INVALID_ARGUMENT - ## The total length of stream data is too large. - ## :macro:NGTCP2_ERR_STREAM_DATA_BLOCKED - ## Stream is blocked because of flow control. - ## :macro:NGTCP2_ERR_WRITE_MORE - ## (Only when :macro:NGTCP2_WRITE_STREAM_FLAG_MORE is specified) - ## Application can call this function to pack more stream data - ## into the same packet. See above to know how it works. - ## - ## If any other negative error is returned, call - ## ngtcp2_conn_write_connection_close to get terminal packet, and - ## sending it makes QUIC connection enter the closing state. - ## ``` -proc ngtcp2_conn_write_datagram_versioned*(conn: ptr ngtcp2_conn; - path: ptr ngtcp2_path; pkt_info_version: cint; pi: ptr ngtcp2_pkt_info; - dest: ptr uint8; destlen: uint; paccepted: ptr cint; flags: uint32; - dgram_id: uint64; data: ptr uint8; datalen: uint; ts: ngtcp2_tstamp): ngtcp2_ssize {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_write_datagram is just like - ## ngtcp2_conn_writev_datagram. The only difference is that it - ## conveniently accepts a single buffer. - ## ``` -proc ngtcp2_conn_writev_datagram_versioned*(conn: ptr ngtcp2_conn; - path: ptr ngtcp2_path; pkt_info_version: cint; pi: ptr ngtcp2_pkt_info; - dest: ptr uint8; destlen: uint; paccepted: ptr cint; flags: uint32; - dgram_id: uint64; datav: ptr ngtcp2_vec; datavcnt: uint; ts: ngtcp2_tstamp): ngtcp2_ssize {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_writev_datagram writes a packet containing unreliable - ## data in DATAGRAM frame. The buffer of the packet is pointed by - ## |dest| of length |destlen|. This function performs QUIC handshake - ## as well. - ## - ## |destlen| should be at least - ## :member:ngtcp2_settings.max_tx_udp_payload_size. It must be at - ## least :macro:NGTCP2_MAX_UDP_PAYLOAD_SIZE. - ## - ## For |path| and |pi| parameters, refer to - ## ngtcp2_conn_writev_stream. - ## - ## Stream data is specified as vector of data |datav|. |datavcnt| - ## specifies the number of :type:ngtcp2_vec that |datav| includes. - ## - ## If the given data is written to the buffer, nonzero value is - ## assigned to |*paccepted| if it is not NULL. The data in DATAGRAM - ## frame cannot be fragmented; writing partial data is not possible. - ## - ## |dgram_id| is an opaque identifier which should uniquely identify - ## the given DATAGRAM data. It is passed to - ## :member:ngtcp2_callbacks.ack_datagram callback when a packet that - ## contains DATAGRAM frame is acknowledged. It is also passed to - ## :member:ngtcp2_callbacks.lost_datagram callback when a packet - ## that contains DATAGRAM frame is declared lost. If an application - ## uses neither of those callbacks, it can sets 0 to this parameter. - ## - ## This function might write other frames other than DATAGRAM frame, - ## just like ngtcp2_conn_writev_stream. - ## - ## If the function returns 0, it means that no more data cannot be - ## sent because of congestion control limit; or, data does not fit - ## into the provided buffer; or, a local endpoint, as a server, is - ## unable to send data because of its amplification limit. In this - ## case, |*paccepted| is assigned zero if it is not NULL. - ## - ## If :macro:NGTCP2_WRITE_DATAGRAM_FLAG_MORE is set in |flags|, - ## there are 3 outcomes: - ## - ## - The function returns the written length of packet just like - ## without :macro:NGTCP2_WRITE_DATAGRAM_FLAG_MORE. This is - ## because packet is nearly full and the library decided to make a - ## complete packet. |*paccepted| might be zero or nonzero. - ## - ## - The function returns :macro:NGTCP2_ERR_WRITE_MORE. In this - ## case, |*paccepted| != 0 is asserted. This indicates that - ## application can call this function with another unreliable data - ## (or ngtcp2_conn_writev_stream if it has stream data to send) to - ## pack them into the same packet. Application has to specify the - ## same |conn|, |path|, |pi|, |dest|, |destlen|, and |ts| - ## parameters, otherwise the behaviour is undefined. The - ## application can change |flags|. - ## - ## - The other error might be returned just like without - ## :macro:NGTCP2_WRITE_DATAGRAM_FLAG_MORE. - ## - ## When application sees :macro:NGTCP2_ERR_WRITE_MORE, it must not - ## call other ngtcp2 API functions (application can still call - ## ngtcp2_conn_write_connection_close to handle error from this - ## function. It can also call ngtcp2_conn_shutdown_stream_read, - ## ngtcp2_conn_shutdown_stream_write, and - ## ngtcp2_conn_shutdown_stream). Just keep calling this function - ## (or ngtcp2_conn_writev_stream) until it returns a positive number - ## (which indicates a complete packet is ready). - ## - ## This function returns the number of bytes written in |dest| if it - ## succeeds, or one of the following negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory - ## :macro:NGTCP2_ERR_PKT_NUM_EXHAUSTED - ## Packet number is exhausted, and cannot send any more packet. - ## :macro:NGTCP2_ERR_CALLBACK_FAILURE - ## User callback failed - ## :macro:NGTCP2_ERR_WRITE_MORE - ## (Only when :macro:NGTCP2_WRITE_DATAGRAM_FLAG_MORE is - ## specified) Application can call this function to pack more data - ## into the same packet. See above to know how it works. - ## :macro:NGTCP2_ERR_INVALID_STATE - ## A remote endpoint did not express the DATAGRAM frame support. - ## :macro:NGTCP2_ERR_INVALID_ARGUMENT - ## The provisional DATAGRAM frame size exceeds the maximum - ## DATAGRAM frame size that a remote endpoint can receive. - ## - ## If any other negative error is returned, call - ## ngtcp2_conn_write_connection_close to get terminal packet, and - ## sending it makes QUIC connection enter the closing state. - ## ``` -proc ngtcp2_conn_in_closing_period*(conn: ptr ngtcp2_conn): cint {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_in_closing_period returns nonzero if |conn| is in the - ## closing period. - ## ``` -proc ngtcp2_conn_in_draining_period*(conn: ptr ngtcp2_conn): cint {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_in_draining_period returns nonzero if |conn| is in - ## the draining period. - ## ``` -proc ngtcp2_conn_extend_max_stream_offset*(conn: ptr ngtcp2_conn; - stream_id: int64; datalen: uint64): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_extend_max_stream_offset extends the maximum stream - ## data that a remote endpoint can send by |datalen|. |stream_id| - ## specifies the stream ID. This function only extends stream-level - ## flow control window. - ## - ## This function returns 0 if a stream denoted by |stream_id| is not - ## found. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory. - ## :macro:NGTCP2_ERR_INVALID_ARGUMENT - ## |stream_id| refers to a local unidirectional stream. - ## ``` -proc ngtcp2_conn_extend_max_offset*(conn: ptr ngtcp2_conn; datalen: uint64) {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_extend_max_offset extends max data offset by - ## |datalen|. This function only extends connection-level flow - ## control window. - ## ``` -proc ngtcp2_conn_extend_max_streams_bidi*(conn: ptr ngtcp2_conn; n: uint) {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_extend_max_streams_bidi extends the number of maximum - ## remote bidirectional streams that a remote endpoint can open by - ## |n|. - ## - ## The library does not increase maximum stream limit automatically. - ## The exception is when a stream is closed without - ## :member:ngtcp2_callbacks.stream_open callback being called. In - ## this case, stream limit is increased automatically. - ## ``` -proc ngtcp2_conn_extend_max_streams_uni*(conn: ptr ngtcp2_conn; n: uint) {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_extend_max_streams_uni extends the number of maximum - ## remote unidirectional streams that a remote endpoint can open by - ## |n|. - ## - ## The library does not increase maximum stream limit automatically. - ## The exception is when a stream is closed without - ## :member:ngtcp2_callbacks.stream_open callback being called. In - ## this case, stream limit is increased automatically. - ## ``` -proc ngtcp2_conn_get_dcid*(conn: ptr ngtcp2_conn): ptr ngtcp2_cid {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_dcid returns the non-NULL pointer to the current - ## Destination Connection ID. If no Destination Connection ID is - ## present, the return value is not NULL, and its :member:datalen - ## field is 0. - ## ``` -proc ngtcp2_conn_get_client_initial_dcid*(conn: ptr ngtcp2_conn): ptr ngtcp2_cid {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_client_initial_dcid returns the non-NULL pointer - ## to the Destination Connection ID that client sent in its Initial - ## packet. If the Destination Connection ID is not present, the - ## return value is not NULL, and its :member:datalen - ## field is 0. - ## ``` -proc ngtcp2_conn_get_scid*(conn: ptr ngtcp2_conn; dest: ptr ngtcp2_cid): uint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_scid writes the all Source Connection IDs which a - ## local endpoint has provided to a remote endpoint, and are not - ## retired in |dest|. If |dest| is NULL, this function does not write - ## anything, and returns the number of Source Connection IDs that - ## would otherwise be written to the provided buffer. The buffer - ## pointed by |dest| must have sizeof(:type:ngtcp2_cid) n bytes - ## available, where n is the return value of ngtcp2_conn_get_scid - ## with |dest| == NULL. - ## ``` -proc ngtcp2_conn_get_active_dcid*(conn: ptr ngtcp2_conn; - dest: ptr ngtcp2_cid_token): uint {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_active_dcid writes the all active Destination - ## Connection IDs and their tokens to |dest|. Before handshake - ## completes, this function returns 0. If |dest| is NULL, this - ## function does not write anything, and returns the number of - ## Destination Connection IDs that would otherwise be written to the - ## provided buffer. The buffer pointed by |dest| must have - ## sizeof(:type:ngtcp2_cid_token) n bytes available, where n is - ## the return value of ngtcp2_conn_get_active_dcid with |dest| == - ## NULL. - ## ``` -proc ngtcp2_conn_get_client_chosen_version*(conn: ptr ngtcp2_conn): uint32 {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_client_chosen_version returns the client chosen - ## version. - ## ``` -proc ngtcp2_conn_get_negotiated_version*(conn: ptr ngtcp2_conn): uint32 {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_negotiated_version returns the negotiated - ## version. - ## - ## Until the version is negotiated, this function returns 0. - ## ``` -proc ngtcp2_conn_tls_early_data_rejected*(conn: ptr ngtcp2_conn): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_tls_early_data_rejected tells |conn| that early data - ## was rejected by a server during TLS handshake, or client decided - ## not to attempt early data for some reason. |conn| discards the - ## following connection states: - ## - ## - Any opened streams. - ## - Stream identifier allocations. - ## - Max data extended by ngtcp2_conn_extend_max_offset. - ## - Max bidi streams extended by ngtcp2_conn_extend_max_streams_bidi. - ## - Max uni streams extended by ngtcp2_conn_extend_max_streams_uni. - ## - ## Application which wishes to retransmit early data, it has to open - ## streams, and send stream data again. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_CALLBACK_FAILURE - ## User callback failed - ## ``` -proc ngtcp2_conn_get_tls_early_data_rejected*(conn: ptr ngtcp2_conn): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_tls_early_data_rejected returns nonzero if - ## ngtcp2_conn_tls_early_data_rejected has been called. - ## ``` -proc ngtcp2_conn_get_conn_info_versioned*(conn: ptr ngtcp2_conn; - conn_info_version: cint; cinfo: ptr ngtcp2_conn_info) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_conn_info assigns connection statistics data to - ## |*cinfo|. - ## ``` -proc ngtcp2_conn_submit_crypto_data*(conn: ptr ngtcp2_conn; - encryption_level: ngtcp2_encryption_level; - data: ptr uint8; datalen: uint): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_submit_crypto_data submits crypto data |data| of - ## length |datalen| to the library for transmission. - ## |encryption_level| specifies the encryption level of data. - ## - ## The library makes a copy of the buffer pointed by |data| of length - ## |datalen|. Application can discard |data|. - ## ``` -proc ngtcp2_conn_submit_new_token*(conn: ptr ngtcp2_conn; token: ptr uint8; - tokenlen: uint): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_submit_new_token submits address validation token. - ## It is sent in NEW_TOKEN frame. Only server can call this function. - ## |tokenlen| must not be 0. - ## - ## This function makes a copy of the buffer pointed by |token| of - ## length |tokenlen|. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory. - ## ``` -proc ngtcp2_conn_set_local_addr*(conn: ptr ngtcp2_conn; `addr`: ptr ngtcp2_addr) {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_set_local_addr sets local endpoint address |addr| to - ## the current path of |conn|. This function is provided for testing - ## purpose only. - ## ``` -proc ngtcp2_conn_set_path_user_data*(conn: ptr ngtcp2_conn; - path_user_data: pointer) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_set_path_user_data sets the |path_user_data| to the - ## current path (see :member:ngtcp2_path.user_data). - ## ``` -proc ngtcp2_conn_get_path*(conn: ptr ngtcp2_conn): ptr ngtcp2_path {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_path returns the current path. - ## ``` -proc ngtcp2_conn_get_max_tx_udp_payload_size*(conn: ptr ngtcp2_conn): uint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_max_tx_udp_payload_size returns the maximum UDP - ## payload size that this local endpoint would send. This is the - ## value of :member:ngtcp2_settings.max_tx_udp_payload_size that is - ## passed to ngtcp2_conn_client_new or ngtcp2_conn_server_new. - ## ``` -proc ngtcp2_conn_get_path_max_tx_udp_payload_size*(conn: ptr ngtcp2_conn): uint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_path_max_tx_udp_payload_size returns the maximum - ## UDP payload size for the current path. If - ## :member:ngtcp2_settings.no_tx_udp_payload_size_shaping is set to - ## nonzero, this function is equivalent to - ## ngtcp2_conn_get_max_tx_udp_payload_size. Otherwise, it returns - ## the maximum UDP payload size that is probed for the current path. - ## ``` -proc ngtcp2_conn_initiate_immediate_migration*(conn: ptr ngtcp2_conn; - path: ptr ngtcp2_path; ts: ngtcp2_tstamp): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_initiate_immediate_migration starts connection - ## migration to the given |path|. Only client can initiate migration. - ## This function does immediate migration; while the path validation - ## is nonetheless performed, this function does not wait for it to - ## succeed. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_INVALID_STATE - ## Migration is disabled; or handshake is not yet confirmed; or - ## client is migrating to server's preferred address. - ## :macro:NGTCP2_ERR_CONN_ID_BLOCKED - ## No unused connection ID is available. - ## :macro:NGTCP2_ERR_INVALID_ARGUMENT - ## :member:local field of |path| equals the - ## current local address. - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory - ## ``` -proc ngtcp2_conn_initiate_migration*(conn: ptr ngtcp2_conn; - path: ptr ngtcp2_path; ts: ngtcp2_tstamp): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_initiate_migration starts connection migration to the - ## given |path|. Only client can initiate migration. Unlike - ## ngtcp2_conn_initiate_immediate_migration, this function starts a - ## path validation with a new path, and migrate to the new path after - ## successful path validation. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_INVALID_STATE - ## Migration is disabled; or handshake is not yet confirmed; or - ## client is migrating to server's preferred address. - ## :macro:NGTCP2_ERR_CONN_ID_BLOCKED - ## No unused connection ID is available. - ## :macro:NGTCP2_ERR_INVALID_ARGUMENT - ## :member:local field of |path| equals the - ## current local address. - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory - ## ``` -proc ngtcp2_conn_get_max_data_left*(conn: ptr ngtcp2_conn): uint64 {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_max_data_left returns the number of bytes that - ## this local endpoint can send in this connection without violating - ## connection-level flow control. - ## ``` -proc ngtcp2_conn_get_max_stream_data_left*(conn: ptr ngtcp2_conn; - stream_id: int64): uint64 {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_max_stream_data_left returns the number of bytes - ## that this local endpoint can send to a stream identified by - ## |stream_id| without violating stream-level flow control. If no - ## such stream is found, this function returns 0. - ## ``` -proc ngtcp2_conn_get_streams_bidi_left*(conn: ptr ngtcp2_conn): uint64 {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_streams_bidi_left returns the number of - ## bidirectional streams which the local endpoint can open without - ## violating stream concurrency limit. - ## ``` -proc ngtcp2_conn_get_streams_uni_left*(conn: ptr ngtcp2_conn): uint64 {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_streams_uni_left returns the number of - ## unidirectional streams which the local endpoint can open without - ## violating stream concurrency limit. - ## ``` -proc ngtcp2_conn_get_cwnd_left*(conn: ptr ngtcp2_conn): uint64 {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_cwnd_left returns the cwnd minus the number of - ## bytes in flight on the current path. If the former is smaller than - ## the latter, this function returns 0. - ## ``` -proc ngtcp2_conn_set_initial_crypto_ctx*(conn: ptr ngtcp2_conn; - ctx: ptr ngtcp2_crypto_ctx) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_set_initial_crypto_ctx sets |ctx| for Initial packet - ## encryption. The passed data will be passed to - ## :type:ngtcp2_encrypt, :type:ngtcp2_decrypt and - ## :type:ngtcp2_hp_mask callbacks. - ## ``` -proc ngtcp2_conn_get_initial_crypto_ctx*(conn: ptr ngtcp2_conn): ptr ngtcp2_crypto_ctx {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_initial_crypto_ctx returns - ## :type:ngtcp2_crypto_ctx object for Initial packet encryption. - ## ``` -proc ngtcp2_conn_set_crypto_ctx*(conn: ptr ngtcp2_conn; - ctx: ptr ngtcp2_crypto_ctx) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_set_crypto_ctx sets |ctx| for Handshake/1-RTT packet - ## encryption. The passed data will be passed to - ## :type:ngtcp2_encrypt, :type:ngtcp2_decrypt and - ## :type:ngtcp2_hp_mask callbacks. - ## ``` -proc ngtcp2_conn_get_crypto_ctx*(conn: ptr ngtcp2_conn): ptr ngtcp2_crypto_ctx {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_crypto_ctx returns :type:ngtcp2_crypto_ctx - ## object for Handshake/1-RTT packet encryption. - ## ``` -proc ngtcp2_conn_set_0rtt_crypto_ctx*(conn: ptr ngtcp2_conn; - ctx: ptr ngtcp2_crypto_ctx) {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_set_0rtt_crypto_ctx sets |ctx| for 0-RTT packet - ## encryption. The passed data will be passed to - ## :type:ngtcp2_encrypt, :type:ngtcp2_decrypt and - ## :type:ngtcp2_hp_mask callbacks. - ## ``` -proc ngtcp2_conn_get_0rtt_crypto_ctx*(conn: ptr ngtcp2_conn): ptr ngtcp2_crypto_ctx {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_0rtt_crypto_ctx returns :type:ngtcp2_crypto_ctx - ## object for 0-RTT packet encryption. - ## ``` -proc ngtcp2_conn_get_tls_native_handle*(conn: ptr ngtcp2_conn): pointer {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_tls_native_handle returns TLS native handle set - ## by ngtcp2_conn_set_tls_native_handle. - ## ``` -proc ngtcp2_conn_set_tls_native_handle*(conn: ptr ngtcp2_conn; - tls_native_handle: pointer) {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_set_tls_native_handle sets TLS native handle - ## |tls_native_handle| to |conn|. Internally, it is used as an opaque - ## pointer. - ## ``` -proc ngtcp2_conn_set_retry_aead*(conn: ptr ngtcp2_conn; - aead: ptr ngtcp2_crypto_aead; - aead_ctx: ptr ngtcp2_crypto_aead_ctx) {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_set_retry_aead sets |aead| and |aead_ctx| for Retry - ## integrity tag verification. |aead| must be AEAD_AES_128_GCM. - ## |aead_ctx| must be initialized with :macro:NGTCP2_RETRY_KEY as - ## encryption key. This function must be called if |conn| is - ## initialized as client. Server does not verify the tag, and has no - ## need to call this function. - ## - ## |conn| takes ownership of |aead_ctx|. - ## :member:ngtcp2_callbacks.delete_crypto_aead_ctx will be called to - ## delete this object when it is no longer used. - ## ``` -proc ngtcp2_ccerr_default*(ccerr: ptr ngtcp2_ccerr) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_ccerr_default initializes |ccerr| with the default values. - ## It sets the following fields: - ## - ## - :member:type = - ## :enum:ngtcp2_ccerr_type.NGTCP2_CCERR_TYPE_TRANSPORT - ## - :member:error_code = - ## :macro:NGTCP2_NO_ERROR. - ## - :member:frame_type = 0 - ## - :member:reason = NULL - ## - :member:reasonlen = 0 - ## ``` -proc ngtcp2_ccerr_set_transport_error*(ccerr: ptr ngtcp2_ccerr; - error_code: uint64; reason: ptr uint8; - reasonlen: uint) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_ccerr_set_transport_error sets :member:ccerr->type - ## to - ## :enum:ngtcp2_ccerr_type.NGTCP2_CCERR_TYPE_TRANSPORT, and - ## :member:ccerr->error_code to - ## |error_code|. |reason| is the reason phrase of length |reasonlen|. - ## This function does not make a copy of the reason phrase. - ## ``` -proc ngtcp2_ccerr_set_liberr*(ccerr: ptr ngtcp2_ccerr; liberr: cint; - reason: ptr uint8; reasonlen: uint) {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_ccerr_set_liberr sets type and error_code based on - ## |liberr|. - ## - ## |reason| is the reason phrase of length |reasonlen|. This function - ## does not make a copy of the reason phrase. - ## - ## If |liberr| is :macro:NGTCP2_ERR_RECV_VERSION_NEGOTIATION, - ## :member:ccerr->type is set to - ## :enum:ngtcp2_ccerr_type.NGTCP2_CCERR_TYPE_VERSION_NEGOTIATION, - ## and :member:ccerr->error_code to - ## :macro:NGTCP2_NO_ERROR. - ## - ## If |liberr| is :macro:NGTCP2_ERR_IDLE_CLOSE, :member:ccerr->type - ## is set to - ## :enum:ngtcp2_ccerr_type.NGTCP2_CCERR_TYPE_IDLE_CLOSE, and - ## :member:ccerr->error_code to - ## :macro:NGTCP2_NO_ERROR. - ## - ## If |liberr| is :macro:NGTCP2_ERR_DROP_CONN, :member:ccerr->type - ## is set to - ## :enum:ngtcp2_ccerr_type.NGTCP2_CCERR_TYPE_DROP_CONN, and - ## :member:ccerr->error_code to - ## :macro:NGTCP2_NO_ERROR. - ## - ## If |liberr| is :macro:NGTCP2_ERR_RETRY, :member:ccerr->type - ## is set to - ## :enum:ngtcp2_ccerr_type.NGTCP2_CCERR_TYPE_RETRY, and - ## :member:ccerr->error_type to - ## :macro:NGTCP2_NO_ERROR. - ## - ## Otherwise, :member:ccerr->type is set to - ## :enum:ngtcp2_ccerr_type.NGTCP2_CCERR_TYPE_TRANSPORT, and - ## :member:ccerr->error_code is set to an - ## error code inferred by |liberr| (see - ## ngtcp2_err_infer_quic_transport_error_code). - ## ``` -proc ngtcp2_ccerr_set_tls_alert*(ccerr: ptr ngtcp2_ccerr; tls_alert: uint8; - reason: ptr uint8; reasonlen: uint) {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_ccerr_set_tls_alert sets :member:ccerr->type - ## to - ## :enum:ngtcp2_ccerr_type.NGTCP2_CCERR_TYPE_TRANSPORT, and - ## :member:ccerr->error_code to bitwise-OR - ## of :macro:NGTCP2_CRYPTO_ERROR and |tls_alert|. |reason| is the - ## reason phrase of length |reasonlen|. This function does not make a - ## copy of the reason phrase. - ## ``` -proc ngtcp2_ccerr_set_application_error*(ccerr: ptr ngtcp2_ccerr; - error_code: uint64; reason: ptr uint8; reasonlen: uint) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_ccerr_set_application_error sets :member:ccerr->type - ## to - ## :enum:ngtcp2_ccerr_type.NGTCP2_CCERR_TYPE_APPLICATION, and - ## :member:ccerr->error_code to - ## |error_code|. |reason| is the reason phrase of length |reasonlen|. - ## This function does not make a copy of the reason phrase. - ## ``` -proc ngtcp2_conn_write_connection_close_versioned*(conn: ptr ngtcp2_conn; - path: ptr ngtcp2_path; pkt_info_version: cint; pi: ptr ngtcp2_pkt_info; - dest: ptr uint8; destlen: uint; ccerr: ptr ngtcp2_ccerr; ts: ngtcp2_tstamp): ngtcp2_ssize {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_write_connection_close writes a packet which contains - ## CONNECTION_CLOSE frame(s) (type 0x1c or 0x1d) in the buffer pointed - ## by |dest| whose capacity is |destlen|. - ## - ## For client, |destlen| should be at least - ## :macro:NGTCP2_MAX_UDP_PAYLOAD_SIZE. - ## - ## If |path| is not NULL, this function stores the network path - ## with which the packet should be sent. Each addr field must point - ## to the buffer which should be at least - ## sizeof(:type:ngtcp2_sockaddr_union) bytes long. The assignment - ## might not be done if nothing is written to |dest|. - ## - ## If |pi| is not NULL, this function stores packet metadata in it - ## if it succeeds. The metadata includes ECN markings. - ## - ## If :member:ccerr->type == - ## :enum:ngtcp2_ccerr_type.NGTCP2_CCERR_TYPE_TRANSPORT, this - ## function sends CONNECTION_CLOSE (type 0x1c) frame. If - ## :member:ccerr->type == - ## :enum:ngtcp2_ccerr_type.NGTCP2_CCERR_TYPE_APPLICATION, it sends - ## CONNECTION_CLOSE (type 0x1d) frame. Otherwise, it does not produce - ## any data, and returns 0. - ## - ## |destlen| could be shorten by some factors (e.g., server side - ## amplification limit). This function returns - ## :macro:NGTCP2_ERR_NOBUF if the resulting buffer is too small even - ## if the given buffer has enough space. - ## - ## This function must not be called from inside the callback - ## functions. - ## - ## At the moment, successful call to this function makes connection - ## close. We may change this behaviour in the future to allow - ## graceful shutdown. - ## - ## This function returns the number of bytes written in |dest| if it - ## succeeds, or one of the following negative error codes: - ## - ## :macro:NGTCP2_ERR_NOMEM - ## Out of memory - ## :macro:NGTCP2_ERR_NOBUF - ## Buffer is too small - ## :macro:NGTCP2_ERR_INVALID_STATE - ## The current state does not allow sending CONNECTION_CLOSE - ## frame. - ## :macro:NGTCP2_ERR_PKT_NUM_EXHAUSTED - ## Packet number is exhausted, and cannot send any more packet. - ## :macro:NGTCP2_ERR_CALLBACK_FAILURE - ## User callback failed - ## ``` -proc ngtcp2_conn_get_ccerr*(conn: ptr ngtcp2_conn): ptr ngtcp2_ccerr {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_ccerr returns the received connection close - ## error. If no connection error is received, it returns - ## :type:ngtcp2_ccerr that is initialized by ngtcp2_ccerr_default. - ## ``` -proc ngtcp2_conn_is_local_stream*(conn: ptr ngtcp2_conn; stream_id: int64): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_is_local_stream returns nonzero if |stream_id| - ## denotes a locally initiated stream. - ## ``` -proc ngtcp2_conn_is_server*(conn: ptr ngtcp2_conn): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_is_server returns nonzero if |conn| is initialized as - ## server. - ## ``` -proc ngtcp2_conn_after_retry*(conn: ptr ngtcp2_conn): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_after_retry returns nonzero if |conn| as a client has - ## received Retry packet from server, and successfully validated it. - ## ``` -proc ngtcp2_conn_set_stream_user_data*(conn: ptr ngtcp2_conn; stream_id: int64; - stream_user_data: pointer): cint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_set_stream_user_data sets |stream_user_data| to the - ## stream identified by |stream_id|. - ## - ## This function returns 0 if it succeeds, or one of the following - ## negative error codes: - ## - ## :macro:NGTCP2_ERR_STREAM_NOT_FOUND - ## Stream does not exist - ## ``` -proc ngtcp2_conn_update_pkt_tx_time*(conn: ptr ngtcp2_conn; ts: ngtcp2_tstamp) {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_update_pkt_tx_time sets the time instant of the next - ## packet transmission to pace packets. This function must be called - ## after (multiple invocation of) ngtcp2_conn_writev_stream. If - ## packet aggregation (e.g., packet batching, GSO) is used, call this - ## function after all aggregated datagrams are sent, which indicates - ## multiple invocation of ngtcp2_conn_writev_stream. - ## ``` -proc ngtcp2_conn_get_send_quantum*(conn: ptr ngtcp2_conn): uint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_send_quantum returns the maximum number of bytes - ## that can be sent in one go without packet spacing. - ## ``` -proc ngtcp2_conn_get_stream_loss_count*(conn: ptr ngtcp2_conn; stream_id: int64): uint {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_conn_get_stream_loss_count returns the number of packets - ## that contain STREAM frame for a stream identified by |stream_id| - ## and are declared to be lost. The number may include the spurious - ## losses. If no stream identified by |stream_id| is found, this - ## function returns 0. - ## ``` -proc ngtcp2_strerror*(liberr: cint): cstring {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_strerror returns the text representation of |liberr|. - ## |liberr| must be one of ngtcp2 library error codes (which is - ## defined as :macro:NGTCP2_ERR_* - ## macros). - ## ``` -proc ngtcp2_err_is_fatal*(liberr: cint): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_err_is_fatal returns nonzero if |liberr| is a fatal error. - ## |liberr| must be one of ngtcp2 library error codes (which is - ## defined as :macro:NGTCP2_ERR_* - ## macros). - ## ``` -proc ngtcp2_err_infer_quic_transport_error_code*(liberr: cint): uint64 {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_err_infer_quic_transport_error_code returns a QUIC - ## transport error code which corresponds to |liberr|. |liberr| must - ## be one of ngtcp2 library error codes (which is defined as - ## :macro:NGTCP2_ERR_* macros). - ## ``` -proc ngtcp2_addr_init*(dest: ptr ngtcp2_addr; `addr`: ptr ngtcp2_SockAddr; - addrlen: ngtcp2_socklen): ptr ngtcp2_addr {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_addr_init initializes |dest| with the given arguments and - ## returns |dest|. - ## ``` -proc ngtcp2_addr_copy_byte*(dest: ptr ngtcp2_addr; `addr`: ptr ngtcp2_SockAddr; - addrlen: ngtcp2_socklen) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_addr_copy_byte copies |addr| of length |addrlen| into the - ## buffer pointed by :member:dest->addr . - ## :member:dest->addrlen is updated to have - ## |addrlen|. This function assumes that :member:dest->addr - ## points to a buffer which has a sufficient - ## capacity to store the copy. - ## ``` -proc ngtcp2_path_storage_init*(ps: ptr ngtcp2_path_storage; - local_addr: ptr ngtcp2_SockAddr; - local_addrlen: ngtcp2_socklen; - remote_addr: ptr ngtcp2_SockAddr; - remote_addrlen: ngtcp2_socklen; - user_data: pointer) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_path_storage_init initializes |ps| with the given - ## arguments. This function copies |local_addr| and |remote_addr|. - ## ``` -proc ngtcp2_path_storage_zero*(ps: ptr ngtcp2_path_storage) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_path_storage_zero initializes |ps| with the zero length - ## addresses. - ## ``` -proc ngtcp2_settings_default_versioned*(settings_version: cint; - settings: ptr ngtcp2_settings) {. - importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_settings_default initializes |settings| with the default - ## values. First this function fills |settings| with 0, and set the - ## default value to the following fields: - ## - ## :type:cc_algo = - ## :enum:ngtcp2_cc_algo.NGTCP2_CC_ALGO_CUBIC - ## :type:initial_rtt = - ## :macro:NGTCP2_DEFAULT_INITIAL_RTT - ## :type:ack_thresh = 2 - ## :type:max_tx_udp_payload_size - ## = 1452 - ## :type:handshake_timeout = - ## UINT64_MAX - ## ``` -proc ngtcp2_transport_params_default_versioned*(transport_params_version: cint; - params: ptr ngtcp2_transport_params) {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_transport_params_default initializes |params| with the - ## default values. First this function fills |params| with 0, and set - ## the default value to the following fields: - ## - ## :type:max_udp_payload_size - ## = - ## :macro:NGTCP2_DEFAULT_MAX_RECV_UDP_PAYLOAD_SIZE - ## :type:ack_delay_exponent - ## = - ## :macro:NGTCP2_DEFAULT_ACK_DELAY_EXPONENT - ## :type:max_ack_delay = - ## :macro:NGTCP2_DEFAULT_MAX_ACK_DELAY - ## :type:active_connection_id_limit - ## = - ## :macro:NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT - ## ``` -proc ngtcp2_mem_default*(): ptr ngtcp2_mem {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_mem_default returns the default, system standard memory - ## allocator. - ## ``` -proc ngtcp2_version*(least_version: cint): ptr ngtcp2_info {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_version returns a pointer to a :type:ngtcp2_info struct - ## with version information about the run-time library in use. The - ## |least_version| argument can be set to a 24 bit numerical value for - ## the least accepted version number, and if the condition is not met, - ## this function will return a NULL. Pass in 0 to skip the - ## version checking. - ## ``` -proc ngtcp2_is_bidi_stream*(stream_id: int64): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_is_bidi_stream returns nonzero if |stream_id| denotes - ## bidirectional stream. - ## ``` -proc ngtcp2_path_copy*(dest: ptr ngtcp2_path; src: ptr ngtcp2_path) {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_path_copy copies |src| into |dest|. This function assumes - ## that |dest| has enough buffer to store the deep copy of - ## :member:src->local and :member:src->remote - ## . - ## ``` -proc ngtcp2_path_eq*(a: ptr ngtcp2_path; b: ptr ngtcp2_path): cint {.importc, - cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_path_eq returns nonzero if |a| and |b| shares the same - ## local and remote addresses. - ## ``` -proc ngtcp2_is_supported_version*(version: uint32): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_is_supported_version returns nonzero if the library - ## supports QUIC version |version|. - ## ``` -proc ngtcp2_is_reserved_version*(version: uint32): cint {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_is_reserved_version returns nonzero if |version| is a - ## reserved version. - ## ``` -proc ngtcp2_select_version*(preferred_versions: ptr uint32; - preferred_versionslen: uint; - offered_versions: ptr uint32; - offered_versionslen: uint): uint32 {.importc, cdecl.} - ## ``` - ## @function - ## - ## ngtcp2_select_version selects and returns a version from the - ## version set |offered_versions| of |offered_versionslen| elements. - ## |preferred_versions| of |preferred_versionslen| elements specifies - ## the preference of versions, which is sorted in the order of - ## preference. All versions included in |preferred_versions| must be - ## supported by the library, that is, passing any version in the array - ## to ngtcp2_is_supported_version must return nonzero. This - ## function is intended to be used by client when it receives Version - ## Negotiation packet. If no version is selected, this function - ## returns 0. - ## ``` + enum_ngtcp2_pkt_type_536871390* {.size: sizeof(cuint).} = enum + NGTCP2_PKT_INITIAL = 16, NGTCP2_PKT_0RTT = 17, NGTCP2_PKT_HANDSHAKE = 18, + NGTCP2_PKT_RETRY = 19, NGTCP2_PKT_1RTT = 64, + NGTCP2_PKT_VERSION_NEGOTIATION = 128, NGTCP2_PKT_STATELESS_RESET = 129 +type + enum_ngtcp2_path_validation_result_536871394* {.size: sizeof(cuint).} = enum + NGTCP2_PATH_VALIDATION_RESULT_SUCCESS = 0, + NGTCP2_PATH_VALIDATION_RESULT_FAILURE = 1, + NGTCP2_PATH_VALIDATION_RESULT_ABORTED = 2 +type + enum_ngtcp2_cc_algo_536871461* {.size: sizeof(cuint).} = enum + NGTCP2_CC_ALGO_RENO = 0, NGTCP2_CC_ALGO_CUBIC = 1, NGTCP2_CC_ALGO_BBR = 2 +type + enum_ngtcp2_token_type_536871473* {.size: sizeof(cuint).} = enum + NGTCP2_TOKEN_TYPE_UNKNOWN = 0, NGTCP2_TOKEN_TYPE_RETRY = 1, + NGTCP2_TOKEN_TYPE_NEW_TOKEN = 2 +type + enum_ngtcp2_encryption_level_536871527* {.size: sizeof(cuint).} = enum + NGTCP2_ENCRYPTION_LEVEL_INITIAL = 0, NGTCP2_ENCRYPTION_LEVEL_HANDSHAKE = 1, + NGTCP2_ENCRYPTION_LEVEL_1RTT = 2, NGTCP2_ENCRYPTION_LEVEL_0RTT = 3 +type + enum_ngtcp2_connection_id_status_type_536871575* {.size: sizeof(cuint).} = enum + NGTCP2_CONNECTION_ID_STATUS_TYPE_ACTIVATE = 0, + NGTCP2_CONNECTION_ID_STATUS_TYPE_DEACTIVATE = 1 +type + enum_ngtcp2_ccerr_type_536871611* {.size: sizeof(cuint).} = enum + NGTCP2_CCERR_TYPE_TRANSPORT = 0, NGTCP2_CCERR_TYPE_APPLICATION = 1, + NGTCP2_CCERR_TYPE_VERSION_NEGOTIATION = 2, NGTCP2_CCERR_TYPE_IDLE_CLOSE = 3, + NGTCP2_CCERR_TYPE_DROP_CONN = 4, NGTCP2_CCERR_TYPE_RETRY = 5 +type + enum_en_ptls_hash_final_mode_t_536871675* {.size: sizeof(cuint).} = enum + PTLS_HASH_FINAL_MODE_FREE = 0, PTLS_HASH_FINAL_MODE_RESET = 1, + PTLS_HASH_FINAL_MODE_SNAPSHOT = 2 +type + enum_en_ptls_early_data_acceptance_t_536871777* {.size: sizeof(cuint).} = enum + PTLS_EARLY_DATA_ACCEPTANCE_UNKNOWN = 0, PTLS_EARLY_DATA_REJECTED = 1, + PTLS_EARLY_DATA_ACCEPTED = 2 +when not declared(struct_st_ptls_t): + type + struct_st_ptls_t* = object +else: + static : + hint("Declaration of " & "struct_st_ptls_t" & + " already exists, not redeclaring") +when not declared(UINT64_MAX): + type + UINT64_MAX* = object +else: + static : + hint("Declaration of " & "UINT64_MAX" & " already exists, not redeclaring") +when not declared(struct_st_ptls_key_schedule_t): + type + struct_st_ptls_key_schedule_t* = object +else: + static : + hint("Declaration of " & "struct_st_ptls_key_schedule_t" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_conn): + type + struct_ngtcp2_conn* = object +else: + static : + hint("Declaration of " & "struct_ngtcp2_conn" & + " already exists, not redeclaring") +when not declared(struct_x509_store_st): + type + struct_x509_store_st* = object +else: + static : + hint("Declaration of " & "struct_x509_store_st" & + " already exists, not redeclaring") +when not declared(struct_x509_st): + type + struct_x509_st* = object +else: + static : + hint("Declaration of " & "struct_x509_st" & + " already exists, not redeclaring") +when not declared(struct_evp_md_st): + type + struct_evp_md_st* = object +else: + static : + hint("Declaration of " & "struct_evp_md_st" & + " already exists, not redeclaring") +when not declared(NGTCP2_PROTO_VER_V1): + type + NGTCP2_PROTO_VER_V1* = object +else: + static : + hint("Declaration of " & "NGTCP2_PROTO_VER_V1" & + " already exists, not redeclaring") +when not declared(compiler_thread): + type + compiler_thread* = object +else: + static : + hint("Declaration of " & "compiler_thread" & + " already exists, not redeclaring") +when not declared(struct_evp_pkey_st): + type + struct_evp_pkey_st* = object +else: + static : + hint("Declaration of " & "struct_evp_pkey_st" & + " already exists, not redeclaring") +when not declared(struct_evp_cipher_ctx_st): + type + struct_evp_cipher_ctx_st* = object +else: + static : + hint("Declaration of " & "struct_evp_cipher_ctx_st" & + " already exists, not redeclaring") +when not declared(struct_stack_st_X509): + type + struct_stack_st_X509* = object +else: + static : + hint("Declaration of " & "struct_stack_st_X509" & + " already exists, not redeclaring") +when not declared(struct_hmac_ctx_st): + type + struct_hmac_ctx_st* = object +else: + static : + hint("Declaration of " & "struct_hmac_ctx_st" & + " already exists, not redeclaring") +when not declared(struct_evp_mac_ctx_st): + type + struct_evp_mac_ctx_st* = object +else: + static : + hint("Declaration of " & "struct_evp_mac_ctx_st" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_traffic_protection_t): + type + struct_st_ptls_traffic_protection_t* = object +else: + static : + hint("Declaration of " & "struct_st_ptls_traffic_protection_t" & + " already exists, not redeclaring") +type + ngtcp2_ssize_536871370 = ptrdiff_t_536871373 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:98:19 + ptrdiff_t_536871372 = clong ## Generated based on /usr/include/clang/18.1.3/include/__stddef_ptrdiff_t.h:18:26 + ngtcp2_malloc_536871374 = proc (a0: csize_t; a1: pointer): pointer {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:107:17 + ngtcp2_free_536871376 = proc (a0: pointer; a1: pointer): void {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:116:16 + ngtcp2_calloc_536871378 = proc (a0: csize_t; a1: csize_t; a2: pointer): pointer {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:125:17 + ngtcp2_realloc_536871380 = proc (a0: pointer; a1: csize_t; a2: pointer): pointer {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:134:17 + struct_ngtcp2_mem_536871382 {.pure, inheritable, bycopy.} = object + user_data*: pointer ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:180:16 + malloc*: ngtcp2_malloc_536871375 + free*: ngtcp2_free_536871377 + calloc*: ngtcp2_calloc_536871379 + realloc*: ngtcp2_realloc_536871381 + ngtcp2_mem_536871384 = struct_ngtcp2_mem_536871383 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:206:3 + struct_ngtcp2_pkt_info_536871386 {.pure, inheritable, bycopy.} = object + ecn* {.align(8'i64).}: uint8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:481:32 + ngtcp2_pkt_info_536871388 = struct_ngtcp2_pkt_info_536871387 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:489:3 + ngtcp2_pkt_type_536871392 = enum_ngtcp2_pkt_type_536871391 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:855:3 + ngtcp2_path_validation_result_536871396 = enum_ngtcp2_path_validation_result_536871395 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1036:3 + ngtcp2_tstamp_536871398 = uint64 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1045:18 + ngtcp2_duration_536871400 = uint64 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1054:18 + struct_ngtcp2_cid_536871402 {.pure, inheritable, bycopy.} = object + datalen*: csize_t ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1061:16 + data*: array[20'i64, uint8] + ngtcp2_cid_536871404 = struct_ngtcp2_cid_536871403 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1070:3 + struct_ngtcp2_vec_536871406 {.pure, inheritable, bycopy.} = object + base*: ptr uint8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1078:16 + len*: csize_t + ngtcp2_vec_536871408 = struct_ngtcp2_vec_536871407 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1088:3 + struct_ngtcp2_pkt_hd_536871410 {.pure, inheritable, bycopy.} = object + dcid*: ngtcp2_cid_536871405 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1113:16 + scid*: ngtcp2_cid_536871405 + pkt_num*: int64 + token*: ptr uint8 + tokenlen*: csize_t + pkt_numlen*: csize_t + len*: csize_t + version*: uint32 + type_field*: uint8 + flags*: uint8 + ngtcp2_pkt_hd_536871412 = struct_ngtcp2_pkt_hd_536871411 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1162:3 + struct_ngtcp2_pkt_stateless_reset_536871414 {.pure, inheritable, bycopy.} = object + stateless_reset_token*: array[16'i64, uint8] ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1169:16 + rand*: ptr uint8 + randlen*: csize_t + ngtcp2_pkt_stateless_reset_536871416 = struct_ngtcp2_pkt_stateless_reset_536871415 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1183:3 + ngtcp2_sockaddr_536871418 = struct_sockaddr_536871421 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1285:25 + struct_sockaddr_536871420 {.pure, inheritable, bycopy.} = object + sa_family*: sa_family_t_536871842 ## Generated based on /usr/include/x86_64-linux-gnu/bits/socket.h:183:8 + sa_data*: array[14'i64, cschar] + ngtcp2_sockaddr_in_536871422 = struct_sockaddr_in_536871425 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1293:28 + struct_sockaddr_in_536871424 {.pure, inheritable, bycopy.} = object + sin_family*: sa_family_t_536871842 ## Generated based on /usr/include/netinet/in.h:247:8 + sin_port*: in_port_t_536871844 + sin_addr*: struct_in_addr_536871798 + sin_zero*: array[8'i64, uint8] + ngtcp2_sockaddr_in6_536871426 = struct_sockaddr_in6_536871429 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1301:29 + struct_sockaddr_in6_536871428 {.pure, inheritable, bycopy.} = object + sin6_family*: sa_family_t_536871842 ## Generated based on /usr/include/netinet/in.h:262:8 + sin6_port*: in_port_t_536871844 + sin6_flowinfo*: uint32 + sin6_addr*: struct_in6_addr_536871792 + sin6_scope_id*: uint32 + ngtcp2_socklen_536871430 = socklen_t_536871433 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1309:19 + socklen_t_536871432 = compiler_socklen_t_536871846 ## Generated based on /usr/include/x86_64-linux-gnu/bits/socket.h:33:21 + union_ngtcp2_sockaddr_union_536871434 {.union, bycopy.} = object + sa*: ngtcp2_sockaddr_536871419 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1318:15 + in_field*: ngtcp2_sockaddr_in_536871423 + in6*: ngtcp2_sockaddr_in6_536871427 + ngtcp2_sockaddr_union_536871436 = union_ngtcp2_sockaddr_union_536871435 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1322:3 + struct_ngtcp2_preferred_addr_536871438 {.pure, inheritable, bycopy.} = object + cid*: ngtcp2_cid_536871405 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1330:16 + ipv4*: ngtcp2_sockaddr_in_536871423 + ipv6*: ngtcp2_sockaddr_in6_536871427 + ipv4_present*: uint8 + ipv6_present*: uint8 + stateless_reset_token*: array[16'i64, uint8] + ngtcp2_preferred_addr_536871440 = struct_ngtcp2_preferred_addr_536871439 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1357:3 + struct_ngtcp2_version_info_536871442 {.pure, inheritable, bycopy.} = object + chosen_version*: uint32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1365:16 + available_versions*: ptr uint8 + available_versionslen*: csize_t + ngtcp2_version_info_536871444 = struct_ngtcp2_version_info_536871443 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1382:3 + struct_ngtcp2_transport_params_536871446 {.pure, inheritable, bycopy.} = object + preferred_addr*: ngtcp2_preferred_addr_536871441 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1393:16 + original_dcid*: ngtcp2_cid_536871405 + initial_scid*: ngtcp2_cid_536871405 + retry_scid*: ngtcp2_cid_536871405 + initial_max_stream_data_bidi_local*: uint64 + initial_max_stream_data_bidi_remote*: uint64 + initial_max_stream_data_uni*: uint64 + initial_max_data*: uint64 + initial_max_streams_bidi*: uint64 + initial_max_streams_uni*: uint64 + max_idle_timeout*: ngtcp2_duration_536871401 + max_udp_payload_size*: uint64 + active_connection_id_limit*: uint64 + ack_delay_exponent*: uint64 + max_ack_delay*: ngtcp2_duration_536871401 + max_datagram_frame_size*: uint64 + stateless_reset_token_present*: uint8 + disable_active_migration*: uint8 + original_dcid_present*: uint8 + initial_scid_present*: uint8 + retry_scid_present*: uint8 + preferred_addr_present*: uint8 + stateless_reset_token*: array[16'i64, uint8] + grease_quic_bit*: uint8 + version_info*: ngtcp2_version_info_536871445 + version_info_present*: uint8 + ngtcp2_transport_params_536871448 = struct_ngtcp2_transport_params_536871447 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1553:3 + struct_ngtcp2_conn_info_536871450 {.pure, inheritable, bycopy.} = object + latest_rtt*: ngtcp2_duration_536871401 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1563:16 + min_rtt*: ngtcp2_duration_536871401 + smoothed_rtt*: ngtcp2_duration_536871401 + rttvar*: ngtcp2_duration_536871401 + cwnd*: uint64 + ssthresh*: uint64 + bytes_in_flight*: uint64 + ngtcp2_conn_info_536871459 = struct_ngtcp2_conn_info_536871451 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1595:3 + ngtcp2_cc_algo_536871463 = enum_ngtcp2_cc_algo_536871462 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1615:3 + ngtcp2_printf_536871465 = proc (a0: pointer; a1: cstring): void {.cdecl, + varargs.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1624:16 + struct_ngtcp2_rand_ctx_536871467 {.pure, inheritable, bycopy.} = object + native_handle*: pointer ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1654:16 + ngtcp2_rand_ctx_536871469 = struct_ngtcp2_rand_ctx_536871468 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1660:3 + ngtcp2_qlog_write_536871471 = proc (a0: pointer; a1: uint32; a2: pointer; + a3: csize_t): void {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1671:16 + ngtcp2_token_type_536871475 = enum_ngtcp2_token_type_536871474 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1695:3 + struct_ngtcp2_settings_536871477 {.pure, inheritable, bycopy.} = object + qlog_write*: ngtcp2_qlog_write_536871472 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1706:16 + cc_algo*: ngtcp2_cc_algo_536871464 + initial_ts*: ngtcp2_tstamp_536871399 + initial_rtt*: ngtcp2_duration_536871401 + log_printf*: ngtcp2_printf_536871466 + max_tx_udp_payload_size*: csize_t + token*: ptr uint8 + tokenlen*: csize_t + token_type*: ngtcp2_token_type_536871476 + rand_ctx*: ngtcp2_rand_ctx_536871470 + max_window*: uint64 + max_stream_window*: uint64 + ack_thresh*: csize_t + no_tx_udp_payload_size_shaping*: uint8 + handshake_timeout*: ngtcp2_duration_536871401 + preferred_versions*: ptr uint32 + preferred_versionslen*: csize_t + available_versions*: ptr uint32 + available_versionslen*: csize_t + original_version*: uint32 + no_pmtud*: uint8 + initial_pkt_num*: uint32 + pmtud_probes*: ptr uint16 + pmtud_probeslen*: csize_t + ngtcp2_settings_536871479 = struct_ngtcp2_settings_536871478 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1912:3 + struct_ngtcp2_addr_536871481 {.pure, inheritable, bycopy.} = object + addr_field*: ptr ngtcp2_sockaddr_536871419 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1919:16 + addrlen*: ngtcp2_socklen_536871431 + ngtcp2_addr_536871483 = struct_ngtcp2_addr_536871482 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1930:3 + struct_ngtcp2_path_536871485 {.pure, inheritable, bycopy.} = object + local*: ngtcp2_addr_536871484 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1938:16 + remote*: ngtcp2_addr_536871484 + user_data*: pointer + ngtcp2_path_536871487 = struct_ngtcp2_path_536871486 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1962:3 + struct_ngtcp2_path_storage_536871489 {.pure, inheritable, bycopy.} = object + path*: ngtcp2_path_536871488 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1970:16 + local_addrbuf*: ngtcp2_sockaddr_union_536871437 + remote_addrbuf*: ngtcp2_sockaddr_union_536871437 + ngtcp2_path_storage_536871491 = struct_ngtcp2_path_storage_536871490 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1983:3 + struct_ngtcp2_crypto_md_536871493 {.pure, inheritable, bycopy.} = object + native_handle*: pointer ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1991:16 + ngtcp2_crypto_md_536871495 = struct_ngtcp2_crypto_md_536871494 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1997:3 + struct_ngtcp2_crypto_aead_536871497 {.pure, inheritable, bycopy.} = object + native_handle*: pointer ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2004:16 + max_overhead*: csize_t + ngtcp2_crypto_aead_536871499 = struct_ngtcp2_crypto_aead_536871498 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2015:3 + struct_ngtcp2_crypto_cipher_536871501 {.pure, inheritable, bycopy.} = object + native_handle*: pointer ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2023:16 + ngtcp2_crypto_cipher_536871503 = struct_ngtcp2_crypto_cipher_536871502 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2029:3 + struct_ngtcp2_crypto_aead_ctx_536871505 {.pure, inheritable, bycopy.} = object + native_handle*: pointer ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2039:16 + ngtcp2_crypto_aead_ctx_536871507 = struct_ngtcp2_crypto_aead_ctx_536871506 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2045:3 + struct_ngtcp2_crypto_cipher_ctx_536871509 {.pure, inheritable, bycopy.} = object + native_handle*: pointer ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2055:16 + ngtcp2_crypto_cipher_ctx_536871511 = struct_ngtcp2_crypto_cipher_ctx_536871510 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2061:3 + struct_ngtcp2_crypto_ctx_536871513 {.pure, inheritable, bycopy.} = object + aead*: ngtcp2_crypto_aead_536871500 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2073:16 + md*: ngtcp2_crypto_md_536871496 + hp*: ngtcp2_crypto_cipher_536871504 + max_encryption*: uint64 + max_decryption_failure*: uint64 + ngtcp2_crypto_ctx_536871515 = struct_ngtcp2_crypto_ctx_536871514 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2096:3 + struct_ngtcp2_version_cid_536871517 {.pure, inheritable, bycopy.} = object + version*: uint32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2198:16 + dcid*: ptr uint8 + dcidlen*: csize_t + scid*: ptr uint8 + scidlen*: csize_t + ngtcp2_version_cid_536871519 = struct_ngtcp2_version_cid_536871518 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2221:3 + ngtcp2_conn_536871521 = struct_ngtcp2_conn ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2391:28 + ngtcp2_client_initial_536871523 = proc (a0: ptr ngtcp2_conn_536871522; + a1: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2411:15 + ngtcp2_recv_client_initial_536871525 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ptr ngtcp2_cid_536871405; a2: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2428:15 + ngtcp2_encryption_level_536871529 = enum_ngtcp2_encryption_level_536871528 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2456:3 + ngtcp2_recv_crypto_data_536871531 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ngtcp2_encryption_level_536871530; a2: uint64; a3: ptr uint8; + a4: csize_t; a5: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2493:15 + ngtcp2_handshake_completed_536871533 = proc (a0: ptr ngtcp2_conn_536871522; + a1: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2508:15 + ngtcp2_handshake_confirmed_536871535 = proc (a0: ptr ngtcp2_conn_536871522; + a1: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2521:15 + ngtcp2_recv_version_negotiation_536871537 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ptr ngtcp2_pkt_hd_536871413; a2: ptr uint32; a3: csize_t; a4: pointer): cint {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2536:15 + ngtcp2_recv_retry_536871539 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ptr ngtcp2_pkt_hd_536871413; + a2: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2559:15 + ngtcp2_encrypt_536871541 = proc (a0: ptr uint8; a1: ptr ngtcp2_crypto_aead_536871500; + a2: ptr ngtcp2_crypto_aead_ctx_536871508; + a3: ptr uint8; a4: csize_t; a5: ptr uint8; + a6: csize_t; a7: ptr uint8; a8: csize_t): cint {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2584:15 + ngtcp2_decrypt_536871543 = proc (a0: ptr uint8; a1: ptr ngtcp2_crypto_aead_536871500; + a2: ptr ngtcp2_crypto_aead_ctx_536871508; + a3: ptr uint8; a4: csize_t; a5: ptr uint8; + a6: csize_t; a7: ptr uint8; a8: csize_t): cint {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2613:15 + ngtcp2_hp_mask_536871545 = proc (a0: ptr uint8; a1: ptr ngtcp2_crypto_cipher_536871504; + a2: ptr ngtcp2_crypto_cipher_ctx_536871512; + a3: ptr uint8): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2642:15 + ngtcp2_recv_stream_data_536871547 = proc (a0: ptr ngtcp2_conn_536871522; + a1: uint32; a2: int64; a3: uint64; a4: ptr uint8; a5: csize_t; + a6: pointer; a7: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2698:15 + ngtcp2_stream_open_536871549 = proc (a0: ptr ngtcp2_conn_536871522; a1: int64; + a2: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2715:15 + ngtcp2_stream_close_536871551 = proc (a0: ptr ngtcp2_conn_536871522; + a1: uint32; a2: int64; a3: uint64; + a4: pointer; a5: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2764:15 + ngtcp2_stream_reset_536871553 = proc (a0: ptr ngtcp2_conn_536871522; + a1: int64; a2: uint64; a3: uint64; + a4: pointer; a5: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2778:15 + ngtcp2_acked_stream_data_offset_536871555 = proc (a0: ptr ngtcp2_conn_536871522; + a1: int64; a2: uint64; a3: uint64; a4: pointer; a5: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2804:15 + ngtcp2_recv_stateless_reset_536871557 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ptr ngtcp2_pkt_stateless_reset_536871417; a2: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2819:15 + ngtcp2_extend_max_streams_536871559 = proc (a0: ptr ngtcp2_conn_536871522; + a1: uint64; a2: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2835:15 + ngtcp2_extend_max_stream_data_536871561 = proc (a0: ptr ngtcp2_conn_536871522; + a1: int64; a2: uint64; a3: pointer; a4: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2850:15 + ngtcp2_rand_536871563 = proc (a0: ptr uint8; a1: csize_t; + a2: ptr ngtcp2_rand_ctx_536871470): void {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2863:16 + ngtcp2_get_new_connection_id_536871565 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ptr ngtcp2_cid_536871405; a2: ptr uint8; a3: csize_t; a4: pointer): cint {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2882:15 + ngtcp2_remove_connection_id_536871567 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ptr ngtcp2_cid_536871405; a2: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2899:15 + ngtcp2_update_key_536871569 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ptr uint8; a2: ptr uint8; + a3: ptr ngtcp2_crypto_aead_ctx_536871508; + a4: ptr uint8; + a5: ptr ngtcp2_crypto_aead_ctx_536871508; + a6: ptr uint8; a7: ptr uint8; + a8: ptr uint8; a9: csize_t; a10: pointer): cint {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2927:15 + ngtcp2_path_validation_536871571 = proc (a0: ptr ngtcp2_conn_536871522; + a1: uint32; a2: ptr ngtcp2_path_536871488; a3: ptr ngtcp2_path_536871488; + a4: ngtcp2_path_validation_result_536871397; a5: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2984:15 + ngtcp2_select_preferred_addr_536871573 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ptr ngtcp2_path_536871488; a2: ptr ngtcp2_preferred_addr_536871441; + a3: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3016:15 + ngtcp2_connection_id_status_type_536871577 = enum_ngtcp2_connection_id_status_type_536871576 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3039:3 + ngtcp2_connection_id_status_536871579 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ngtcp2_connection_id_status_type_536871578; a2: uint64; + a3: ptr ngtcp2_cid_536871405; a4: ptr uint8; a5: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3058:15 + ngtcp2_recv_new_token_536871581 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ptr uint8; a2: csize_t; a3: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3075:15 + ngtcp2_delete_crypto_aead_ctx_536871583 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ptr ngtcp2_crypto_aead_ctx_536871508; a2: pointer): void {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3086:16 + ngtcp2_delete_crypto_cipher_ctx_536871585 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ptr ngtcp2_crypto_cipher_ctx_536871512; a2: pointer): void {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3098:16 + ngtcp2_recv_datagram_536871587 = proc (a0: ptr ngtcp2_conn_536871522; + a1: uint32; a2: ptr uint8; a3: csize_t; a4: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3138:15 + ngtcp2_ack_datagram_536871589 = proc (a0: ptr ngtcp2_conn_536871522; + a1: uint64; a2: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3153:15 + ngtcp2_lost_datagram_536871591 = proc (a0: ptr ngtcp2_conn_536871522; + a1: uint64; a2: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3169:15 + ngtcp2_get_path_challenge_data_536871593 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ptr uint8; a2: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3185:15 + ngtcp2_stream_stop_sending_536871595 = proc (a0: ptr ngtcp2_conn_536871522; + a1: int64; a2: uint64; a3: pointer; a4: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3201:15 + ngtcp2_version_negotiation_536871597 = proc (a0: ptr ngtcp2_conn_536871522; + a1: uint32; a2: ptr ngtcp2_cid_536871405; a3: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3224:15 + ngtcp2_recv_key_536871599 = proc (a0: ptr ngtcp2_conn_536871522; + a1: ngtcp2_encryption_level_536871530; + a2: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3238:15 + ngtcp2_tls_early_data_rejected_536871601 = proc (a0: ptr ngtcp2_conn_536871522; + a1: pointer): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3252:15 + struct_ngtcp2_callbacks_536871603 {.pure, inheritable, bycopy.} = object + client_initial*: ngtcp2_client_initial_536871524 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3263:16 + recv_client_initial*: ngtcp2_recv_client_initial_536871526 + recv_crypto_data*: ngtcp2_recv_crypto_data_536871532 + handshake_completed*: ngtcp2_handshake_completed_536871534 + recv_version_negotiation*: ngtcp2_recv_version_negotiation_536871538 + encrypt*: ngtcp2_encrypt_536871542 + decrypt*: ngtcp2_decrypt_536871544 + hp_mask*: ngtcp2_hp_mask_536871546 + recv_stream_data*: ngtcp2_recv_stream_data_536871548 + acked_stream_data_offset*: ngtcp2_acked_stream_data_offset_536871556 + stream_open*: ngtcp2_stream_open_536871550 + stream_close*: ngtcp2_stream_close_536871552 + recv_stateless_reset*: ngtcp2_recv_stateless_reset_536871558 + recv_retry*: ngtcp2_recv_retry_536871540 + extend_max_local_streams_bidi*: ngtcp2_extend_max_streams_536871560 + extend_max_local_streams_uni*: ngtcp2_extend_max_streams_536871560 + rand*: ngtcp2_rand_536871564 + get_new_connection_id*: ngtcp2_get_new_connection_id_536871566 + remove_connection_id*: ngtcp2_remove_connection_id_536871568 + update_key*: ngtcp2_update_key_536871570 + path_validation*: ngtcp2_path_validation_536871572 + select_preferred_addr*: ngtcp2_select_preferred_addr_536871574 + stream_reset*: ngtcp2_stream_reset_536871554 + extend_max_remote_streams_bidi*: ngtcp2_extend_max_streams_536871560 + extend_max_remote_streams_uni*: ngtcp2_extend_max_streams_536871560 + extend_max_stream_data*: ngtcp2_extend_max_stream_data_536871562 + dcid_status*: ngtcp2_connection_id_status_536871580 + handshake_confirmed*: ngtcp2_handshake_confirmed_536871536 + recv_new_token*: ngtcp2_recv_new_token_536871582 + delete_crypto_aead_ctx*: ngtcp2_delete_crypto_aead_ctx_536871584 + delete_crypto_cipher_ctx*: ngtcp2_delete_crypto_cipher_ctx_536871586 + recv_datagram*: ngtcp2_recv_datagram_536871588 + ack_datagram*: ngtcp2_ack_datagram_536871590 + lost_datagram*: ngtcp2_lost_datagram_536871592 + get_path_challenge_data*: ngtcp2_get_path_challenge_data_536871594 + stream_stop_sending*: ngtcp2_stream_stop_sending_536871596 + version_negotiation*: ngtcp2_version_negotiation_536871598 + recv_rx_key*: ngtcp2_recv_key_536871600 + recv_tx_key*: ngtcp2_recv_key_536871600 + tls_early_data_rejected*: ngtcp2_tls_early_data_rejected_536871602 + ngtcp2_callbacks_536871605 = struct_ngtcp2_callbacks_536871604 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3521:3 + struct_ngtcp2_cid_token_536871607 {.pure, inheritable, bycopy.} = object + seq*: uint64 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:4820:16 + cid*: ngtcp2_cid_536871405 + ps*: ngtcp2_path_storage_536871492 + token*: array[16'i64, uint8] + token_present*: uint8 + ngtcp2_cid_token_536871609 = struct_ngtcp2_cid_token_536871608 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:4844:3 + ngtcp2_ccerr_type_536871613 = enum_ngtcp2_ccerr_type_536871612 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:5245:3 + struct_ngtcp2_ccerr_536871615 {.pure, inheritable, bycopy.} = object + type_field*: ngtcp2_ccerr_type_536871614 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:5253:16 + error_code*: uint64 + frame_type*: uint64 + reason*: ptr uint8 + reasonlen*: csize_t + ngtcp2_ccerr_536871617 = struct_ngtcp2_ccerr_536871616 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:5281:3 + struct_ngtcp2_info_536871619 {.pure, inheritable, bycopy.} = object + age*: cint ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:5675:16 + version_num*: cint + version_str*: cstring + ngtcp2_info_536871621 = struct_ngtcp2_info_536871620 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:5693:3 + ngtcp2_crypto_conn_ref_536871623 = struct_ngtcp2_crypto_conn_ref_536871626 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:950:3 + struct_ngtcp2_crypto_conn_ref_536871625 {.pure, inheritable, bycopy.} = object + get_conn*: ngtcp2_crypto_get_conn_536871628 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:940:16 + user_data*: pointer + ngtcp2_crypto_get_conn_536871627 = proc (a0: ptr ngtcp2_crypto_conn_ref_536871624): ptr ngtcp2_conn_536871522 {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:930:24 + ptls_t_536871629 = struct_st_ptls_t ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:323:26 + ptls_context_t_536871631 = struct_st_ptls_context_t_536871634 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:324:34 + struct_st_ptls_context_t_certificates_t {.pure, inheritable, bycopy.} = object + list*: ptr ptls_iovec_t_536871640 + count*: csize_t + struct_st_ptls_context_t_pre_shared_key_t {.pure, inheritable, bycopy.} = object + identity*: ptls_iovec_t_536871640 + secret*: ptls_iovec_t_536871640 + hash*: ptr ptls_hash_algorithm_t_536871686 + struct_st_ptls_context_t_ech_t_client_t {.pure, inheritable, bycopy.} = object + ciphers*: ptr ptr ptls_hpke_cipher_suite_t_536871706 + kems*: ptr ptr ptls_hpke_kem_t_536871698 + struct_st_ptls_context_t_ech_t_server_t {.pure, inheritable, bycopy.} = object + create_opener*: ptr ptls_ech_create_opener_t_536871772 + retry_configs*: ptls_iovec_t_536871640 + struct_st_ptls_context_t_ech_t {.pure, inheritable, bycopy.} = object + client*: struct_st_ptls_context_t_ech_t_client_t + server*: struct_st_ptls_context_t_ech_t_server_t + struct_st_ptls_context_t_ticket_context_t {.pure, inheritable, bycopy.} = object + bytes*: array[32'i64, uint8] + is_set* {.bitsize: 1'i64.}: cuint + struct_st_ptls_context_t_client_ca_names_t {.pure, inheritable, bycopy.} = object + list*: ptr ptls_iovec_t_536871640 + count*: csize_t + struct_st_ptls_context_t_ticket_requests_t_client_t {.pure, inheritable, + bycopy.} = object + new_session_count*: uint8 + resumption_count*: uint8 + struct_st_ptls_context_t_ticket_requests_t_server_t {.pure, inheritable, + bycopy.} = object + max_count*: uint8 + struct_st_ptls_context_t_ticket_requests_t {.pure, inheritable, bycopy.} = object + client*: struct_st_ptls_context_t_ticket_requests_t_client_t + server*: struct_st_ptls_context_t_ticket_requests_t_server_t + struct_st_ptls_context_t_536871633 {.pure, inheritable, bycopy.} = object + random_bytes*: proc (a0: pointer; a1: csize_t): void {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:854:8 + get_time*: ptr ptls_get_time_t_536871718 + key_exchanges*: ptr ptr ptls_key_exchange_algorithm_t_536871654 + cipher_suites*: ptr ptr ptls_cipher_suite_t_536871690 + certificates*: struct_st_ptls_context_t_certificates_t + pre_shared_key*: struct_st_ptls_context_t_pre_shared_key_t + ech*: struct_st_ptls_context_t_ech_t + on_client_hello*: ptr ptls_on_client_hello_t_536871722 + emit_certificate*: ptr ptls_emit_certificate_t_536871726 + sign_certificate*: ptr ptls_sign_certificate_t_536871734 + verify_certificate*: ptr ptls_verify_certificate_t_536871738 + ticket_lifetime*: uint32 + max_early_data_size*: uint32 + max_buffer_size*: csize_t + hkdf_label_prefix_obsolete*: cstring + require_dhe_on_psk* {.bitsize: 1'i64.}: cuint + use_exporter* {.bitsize: 1'i64.}: cuint + send_change_cipher_spec* {.bitsize: 1'i64.}: cuint + require_client_authentication* {.bitsize: 1'i64.}: cuint + omit_end_of_early_data* {.bitsize: 1'i64.}: cuint + use_raw_public_keys* {.bitsize: 1'i64.}: cuint + server_cipher_preference* {.bitsize: 1'i64.}: cuint + server_cipher_chacha_priority* {.bitsize: 1'i64.}: cuint + encrypt_ticket*: ptr ptls_encrypt_ticket_t_536871742 + save_ticket*: ptr ptls_save_ticket_t_536871746 + log_event*: ptr ptls_log_event_t_536871750 + update_open_count*: ptr ptls_update_open_count_t_536871756 + update_traffic_key*: ptr ptls_update_traffic_key_t_536871760 + decompress_certificate*: ptr ptls_decompress_certificate_t_536871768 + on_extension*: ptr ptls_on_extension_t_536871764 + tls12_cipher_suites*: ptr ptr ptls_cipher_suite_t_536871690 + ticket_context*: struct_st_ptls_context_t_ticket_context_t + client_ca_names*: struct_st_ptls_context_t_client_ca_names_t + ticket_requests*: struct_st_ptls_context_t_ticket_requests_t + ptls_key_schedule_t_536871635 = struct_st_ptls_key_schedule_t ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:325:39 + struct_st_ptls_iovec_t_536871637 {.pure, inheritable, bycopy.} = object + base*: ptr uint8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:330:16 + len*: csize_t + ptls_iovec_t_536871639 = struct_st_ptls_iovec_t_536871638 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:333:3 + struct_st_ptls_buffer_t_536871641 {.pure, inheritable, bycopy.} = object + base*: ptr uint8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:338:16 + capacity*: csize_t + off*: csize_t + is_allocated*: uint8 + align_bits*: uint8 + ptls_buffer_t_536871643 = struct_st_ptls_buffer_t_536871642 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:344:3 + struct_st_ptls_key_exchange_context_t_536871645 {.pure, inheritable, bycopy.} = object + algo*: ptr struct_st_ptls_key_exchange_algorithm_t_536871648 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:349:16 + pubkey*: ptls_iovec_t_536871640 + on_exchange*: proc (a0: ptr ptr struct_st_ptls_key_exchange_context_t_536871646; + a1: cint; a2: ptr ptls_iovec_t_536871640; + a3: ptls_iovec_t_536871640): cint {.cdecl.} + struct_st_ptls_key_exchange_algorithm_t_536871647 {.pure, inheritable, bycopy.} = object + id*: uint16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:371:22 + create*: proc (a0: ptr struct_st_ptls_key_exchange_algorithm_t_536871648; + a1: ptr ptr ptls_key_exchange_context_t_536871650): cint {. + cdecl.} + exchange*: proc (a0: ptr struct_st_ptls_key_exchange_algorithm_t_536871648; + a1: ptr ptls_iovec_t_536871640; a2: ptr ptls_iovec_t_536871640; + a3: ptls_iovec_t_536871640): cint {.cdecl.} + data*: intptr_t_536871652 + name*: cstring + ptls_key_exchange_context_t_536871649 = struct_st_ptls_key_exchange_context_t_536871646 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:366:3 + intptr_t_536871651 = clong ## Generated based on /usr/include/stdint.h:76:19 + ptls_key_exchange_algorithm_t_536871653 = struct_st_ptls_key_exchange_algorithm_t_536871648 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:398:3 + struct_st_ptls_cipher_context_t_536871655 {.pure, inheritable, bycopy.} = object + algo*: ptr struct_st_ptls_cipher_algorithm_t_536871658 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:403:16 + do_dispose*: proc (a0: ptr struct_st_ptls_cipher_context_t_536871656): void {. + cdecl.} + do_init*: proc (a0: ptr struct_st_ptls_cipher_context_t_536871656; + a1: pointer): void {.cdecl.} + do_transform*: proc (a0: ptr struct_st_ptls_cipher_context_t_536871656; + a1: pointer; a2: pointer; a3: csize_t): void {.cdecl.} + struct_st_ptls_cipher_algorithm_t_536871657 {.pure, inheritable, bycopy.} = object + name*: cstring ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:414:22 + key_size*: csize_t + block_size*: csize_t + iv_size*: csize_t + context_size*: csize_t + setup_crypto*: proc (a0: ptr ptls_cipher_context_t_536871660; a1: cint; + a2: pointer): cint {.cdecl.} + ptls_cipher_context_t_536871659 = struct_st_ptls_cipher_context_t_536871656 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:409:3 + ptls_cipher_algorithm_t_536871661 = struct_st_ptls_cipher_algorithm_t_536871658 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:421:3 + struct_st_ptls_aead_supplementary_encryption_t_536871663 {.pure, inheritable, + bycopy.} = object + ctx*: ptr ptls_cipher_context_t_536871660 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:427:16 + input*: pointer + output*: array[16'i64, uint8] + ptls_aead_supplementary_encryption_t_536871665 = struct_st_ptls_aead_supplementary_encryption_t_536871664 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:442:3 + struct_st_ptls_aead_context_t_536871667 {.pure, inheritable, bycopy.} = object + algo*: ptr struct_st_ptls_aead_algorithm_t_536871670 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:450:16 + dispose_crypto*: proc (a0: ptr struct_st_ptls_aead_context_t_536871668): void {. + cdecl.} + do_get_iv*: proc (a0: ptr struct_st_ptls_aead_context_t_536871668; + a1: pointer): void {.cdecl.} + do_set_iv*: proc (a0: ptr struct_st_ptls_aead_context_t_536871668; + a1: pointer): void {.cdecl.} + do_encrypt_init*: proc (a0: ptr struct_st_ptls_aead_context_t_536871668; + a1: uint64; a2: pointer; a3: csize_t): void {.cdecl.} + do_encrypt_update*: proc (a0: ptr struct_st_ptls_aead_context_t_536871668; + a1: pointer; a2: pointer; a3: csize_t): csize_t {. + cdecl.} + do_encrypt_final*: proc (a0: ptr struct_st_ptls_aead_context_t_536871668; + a1: pointer): csize_t {.cdecl.} + do_encrypt*: proc (a0: ptr struct_st_ptls_aead_context_t_536871668; + a1: pointer; a2: pointer; a3: csize_t; a4: uint64; + a5: pointer; a6: csize_t; + a7: ptr ptls_aead_supplementary_encryption_t_536871666): void {. + cdecl.} + do_encrypt_v*: proc (a0: ptr struct_st_ptls_aead_context_t_536871668; + a1: pointer; a2: ptr ptls_iovec_t_536871640; + a3: csize_t; a4: uint64; a5: pointer; a6: csize_t): void {. + cdecl.} + do_decrypt*: proc (a0: ptr struct_st_ptls_aead_context_t_536871668; + a1: pointer; a2: pointer; a3: csize_t; a4: uint64; + a5: pointer; a6: csize_t): csize_t {.cdecl.} + struct_st_ptls_aead_algorithm_t_tls12_t {.pure, inheritable, bycopy.} = object + fixed_iv_size*: csize_t + record_iv_size*: csize_t + struct_st_ptls_aead_algorithm_t_536871669 {.pure, inheritable, bycopy.} = object + name*: cstring ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:505:22 + confidentiality_limit*: uint64 + integrity_limit*: uint64 + ctr_cipher*: ptr ptls_cipher_algorithm_t_536871662 + ecb_cipher*: ptr ptls_cipher_algorithm_t_536871662 + key_size*: csize_t + iv_size*: csize_t + tag_size*: csize_t + tls12*: struct_st_ptls_aead_algorithm_t_tls12_t + non_temporal* {.bitsize: 1'i64.}: cuint + align_bits*: uint8 + context_size*: csize_t + setup_crypto*: proc (a0: ptr ptls_aead_context_t_536871672; a1: cint; + a2: pointer; a3: pointer): cint {.cdecl.} + ptls_aead_context_t_536871671 = struct_st_ptls_aead_context_t_536871668 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:500:3 + ptls_aead_algorithm_t_536871673 = struct_st_ptls_aead_algorithm_t_536871670 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:566:3 + ptls_hash_final_mode_t_536871677 = enum_en_ptls_hash_final_mode_t_536871676 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:584:3 + struct_st_ptls_hash_context_t_536871679 {.pure, inheritable, bycopy.} = object + update*: proc (a0: ptr struct_st_ptls_hash_context_t_536871680; a1: pointer; + a2: csize_t): void {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:589:16 + final*: proc (a0: ptr struct_st_ptls_hash_context_t_536871680; a1: pointer; + a2: ptls_hash_final_mode_t_536871678): void {.cdecl.} + clone_private*: proc (a0: ptr struct_st_ptls_hash_context_t_536871680): ptr struct_st_ptls_hash_context_t_536871680 {. + cdecl.} + ptls_hash_context_t_536871681 = struct_st_ptls_hash_context_t_536871680 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:602:3 + struct_st_ptls_hash_algorithm_t_536871683 {.pure, inheritable, bycopy.} = object + name*: cstring ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:607:22 + block_size*: csize_t + digest_size*: csize_t + create*: proc (): ptr ptls_hash_context_t_536871682 {.cdecl.} + empty_digest*: array[64'i64, uint8] + ptls_hash_algorithm_t_536871685 = struct_st_ptls_hash_algorithm_t_536871684 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:628:3 + struct_st_ptls_cipher_suite_t_536871687 {.pure, inheritable, bycopy.} = object + id*: uint16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:630:22 + aead*: ptr ptls_aead_algorithm_t_536871674 + hash*: ptr ptls_hash_algorithm_t_536871686 + name*: cstring + ptls_cipher_suite_t_536871689 = struct_st_ptls_cipher_suite_t_536871688 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:647:3 + struct_st_ptls_message_emitter_t_536871691 {.pure, inheritable, bycopy.} = object + buf*: ptr ptls_buffer_t_536871644 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:651:16 + enc*: ptr struct_st_ptls_traffic_protection_t + record_header_length*: csize_t + begin_message*: proc (a0: ptr struct_st_ptls_message_emitter_t_536871692): cint {. + cdecl.} + commit_message*: proc (a0: ptr struct_st_ptls_message_emitter_t_536871692): cint {. + cdecl.} + ptls_message_emitter_t_536871693 = struct_st_ptls_message_emitter_t_536871692 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:657:3 + struct_st_ptls_hpke_kem_t_536871695 {.pure, inheritable, bycopy.} = object + id*: uint16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:662:22 + keyex*: ptr ptls_key_exchange_algorithm_t_536871654 + hash*: ptr ptls_hash_algorithm_t_536871686 + ptls_hpke_kem_t_536871697 = struct_st_ptls_hpke_kem_t_536871696 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:666:3 + struct_st_ptls_hpke_cipher_suite_id_t_536871699 {.pure, inheritable, bycopy.} = object + kdf*: uint16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:668:16 + aead*: uint16 + ptls_hpke_cipher_suite_id_t_536871701 = struct_st_ptls_hpke_cipher_suite_id_t_536871700 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:671:3 + struct_st_ptls_hpke_cipher_suite_t_536871703 {.pure, inheritable, bycopy.} = object + id*: ptls_hpke_cipher_suite_id_t_536871702 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:673:22 + name*: cstring + hash*: ptr ptls_hash_algorithm_t_536871686 + aead*: ptr ptls_aead_algorithm_t_536871674 + ptls_hpke_cipher_suite_t_536871705 = struct_st_ptls_hpke_cipher_suite_t_536871704 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:678:3 + struct_st_ptls_client_hello_psk_identity_t_536871707 {.pure, inheritable, + bycopy.} = object + identity*: ptls_iovec_t_536871640 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:690:16 + obfuscated_ticket_age*: uint32 + binder*: ptls_iovec_t_536871640 + ptls_client_hello_psk_identity_t_536871709 = struct_st_ptls_client_hello_psk_identity_t_536871708 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:694:3 + struct_st_ptls_on_client_hello_parameters_t_negotiated_protocols_t {.pure, + inheritable, bycopy.} = object + list*: ptr ptls_iovec_t_536871640 + count*: csize_t + struct_st_ptls_on_client_hello_parameters_t_signature_algorithms_t {.pure, + inheritable, bycopy.} = object + list*: ptr uint16 + count*: csize_t + struct_st_ptls_on_client_hello_parameters_t_certificate_compression_algorithms_t {. + pure, inheritable, bycopy.} = object + list*: ptr uint16 + count*: csize_t + struct_st_ptls_on_client_hello_parameters_t_server_certificate_types_t {.pure, + inheritable, bycopy.} = object + list*: ptr uint8 + count*: csize_t + struct_st_ptls_on_client_hello_parameters_t_psk_identities_t {.pure, + inheritable, bycopy.} = object + list*: ptr ptls_client_hello_psk_identity_t_536871710 + count*: csize_t + struct_st_ptls_on_client_hello_parameters_t_536871711 {.pure, inheritable, + bycopy.} = object + server_name*: ptls_iovec_t_536871640 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:699:16 + raw_message*: ptls_iovec_t_536871640 + cipher_suites*: ptls_iovec_t_536871640 + negotiated_protocols*: struct_st_ptls_on_client_hello_parameters_t_negotiated_protocols_t + signature_algorithms*: struct_st_ptls_on_client_hello_parameters_t_signature_algorithms_t + certificate_compression_algorithms*: struct_st_ptls_on_client_hello_parameters_t_certificate_compression_algorithms_t + server_certificate_types*: struct_st_ptls_on_client_hello_parameters_t_server_certificate_types_t + psk_identities*: struct_st_ptls_on_client_hello_parameters_t_psk_identities_t + incompatible_version* {.bitsize: 1'i64.}: cuint + ptls_on_client_hello_parameters_t_536871713 = struct_st_ptls_on_client_hello_parameters_t_536871712 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:739:3 + struct_st_ptls_get_time_t_536871715 {.pure, inheritable, bycopy.} = object + cb*: proc (a0: ptr struct_st_ptls_get_time_t_536871716): uint64 {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:744:1 + ptls_get_time_t_536871717 = struct_st_ptls_get_time_t_536871716 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:744:1 + struct_st_ptls_on_client_hello_t_536871719 {.pure, inheritable, bycopy.} = object + cb*: proc (a0: ptr struct_st_ptls_on_client_hello_t_536871720; + a1: ptr ptls_t_536871630; + a2: ptr ptls_on_client_hello_parameters_t_536871714): cint {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:749:1 + ptls_on_client_hello_t_536871721 = struct_st_ptls_on_client_hello_t_536871720 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:749:1 + struct_st_ptls_emit_certificate_t_536871723 {.pure, inheritable, bycopy.} = object + cb*: proc (a0: ptr struct_st_ptls_emit_certificate_t_536871724; + a1: ptr ptls_t_536871630; a2: ptr ptls_message_emitter_t_536871694; + a3: ptr ptls_key_schedule_t_536871636; a4: ptls_iovec_t_536871640; + a5: cint; a6: ptr uint16; a7: csize_t): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:753:1 + ptls_emit_certificate_t_536871725 = struct_st_ptls_emit_certificate_t_536871724 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:753:1 + struct_st_ptls_async_job_t_536871727 {.pure, inheritable, bycopy.} = object + destroy_private*: proc (a0: ptr struct_st_ptls_async_job_t_536871728): void {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:763:16 + get_fd*: proc (a0: ptr struct_st_ptls_async_job_t_536871728): cint {.cdecl.} + set_completion_callback*: proc (a0: ptr struct_st_ptls_async_job_t_536871728; + a1: proc (a0: pointer): void {.cdecl.}; + a2: pointer): void {.cdecl.} + ptls_async_job_t_536871729 = struct_st_ptls_async_job_t_536871728 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:773:3 + struct_st_ptls_sign_certificate_t_536871731 {.pure, inheritable, bycopy.} = object + cb*: proc (a0: ptr struct_st_ptls_sign_certificate_t_536871732; + a1: ptr ptls_t_536871630; a2: ptr ptr ptls_async_job_t_536871730; + a3: ptr uint16; a4: ptr ptls_buffer_t_536871644; + a5: ptls_iovec_t_536871640; a6: ptr uint16; a7: csize_t): cint {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:778:1 + ptls_sign_certificate_t_536871733 = struct_st_ptls_sign_certificate_t_536871732 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:778:1 + struct_st_ptls_verify_certificate_t_536871735 {.pure, inheritable, bycopy.} = object + cb*: proc (a0: ptr struct_st_ptls_verify_certificate_t_536871736; + a1: ptr ptls_t_536871630; a2: cstring; a3: proc (a0: pointer; + a1: uint16; a2: ptls_iovec_t_536871640; a3: ptls_iovec_t_536871640): cint {. + cdecl.}; a4: ptr pointer; a5: ptr ptls_iovec_t_536871640; a6: csize_t): cint {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:789:16 + algos*: ptr uint16 + ptls_verify_certificate_t_536871737 = struct_st_ptls_verify_certificate_t_536871736 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:797:3 + struct_st_ptls_encrypt_ticket_t_536871739 {.pure, inheritable, bycopy.} = object + cb*: proc (a0: ptr struct_st_ptls_encrypt_ticket_t_536871740; + a1: ptr ptls_t_536871630; a2: cint; a3: ptr ptls_buffer_t_536871644; + a4: ptls_iovec_t_536871640): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:804:1 + ptls_encrypt_ticket_t_536871741 = struct_st_ptls_encrypt_ticket_t_536871740 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:804:1 + struct_st_ptls_save_ticket_t_536871743 {.pure, inheritable, bycopy.} = object + cb*: proc (a0: ptr struct_st_ptls_save_ticket_t_536871744; a1: ptr ptls_t_536871630; + a2: ptls_iovec_t_536871640): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:808:1 + ptls_save_ticket_t_536871745 = struct_st_ptls_save_ticket_t_536871744 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:808:1 + struct_st_ptls_log_event_t_536871747 {.pure, inheritable, bycopy.} = object + cb*: proc (a0: ptr struct_st_ptls_log_event_t_536871748; a1: ptr ptls_t_536871630; + a2: cstring; a3: cstring): void {.cdecl, varargs.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:812:16 + ptls_log_event_t_536871749 = struct_st_ptls_log_event_t_536871748 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:815:3 + struct_st_ptls_update_open_count_t_536871751 {.pure, inheritable, bycopy.} = object + cb*: proc (a0: ptr struct_st_ptls_update_open_count_t_536871752; a1: ssize_t_536871754): void {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:819:1 + ssize_t_536871753 = compiler_ssize_t_536871848 ## Generated based on /usr/include/x86_64-linux-gnu/sys/types.h:108:19 + ptls_update_open_count_t_536871755 = struct_st_ptls_update_open_count_t_536871752 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:819:1 + struct_st_ptls_update_traffic_key_t_536871757 {.pure, inheritable, bycopy.} = object + cb*: proc (a0: ptr struct_st_ptls_update_traffic_key_t_536871758; + a1: ptr ptls_t_536871630; a2: cint; a3: csize_t; a4: pointer): cint {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:824:1 + ptls_update_traffic_key_t_536871759 = struct_st_ptls_update_traffic_key_t_536871758 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:824:1 + struct_st_ptls_on_extension_t_536871761 {.pure, inheritable, bycopy.} = object + cb*: proc (a0: ptr struct_st_ptls_on_extension_t_536871762; a1: ptr ptls_t_536871630; + a2: uint8; a3: uint16; a4: ptls_iovec_t_536871640): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:828:1 + ptls_on_extension_t_536871763 = struct_st_ptls_on_extension_t_536871762 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:828:1 + struct_st_ptls_decompress_certificate_t_536871765 {.pure, inheritable, bycopy.} = object + supported_algorithms*: ptr uint16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:832:16 + cb*: proc (a0: ptr struct_st_ptls_decompress_certificate_t_536871766; + a1: ptr ptls_t_536871630; a2: uint16; a3: ptls_iovec_t_536871640; + a4: ptls_iovec_t_536871640): cint {.cdecl.} + ptls_decompress_certificate_t_536871767 = struct_st_ptls_decompress_certificate_t_536871766 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:842:3 + struct_st_ptls_ech_create_opener_t_536871769 {.pure, inheritable, bycopy.} = object + cb*: proc (a0: ptr struct_st_ptls_ech_create_opener_t_536871770; + a1: ptr ptr ptls_hpke_kem_t_536871698; + a2: ptr ptr ptls_hpke_cipher_suite_t_536871706; a3: ptr ptls_t_536871630; + a4: uint8; a5: ptls_hpke_cipher_suite_id_t_536871702; + a6: ptls_iovec_t_536871640; a7: ptls_iovec_t_536871640): ptr ptls_aead_context_t_536871672 {. + cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:848:1 + ptls_ech_create_opener_t_536871771 = struct_st_ptls_ech_create_opener_t_536871770 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:848:1 + struct_st_ptls_raw_extension_t_536871773 {.pure, inheritable, bycopy.} = object + type_field*: uint16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1059:16 + data*: ptls_iovec_t_536871640 + ptls_raw_extension_t_536871775 = struct_st_ptls_raw_extension_t_536871774 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1062:3 + ptls_early_data_acceptance_t_536871779 = enum_en_ptls_early_data_acceptance_t_536871778 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1068:3 + struct_st_ptls_handshake_properties_t_anon0_t_client_t_negotiated_protocols_t {. + pure, inheritable, bycopy.} = object + list*: ptr ptls_iovec_t_536871640 + count*: csize_t + struct_st_ptls_handshake_properties_t_anon0_t_client_t_ech_t {.pure, + inheritable, bycopy.} = object + configs*: ptls_iovec_t_536871640 + retry_configs*: ptr ptls_iovec_t_536871640 + struct_st_ptls_handshake_properties_t_anon0_t_client_t {.pure, inheritable, + bycopy.} = object + negotiated_protocols*: struct_st_ptls_handshake_properties_t_anon0_t_client_t_negotiated_protocols_t + session_ticket*: ptls_iovec_t_536871640 + max_early_data_size*: ptr csize_t + early_data_acceptance*: ptls_early_data_acceptance_t_536871780 + negotiate_before_key_exchange* {.bitsize: 1'i64.}: cuint + ech*: struct_st_ptls_handshake_properties_t_anon0_t_client_t_ech_t + struct_st_ptls_handshake_properties_t_anon0_t_server_t_selected_psk_binder_t {. + pure, inheritable, bycopy.} = object + base*: array[64'i64, uint8] + len*: csize_t + struct_st_ptls_handshake_properties_t_anon0_t_server_t_cookie_t {.pure, + inheritable, bycopy.} = object + key*: pointer + additional_data*: ptls_iovec_t_536871640 + struct_st_ptls_handshake_properties_t_anon0_t_server_t {.pure, inheritable, + bycopy.} = object + selected_psk_binder*: struct_st_ptls_handshake_properties_t_anon0_t_server_t_selected_psk_binder_t + cookie*: struct_st_ptls_handshake_properties_t_anon0_t_server_t_cookie_t + enforce_retry* {.bitsize: 1'i64.}: cuint + retry_uses_cookie* {.bitsize: 1'i64.}: cuint + struct_st_ptls_handshake_properties_t_anon0_t {.union, bycopy.} = object + client*: struct_st_ptls_handshake_properties_t_anon0_t_client_t + server*: struct_st_ptls_handshake_properties_t_anon0_t_server_t + struct_st_ptls_handshake_properties_t_536871781 {.pure, inheritable, bycopy.} = object + anon0*: struct_st_ptls_handshake_properties_t_anon0_t ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1078:16 + additional_extensions*: ptr ptls_raw_extension_t_536871776 + collect_extension*: proc (a0: ptr ptls_t_536871630; + a1: ptr struct_st_ptls_handshake_properties_t_536871782; + a2: uint16): cint {.cdecl.} + collected_extensions*: proc (a0: ptr ptls_t_536871630; + a1: ptr struct_st_ptls_handshake_properties_t_536871782; + a2: ptr ptls_raw_extension_t_536871776): cint {. + cdecl.} + ptls_handshake_properties_t_536871783 = struct_st_ptls_handshake_properties_t_536871782 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1167:3 + struct_st_ptls_log_state_t_536871785 {.pure, inheritable, bycopy.} = object + active_conns*: uint32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1492:8 + generation*: uint64 + struct_st_ptls_log_point_t_536871787 {.pure, inheritable, bycopy.} = object + name*: cstring ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1506:8 + state*: struct_st_ptls_log_state_t_536871786 + struct_st_ptls_log_conn_state_t_536871789 {.pure, inheritable, bycopy.} = object + random_private*: cfloat ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1514:16 + address*: struct_in6_addr_536871792 + state*: struct_st_ptls_log_state_t_536871786 + struct_in6_addr_compiler_in6_u_t {.union, bycopy.} = object + compiler_u6_addr8*: array[16'i64, uint8] + compiler_u6_addr16*: array[8'i64, uint16] + compiler_u6_addr32*: array[4'i64, uint32] + struct_in6_addr_536871791 {.pure, inheritable, bycopy.} = object + compiler_in6_u*: struct_in6_addr_compiler_in6_u_t ## Generated based on /usr/include/netinet/in.h:221:8 + ptls_log_conn_state_t_536871793 = struct_st_ptls_log_conn_state_t_536871790 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1525:3 + struct_st_ptls_log_t_536871795 {.pure, inheritable, bycopy.} = object + may_include_appdata* {.bitsize: 1'i64.}: cuint ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1535:15 + dummy_conn_state*: ptls_log_conn_state_t_536871794 + internal_generation*: uint64 + struct_in_addr_536871797 {.pure, inheritable, bycopy.} = object + s_addr*: in_addr_t_536871850 ## Generated based on /usr/include/netinet/in.h:31:8 + EVP_PKEY_536871799 = struct_evp_pkey_st ## Generated based on /usr/include/openssl/types.h:107:28 + struct_st_ptls_openssl_signature_scheme_t_536871801 {.pure, inheritable, + bycopy.} = object + scheme_id*: uint16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:150:16 + scheme_md*: proc (): ptr EVP_MD_536871804 {.cdecl.} + EVP_MD_536871803 = struct_evp_md_st ## Generated based on /usr/include/openssl/types.h:103:26 + ptls_openssl_signature_scheme_t_536871805 = struct_st_ptls_openssl_signature_scheme_t_536871802 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:153:3 + struct_st_ptls_openssl_sign_certificate_t_536871807 {.pure, inheritable, + bycopy.} = object + super*: ptls_sign_certificate_t_536871734 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:165:16 + key*: ptr EVP_PKEY_536871800 + schemes*: ptr ptls_openssl_signature_scheme_t_536871806 + async* {.bitsize: 1'i64.}: cuint + ptls_openssl_sign_certificate_t_536871809 = struct_st_ptls_openssl_sign_certificate_t_536871808 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:177:3 + X509_536871811 = struct_x509_st ## Generated based on /usr/include/openssl/types.h:157:24 + struct_st_ptls_openssl_raw_pubkey_verify_certificate_t_536871813 {.pure, + inheritable, bycopy.} = object + super*: ptls_verify_certificate_t_536871738 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:183:16 + expected_pubkey*: ptr EVP_PKEY_536871800 + ptls_openssl_raw_pubkey_verify_certificate_t_536871815 = struct_st_ptls_openssl_raw_pubkey_verify_certificate_t_536871814 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:186:3 + struct_st_ptls_openssl_override_verify_certificate_t_536871817 {.pure, + inheritable, bycopy.} = object + cb*: proc (a0: ptr struct_st_ptls_openssl_override_verify_certificate_t_536871818; + a1: ptr ptls_t_536871630; a2: cint; a3: cint; a4: ptr X509_536871812; + a5: ptr struct_stack_st_X509): cint {.cdecl.} ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:195:1 + ptls_openssl_override_verify_certificate_t_536871819 = struct_st_ptls_openssl_override_verify_certificate_t_536871818 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:195:1 + struct_st_ptls_openssl_verify_certificate_t_536871821 {.pure, inheritable, + bycopy.} = object + super*: ptls_verify_certificate_t_536871738 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:198:16 + cert_store*: ptr X509_STORE_536871824 + override_callback*: ptr ptls_openssl_override_verify_certificate_t_536871820 + X509_STORE_536871823 = struct_x509_store_st ## Generated based on /usr/include/openssl/types.h:164:30 + ptls_openssl_verify_certificate_t_536871825 = struct_st_ptls_openssl_verify_certificate_t_536871822 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:202:3 + EVP_CIPHER_CTX_536871827 = struct_evp_cipher_ctx_st ## Generated based on /usr/include/openssl/types.h:102:34 + HMAC_CTX_536871829 = struct_hmac_ctx_st ## Generated based on /usr/include/openssl/types.h:132:28 + EVP_MAC_CTX_536871831 = struct_evp_mac_ctx_st ## Generated based on /usr/include/openssl/types.h:106:31 + struct_ngtcp2_crypto_picotls_ctx_536871833 {.pure, inheritable, bycopy.} = object + ptls*: ptr ptls_t_536871630 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto_picotls.h:43:16 + handshake_properties*: ptls_handshake_properties_t_536871784 + ngtcp2_crypto_picotls_ctx_536871835 = struct_ngtcp2_crypto_picotls_ctx_536871834 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto_picotls.h:53:3 + struct_ptls_cred_buffer_s_536871837 {.pure, inheritable, bycopy.} = object + base*: cstring ## Generated based on /home/r/vacp2p/nim-ngtcp2/build/lib/includes/utils/cred_buffer.h:8:16 + len*: csize_t + off*: csize_t + owns_base*: cint + ptls_cred_buffer_t_536871839 = struct_ptls_cred_buffer_s_536871838 ## Generated based on /home/r/vacp2p/nim-ngtcp2/build/lib/includes/utils/cred_buffer.h:16:3 + sa_family_t_536871841 = cushort ## Generated based on /usr/include/x86_64-linux-gnu/bits/sockaddr.h:28:28 + in_port_t_536871843 = uint16 ## Generated based on /usr/include/netinet/in.h:125:18 + compiler_socklen_t_536871845 = cuint ## Generated based on /usr/include/x86_64-linux-gnu/bits/types.h:210:23 + compiler_ssize_t_536871847 = clong ## Generated based on /usr/include/x86_64-linux-gnu/bits/types.h:194:27 + in_addr_t_536871849 = uint32 ## Generated based on /usr/include/netinet/in.h:30:18 + struct_st_ptls_update_open_count_t_536871752 = (when declared( + struct_st_ptls_update_open_count_t): + when ownSizeof(struct_st_ptls_update_open_count_t) != + ownSizeof(struct_st_ptls_update_open_count_t_536871751): + static : + warning("Declaration of " & "struct_st_ptls_update_open_count_t" & + " exists but with different size") + struct_st_ptls_update_open_count_t + else: + struct_st_ptls_update_open_count_t_536871751) + struct_st_ptls_key_exchange_algorithm_t_536871648 = (when declared( + struct_st_ptls_key_exchange_algorithm_t): + when ownSizeof(struct_st_ptls_key_exchange_algorithm_t) != + ownSizeof(struct_st_ptls_key_exchange_algorithm_t_536871647): + static : + warning("Declaration of " & "struct_st_ptls_key_exchange_algorithm_t" & + " exists but with different size") + struct_st_ptls_key_exchange_algorithm_t + else: + struct_st_ptls_key_exchange_algorithm_t_536871647) + ngtcp2_preferred_addr_536871441 = (when declared(ngtcp2_preferred_addr): + when ownSizeof(ngtcp2_preferred_addr) != ownSizeof(ngtcp2_preferred_addr_536871440): + static : + warning("Declaration of " & "ngtcp2_preferred_addr" & + " exists but with different size") + ngtcp2_preferred_addr + else: + ngtcp2_preferred_addr_536871440) + ngtcp2_connection_id_status_type_536871578 = (when declared( + ngtcp2_connection_id_status_type): + when ownSizeof(ngtcp2_connection_id_status_type) != + ownSizeof(ngtcp2_connection_id_status_type_536871577): + static : + warning("Declaration of " & "ngtcp2_connection_id_status_type" & + " exists but with different size") + ngtcp2_connection_id_status_type + else: + ngtcp2_connection_id_status_type_536871577) + struct_sockaddr_536871421 = (when declared(struct_sockaddr): + when ownSizeof(struct_sockaddr) != ownSizeof(struct_sockaddr_536871420): + static : + warning("Declaration of " & "struct_sockaddr" & + " exists but with different size") + struct_sockaddr + else: + struct_sockaddr_536871420) + struct_st_ptls_aead_algorithm_t_536871670 = (when declared( + struct_st_ptls_aead_algorithm_t): + when ownSizeof(struct_st_ptls_aead_algorithm_t) != + ownSizeof(struct_st_ptls_aead_algorithm_t_536871669): + static : + warning("Declaration of " & "struct_st_ptls_aead_algorithm_t" & + " exists but with different size") + struct_st_ptls_aead_algorithm_t + else: + struct_st_ptls_aead_algorithm_t_536871669) + struct_st_ptls_hash_context_t_536871680 = (when declared( + struct_st_ptls_hash_context_t): + when ownSizeof(struct_st_ptls_hash_context_t) != + ownSizeof(struct_st_ptls_hash_context_t_536871679): + static : + warning("Declaration of " & "struct_st_ptls_hash_context_t" & + " exists but with different size") + struct_st_ptls_hash_context_t + else: + struct_st_ptls_hash_context_t_536871679) + ngtcp2_encrypt_536871542 = (when declared(ngtcp2_encrypt): + when ownSizeof(ngtcp2_encrypt) != ownSizeof(ngtcp2_encrypt_536871541): + static : + warning("Declaration of " & "ngtcp2_encrypt" & + " exists but with different size") + ngtcp2_encrypt + else: + ngtcp2_encrypt_536871541) + struct_ngtcp2_ccerr_536871616 = (when declared(struct_ngtcp2_ccerr): + when ownSizeof(struct_ngtcp2_ccerr) != ownSizeof(struct_ngtcp2_ccerr_536871615): + static : + warning("Declaration of " & "struct_ngtcp2_ccerr" & + " exists but with different size") + struct_ngtcp2_ccerr + else: + struct_ngtcp2_ccerr_536871615) + struct_st_ptls_message_emitter_t_536871692 = (when declared( + struct_st_ptls_message_emitter_t): + when ownSizeof(struct_st_ptls_message_emitter_t) != + ownSizeof(struct_st_ptls_message_emitter_t_536871691): + static : + warning("Declaration of " & "struct_st_ptls_message_emitter_t" & + " exists but with different size") + struct_st_ptls_message_emitter_t + else: + struct_st_ptls_message_emitter_t_536871691) + ptls_hpke_cipher_suite_t_536871706 = (when declared(ptls_hpke_cipher_suite_t): + when ownSizeof(ptls_hpke_cipher_suite_t) != + ownSizeof(ptls_hpke_cipher_suite_t_536871705): + static : + warning("Declaration of " & "ptls_hpke_cipher_suite_t" & + " exists but with different size") + ptls_hpke_cipher_suite_t + else: + ptls_hpke_cipher_suite_t_536871705) + ngtcp2_pkt_hd_536871413 = (when declared(ngtcp2_pkt_hd): + when ownSizeof(ngtcp2_pkt_hd) != ownSizeof(ngtcp2_pkt_hd_536871412): + static : + warning("Declaration of " & "ngtcp2_pkt_hd" & + " exists but with different size") + ngtcp2_pkt_hd + else: + ngtcp2_pkt_hd_536871412) + struct_sockaddr_in_536871425 = (when declared(struct_sockaddr_in): + when ownSizeof(struct_sockaddr_in) != ownSizeof(struct_sockaddr_in_536871424): + static : + warning("Declaration of " & "struct_sockaddr_in" & + " exists but with different size") + struct_sockaddr_in + else: + struct_sockaddr_in_536871424) + enum_ngtcp2_token_type_536871474 = (when declared(enum_ngtcp2_token_type): + when ownSizeof(enum_ngtcp2_token_type) != ownSizeof(enum_ngtcp2_token_type_536871473): + static : + warning("Declaration of " & "enum_ngtcp2_token_type" & + " exists but with different size") + enum_ngtcp2_token_type + else: + enum_ngtcp2_token_type_536871473) + struct_ngtcp2_rand_ctx_536871468 = (when declared(struct_ngtcp2_rand_ctx): + when ownSizeof(struct_ngtcp2_rand_ctx) != ownSizeof(struct_ngtcp2_rand_ctx_536871467): + static : + warning("Declaration of " & "struct_ngtcp2_rand_ctx" & + " exists but with different size") + struct_ngtcp2_rand_ctx + else: + struct_ngtcp2_rand_ctx_536871467) + ngtcp2_stream_open_536871550 = (when declared(ngtcp2_stream_open): + when ownSizeof(ngtcp2_stream_open) != ownSizeof(ngtcp2_stream_open_536871549): + static : + warning("Declaration of " & "ngtcp2_stream_open" & + " exists but with different size") + ngtcp2_stream_open + else: + ngtcp2_stream_open_536871549) + struct_sockaddr_in6_536871429 = (when declared(struct_sockaddr_in6): + when ownSizeof(struct_sockaddr_in6) != ownSizeof(struct_sockaddr_in6_536871428): + static : + warning("Declaration of " & "struct_sockaddr_in6" & + " exists but with different size") + struct_sockaddr_in6 + else: + struct_sockaddr_in6_536871428) + enum_ngtcp2_ccerr_type_536871612 = (when declared(enum_ngtcp2_ccerr_type): + when ownSizeof(enum_ngtcp2_ccerr_type) != ownSizeof(enum_ngtcp2_ccerr_type_536871611): + static : + warning("Declaration of " & "enum_ngtcp2_ccerr_type" & + " exists but with different size") + enum_ngtcp2_ccerr_type + else: + enum_ngtcp2_ccerr_type_536871611) + ptls_key_exchange_context_t_536871650 = (when declared( + ptls_key_exchange_context_t): + when ownSizeof(ptls_key_exchange_context_t) != + ownSizeof(ptls_key_exchange_context_t_536871649): + static : + warning("Declaration of " & "ptls_key_exchange_context_t" & + " exists but with different size") + ptls_key_exchange_context_t + else: + ptls_key_exchange_context_t_536871649) + struct_st_ptls_on_client_hello_t_536871720 = (when declared( + struct_st_ptls_on_client_hello_t): + when ownSizeof(struct_st_ptls_on_client_hello_t) != + ownSizeof(struct_st_ptls_on_client_hello_t_536871719): + static : + warning("Declaration of " & "struct_st_ptls_on_client_hello_t" & + " exists but with different size") + struct_st_ptls_on_client_hello_t + else: + struct_st_ptls_on_client_hello_t_536871719) + struct_st_ptls_on_extension_t_536871762 = (when declared( + struct_st_ptls_on_extension_t): + when ownSizeof(struct_st_ptls_on_extension_t) != + ownSizeof(struct_st_ptls_on_extension_t_536871761): + static : + warning("Declaration of " & "struct_st_ptls_on_extension_t" & + " exists but with different size") + struct_st_ptls_on_extension_t + else: + struct_st_ptls_on_extension_t_536871761) + ngtcp2_stream_stop_sending_536871596 = (when declared( + ngtcp2_stream_stop_sending): + when ownSizeof(ngtcp2_stream_stop_sending) != + ownSizeof(ngtcp2_stream_stop_sending_536871595): + static : + warning("Declaration of " & "ngtcp2_stream_stop_sending" & + " exists but with different size") + ngtcp2_stream_stop_sending + else: + ngtcp2_stream_stop_sending_536871595) + ngtcp2_sockaddr_in_536871423 = (when declared(ngtcp2_sockaddr_in): + when ownSizeof(ngtcp2_sockaddr_in) != ownSizeof(ngtcp2_sockaddr_in_536871422): + static : + warning("Declaration of " & "ngtcp2_sockaddr_in" & + " exists but with different size") + ngtcp2_sockaddr_in + else: + ngtcp2_sockaddr_in_536871422) + struct_ngtcp2_callbacks_536871604 = (when declared(struct_ngtcp2_callbacks): + when ownSizeof(struct_ngtcp2_callbacks) != + ownSizeof(struct_ngtcp2_callbacks_536871603): + static : + warning("Declaration of " & "struct_ngtcp2_callbacks" & + " exists but with different size") + struct_ngtcp2_callbacks + else: + struct_ngtcp2_callbacks_536871603) + ngtcp2_recv_datagram_536871588 = (when declared(ngtcp2_recv_datagram): + when ownSizeof(ngtcp2_recv_datagram) != ownSizeof(ngtcp2_recv_datagram_536871587): + static : + warning("Declaration of " & "ngtcp2_recv_datagram" & + " exists but with different size") + ngtcp2_recv_datagram + else: + ngtcp2_recv_datagram_536871587) + ptls_cipher_suite_t_536871690 = (when declared(ptls_cipher_suite_t): + when ownSizeof(ptls_cipher_suite_t) != ownSizeof(ptls_cipher_suite_t_536871689): + static : + warning("Declaration of " & "ptls_cipher_suite_t" & + " exists but with different size") + ptls_cipher_suite_t + else: + ptls_cipher_suite_t_536871689) + ngtcp2_path_536871488 = (when declared(ngtcp2_path): + when ownSizeof(ngtcp2_path) != ownSizeof(ngtcp2_path_536871487): + static : + warning("Declaration of " & "ngtcp2_path" & + " exists but with different size") + ngtcp2_path + else: + ngtcp2_path_536871487) + ngtcp2_pkt_info_536871389 = (when declared(ngtcp2_pkt_info): + when ownSizeof(ngtcp2_pkt_info) != ownSizeof(ngtcp2_pkt_info_536871388): + static : + warning("Declaration of " & "ngtcp2_pkt_info" & + " exists but with different size") + ngtcp2_pkt_info + else: + ngtcp2_pkt_info_536871388) + ngtcp2_encryption_level_536871530 = (when declared(ngtcp2_encryption_level): + when ownSizeof(ngtcp2_encryption_level) != + ownSizeof(ngtcp2_encryption_level_536871529): + static : + warning("Declaration of " & "ngtcp2_encryption_level" & + " exists but with different size") + ngtcp2_encryption_level + else: + ngtcp2_encryption_level_536871529) + struct_ngtcp2_info_536871620 = (when declared(struct_ngtcp2_info): + when ownSizeof(struct_ngtcp2_info) != ownSizeof(struct_ngtcp2_info_536871619): + static : + warning("Declaration of " & "struct_ngtcp2_info" & + " exists but with different size") + struct_ngtcp2_info + else: + struct_ngtcp2_info_536871619) + ptls_encrypt_ticket_t_536871742 = (when declared(ptls_encrypt_ticket_t): + when ownSizeof(ptls_encrypt_ticket_t) != ownSizeof(ptls_encrypt_ticket_t_536871741): + static : + warning("Declaration of " & "ptls_encrypt_ticket_t" & + " exists but with different size") + ptls_encrypt_ticket_t + else: + ptls_encrypt_ticket_t_536871741) + struct_ngtcp2_crypto_aead_536871498 = (when declared(struct_ngtcp2_crypto_aead): + when ownSizeof(struct_ngtcp2_crypto_aead) != + ownSizeof(struct_ngtcp2_crypto_aead_536871497): + static : + warning("Declaration of " & "struct_ngtcp2_crypto_aead" & + " exists but with different size") + struct_ngtcp2_crypto_aead + else: + struct_ngtcp2_crypto_aead_536871497) + enum_ngtcp2_path_validation_result_536871395 = (when declared( + enum_ngtcp2_path_validation_result): + when ownSizeof(enum_ngtcp2_path_validation_result) != + ownSizeof(enum_ngtcp2_path_validation_result_536871394): + static : + warning("Declaration of " & "enum_ngtcp2_path_validation_result" & + " exists but with different size") + enum_ngtcp2_path_validation_result + else: + enum_ngtcp2_path_validation_result_536871394) + ptls_message_emitter_t_536871694 = (when declared(ptls_message_emitter_t): + when ownSizeof(ptls_message_emitter_t) != ownSizeof(ptls_message_emitter_t_536871693): + static : + warning("Declaration of " & "ptls_message_emitter_t" & + " exists but with different size") + ptls_message_emitter_t + else: + ptls_message_emitter_t_536871693) + EVP_CIPHER_CTX_536871828 = (when declared(EVP_CIPHER_CTX): + when ownSizeof(EVP_CIPHER_CTX) != ownSizeof(EVP_CIPHER_CTX_536871827): + static : + warning("Declaration of " & "EVP_CIPHER_CTX" & + " exists but with different size") + EVP_CIPHER_CTX + else: + EVP_CIPHER_CTX_536871827) + struct_ngtcp2_path_storage_536871490 = (when declared( + struct_ngtcp2_path_storage): + when ownSizeof(struct_ngtcp2_path_storage) != + ownSizeof(struct_ngtcp2_path_storage_536871489): + static : + warning("Declaration of " & "struct_ngtcp2_path_storage" & + " exists but with different size") + struct_ngtcp2_path_storage + else: + struct_ngtcp2_path_storage_536871489) + ngtcp2_crypto_aead_ctx_536871508 = (when declared(ngtcp2_crypto_aead_ctx): + when ownSizeof(ngtcp2_crypto_aead_ctx) != ownSizeof(ngtcp2_crypto_aead_ctx_536871507): + static : + warning("Declaration of " & "ngtcp2_crypto_aead_ctx" & + " exists but with different size") + ngtcp2_crypto_aead_ctx + else: + ngtcp2_crypto_aead_ctx_536871507) + ngtcp2_settings_536871480 = (when declared(ngtcp2_settings): + when ownSizeof(ngtcp2_settings) != ownSizeof(ngtcp2_settings_536871479): + static : + warning("Declaration of " & "ngtcp2_settings" & + " exists but with different size") + ngtcp2_settings + else: + ngtcp2_settings_536871479) + struct_st_ptls_context_t_536871634 = (when declared(struct_st_ptls_context_t): + when ownSizeof(struct_st_ptls_context_t) != + ownSizeof(struct_st_ptls_context_t_536871633): + static : + warning("Declaration of " & "struct_st_ptls_context_t" & + " exists but with different size") + struct_st_ptls_context_t + else: + struct_st_ptls_context_t_536871633) + struct_st_ptls_aead_supplementary_encryption_t_536871664 = (when declared( + struct_st_ptls_aead_supplementary_encryption_t): + when ownSizeof(struct_st_ptls_aead_supplementary_encryption_t) != + ownSizeof(struct_st_ptls_aead_supplementary_encryption_t_536871663): + static : + warning("Declaration of " & + "struct_st_ptls_aead_supplementary_encryption_t" & + " exists but with different size") + struct_st_ptls_aead_supplementary_encryption_t + else: + struct_st_ptls_aead_supplementary_encryption_t_536871663) + ptls_cipher_algorithm_t_536871662 = (when declared(ptls_cipher_algorithm_t): + when ownSizeof(ptls_cipher_algorithm_t) != + ownSizeof(ptls_cipher_algorithm_t_536871661): + static : + warning("Declaration of " & "ptls_cipher_algorithm_t" & + " exists but with different size") + ptls_cipher_algorithm_t + else: + ptls_cipher_algorithm_t_536871661) + ptls_openssl_sign_certificate_t_536871810 = (when declared( + ptls_openssl_sign_certificate_t): + when ownSizeof(ptls_openssl_sign_certificate_t) != + ownSizeof(ptls_openssl_sign_certificate_t_536871809): + static : + warning("Declaration of " & "ptls_openssl_sign_certificate_t" & + " exists but with different size") + ptls_openssl_sign_certificate_t + else: + ptls_openssl_sign_certificate_t_536871809) + struct_ngtcp2_path_536871486 = (when declared(struct_ngtcp2_path): + when ownSizeof(struct_ngtcp2_path) != ownSizeof(struct_ngtcp2_path_536871485): + static : + warning("Declaration of " & "struct_ngtcp2_path" & + " exists but with different size") + struct_ngtcp2_path + else: + struct_ngtcp2_path_536871485) + ngtcp2_get_new_connection_id_536871566 = (when declared( + ngtcp2_get_new_connection_id): + when ownSizeof(ngtcp2_get_new_connection_id) != + ownSizeof(ngtcp2_get_new_connection_id_536871565): + static : + warning("Declaration of " & "ngtcp2_get_new_connection_id" & + " exists but with different size") + ngtcp2_get_new_connection_id + else: + ngtcp2_get_new_connection_id_536871565) + ngtcp2_get_path_challenge_data_536871594 = (when declared( + ngtcp2_get_path_challenge_data): + when ownSizeof(ngtcp2_get_path_challenge_data) != + ownSizeof(ngtcp2_get_path_challenge_data_536871593): + static : + warning("Declaration of " & "ngtcp2_get_path_challenge_data" & + " exists but with different size") + ngtcp2_get_path_challenge_data + else: + ngtcp2_get_path_challenge_data_536871593) + X509_536871812 = (when declared(X509): + when ownSizeof(X509) != ownSizeof(X509_536871811): + static : + warning("Declaration of " & "X509" & " exists but with different size") + X509 + else: + X509_536871811) + ptls_key_schedule_t_536871636 = (when declared(ptls_key_schedule_t): + when ownSizeof(ptls_key_schedule_t) != ownSizeof(ptls_key_schedule_t_536871635): + static : + warning("Declaration of " & "ptls_key_schedule_t" & + " exists but with different size") + ptls_key_schedule_t + else: + ptls_key_schedule_t_536871635) + ptls_aead_supplementary_encryption_t_536871666 = (when declared( + ptls_aead_supplementary_encryption_t): + when ownSizeof(ptls_aead_supplementary_encryption_t) != + ownSizeof(ptls_aead_supplementary_encryption_t_536871665): + static : + warning("Declaration of " & "ptls_aead_supplementary_encryption_t" & + " exists but with different size") + ptls_aead_supplementary_encryption_t + else: + ptls_aead_supplementary_encryption_t_536871665) + ptls_on_extension_t_536871764 = (when declared(ptls_on_extension_t): + when ownSizeof(ptls_on_extension_t) != ownSizeof(ptls_on_extension_t_536871763): + static : + warning("Declaration of " & "ptls_on_extension_t" & + " exists but with different size") + ptls_on_extension_t + else: + ptls_on_extension_t_536871763) + EVP_MAC_CTX_536871832 = (when declared(EVP_MAC_CTX): + when ownSizeof(EVP_MAC_CTX) != ownSizeof(EVP_MAC_CTX_536871831): + static : + warning("Declaration of " & "EVP_MAC_CTX" & + " exists but with different size") + EVP_MAC_CTX + else: + EVP_MAC_CTX_536871831) + ngtcp2_extend_max_streams_536871560 = (when declared(ngtcp2_extend_max_streams): + when ownSizeof(ngtcp2_extend_max_streams) != + ownSizeof(ngtcp2_extend_max_streams_536871559): + static : + warning("Declaration of " & "ngtcp2_extend_max_streams" & + " exists but with different size") + ngtcp2_extend_max_streams + else: + ngtcp2_extend_max_streams_536871559) + ngtcp2_sockaddr_in6_536871427 = (when declared(ngtcp2_sockaddr_in6): + when ownSizeof(ngtcp2_sockaddr_in6) != ownSizeof(ngtcp2_sockaddr_in6_536871426): + static : + warning("Declaration of " & "ngtcp2_sockaddr_in6" & + " exists but with different size") + ngtcp2_sockaddr_in6 + else: + ngtcp2_sockaddr_in6_536871426) + struct_ngtcp2_version_cid_536871518 = (when declared(struct_ngtcp2_version_cid): + when ownSizeof(struct_ngtcp2_version_cid) != + ownSizeof(struct_ngtcp2_version_cid_536871517): + static : + warning("Declaration of " & "struct_ngtcp2_version_cid" & + " exists but with different size") + struct_ngtcp2_version_cid + else: + struct_ngtcp2_version_cid_536871517) + struct_in6_addr_536871792 = (when declared(struct_in6_addr): + when ownSizeof(struct_in6_addr) != ownSizeof(struct_in6_addr_536871791): + static : + warning("Declaration of " & "struct_in6_addr" & + " exists but with different size") + struct_in6_addr + else: + struct_in6_addr_536871791) + struct_st_ptls_hash_algorithm_t_536871684 = (when declared( + struct_st_ptls_hash_algorithm_t): + when ownSizeof(struct_st_ptls_hash_algorithm_t) != + ownSizeof(struct_st_ptls_hash_algorithm_t_536871683): + static : + warning("Declaration of " & "struct_st_ptls_hash_algorithm_t" & + " exists but with different size") + struct_st_ptls_hash_algorithm_t + else: + struct_st_ptls_hash_algorithm_t_536871683) + ptls_iovec_t_536871640 = (when declared(ptls_iovec_t): + when ownSizeof(ptls_iovec_t) != ownSizeof(ptls_iovec_t_536871639): + static : + warning("Declaration of " & "ptls_iovec_t" & + " exists but with different size") + ptls_iovec_t + else: + ptls_iovec_t_536871639) + enum_ngtcp2_pkt_type_536871391 = (when declared(enum_ngtcp2_pkt_type): + when ownSizeof(enum_ngtcp2_pkt_type) != ownSizeof(enum_ngtcp2_pkt_type_536871390): + static : + warning("Declaration of " & "enum_ngtcp2_pkt_type" & + " exists but with different size") + enum_ngtcp2_pkt_type + else: + enum_ngtcp2_pkt_type_536871390) + ngtcp2_version_cid_536871520 = (when declared(ngtcp2_version_cid): + when ownSizeof(ngtcp2_version_cid) != ownSizeof(ngtcp2_version_cid_536871519): + static : + warning("Declaration of " & "ngtcp2_version_cid" & + " exists but with different size") + ngtcp2_version_cid + else: + ngtcp2_version_cid_536871519) + ngtcp2_crypto_conn_ref_536871624 = (when declared(ngtcp2_crypto_conn_ref): + when ownSizeof(ngtcp2_crypto_conn_ref) != ownSizeof(ngtcp2_crypto_conn_ref_536871623): + static : + warning("Declaration of " & "ngtcp2_crypto_conn_ref" & + " exists but with different size") + ngtcp2_crypto_conn_ref + else: + ngtcp2_crypto_conn_ref_536871623) + ptls_buffer_t_536871644 = (when declared(ptls_buffer_t): + when ownSizeof(ptls_buffer_t) != ownSizeof(ptls_buffer_t_536871643): + static : + warning("Declaration of " & "ptls_buffer_t" & + " exists but with different size") + ptls_buffer_t + else: + ptls_buffer_t_536871643) + ptls_handshake_properties_t_536871784 = (when declared( + ptls_handshake_properties_t): + when ownSizeof(ptls_handshake_properties_t) != + ownSizeof(ptls_handshake_properties_t_536871783): + static : + warning("Declaration of " & "ptls_handshake_properties_t" & + " exists but with different size") + ptls_handshake_properties_t + else: + ptls_handshake_properties_t_536871783) + ptls_aead_algorithm_t_536871674 = (when declared(ptls_aead_algorithm_t): + when ownSizeof(ptls_aead_algorithm_t) != ownSizeof(ptls_aead_algorithm_t_536871673): + static : + warning("Declaration of " & "ptls_aead_algorithm_t" & + " exists but with different size") + ptls_aead_algorithm_t + else: + ptls_aead_algorithm_t_536871673) + struct_st_ptls_on_client_hello_parameters_t_536871712 = (when declared( + struct_st_ptls_on_client_hello_parameters_t): + when ownSizeof(struct_st_ptls_on_client_hello_parameters_t) != + ownSizeof(struct_st_ptls_on_client_hello_parameters_t_536871711): + static : + warning("Declaration of " & + "struct_st_ptls_on_client_hello_parameters_t" & + " exists but with different size") + struct_st_ptls_on_client_hello_parameters_t + else: + struct_st_ptls_on_client_hello_parameters_t_536871711) + ptls_early_data_acceptance_t_536871780 = (when declared( + ptls_early_data_acceptance_t): + when ownSizeof(ptls_early_data_acceptance_t) != + ownSizeof(ptls_early_data_acceptance_t_536871779): + static : + warning("Declaration of " & "ptls_early_data_acceptance_t" & + " exists but with different size") + ptls_early_data_acceptance_t + else: + ptls_early_data_acceptance_t_536871779) + ngtcp2_token_type_536871476 = (when declared(ngtcp2_token_type): + when ownSizeof(ngtcp2_token_type) != ownSizeof(ngtcp2_token_type_536871475): + static : + warning("Declaration of " & "ngtcp2_token_type" & + " exists but with different size") + ngtcp2_token_type + else: + ngtcp2_token_type_536871475) + ptls_get_time_t_536871718 = (when declared(ptls_get_time_t): + when ownSizeof(ptls_get_time_t) != ownSizeof(ptls_get_time_t_536871717): + static : + warning("Declaration of " & "ptls_get_time_t" & + " exists but with different size") + ptls_get_time_t + else: + ptls_get_time_t_536871717) + ptls_decompress_certificate_t_536871768 = (when declared( + ptls_decompress_certificate_t): + when ownSizeof(ptls_decompress_certificate_t) != + ownSizeof(ptls_decompress_certificate_t_536871767): + static : + warning("Declaration of " & "ptls_decompress_certificate_t" & + " exists but with different size") + ptls_decompress_certificate_t + else: + ptls_decompress_certificate_t_536871767) + ngtcp2_pkt_stateless_reset_536871417 = (when declared( + ngtcp2_pkt_stateless_reset): + when ownSizeof(ngtcp2_pkt_stateless_reset) != + ownSizeof(ngtcp2_pkt_stateless_reset_536871416): + static : + warning("Declaration of " & "ngtcp2_pkt_stateless_reset" & + " exists but with different size") + ngtcp2_pkt_stateless_reset + else: + ngtcp2_pkt_stateless_reset_536871416) + intptr_t_536871652 = (when declared(intptr_t): + when ownSizeof(intptr_t) != ownSizeof(intptr_t_536871651): + static : + warning("Declaration of " & "intptr_t" & + " exists but with different size") + intptr_t + else: + intptr_t_536871651) + struct_ngtcp2_settings_536871478 = (when declared(struct_ngtcp2_settings): + when ownSizeof(struct_ngtcp2_settings) != ownSizeof(struct_ngtcp2_settings_536871477): + static : + warning("Declaration of " & "struct_ngtcp2_settings" & + " exists but with different size") + struct_ngtcp2_settings + else: + struct_ngtcp2_settings_536871477) + compiler_socklen_t_536871846 = (when declared(compiler_socklen_t): + when ownSizeof(compiler_socklen_t) != ownSizeof(compiler_socklen_t_536871845): + static : + warning("Declaration of " & "compiler_socklen_t" & + " exists but with different size") + compiler_socklen_t + else: + compiler_socklen_t_536871845) + struct_ngtcp2_vec_536871407 = (when declared(struct_ngtcp2_vec): + when ownSizeof(struct_ngtcp2_vec) != ownSizeof(struct_ngtcp2_vec_536871406): + static : + warning("Declaration of " & "struct_ngtcp2_vec" & + " exists but with different size") + struct_ngtcp2_vec + else: + struct_ngtcp2_vec_536871406) + ngtcp2_path_validation_536871572 = (when declared(ngtcp2_path_validation): + when ownSizeof(ngtcp2_path_validation) != ownSizeof(ngtcp2_path_validation_536871571): + static : + warning("Declaration of " & "ngtcp2_path_validation" & + " exists but with different size") + ngtcp2_path_validation + else: + ngtcp2_path_validation_536871571) + ptls_update_traffic_key_t_536871760 = (when declared(ptls_update_traffic_key_t): + when ownSizeof(ptls_update_traffic_key_t) != + ownSizeof(ptls_update_traffic_key_t_536871759): + static : + warning("Declaration of " & "ptls_update_traffic_key_t" & + " exists but with different size") + ptls_update_traffic_key_t + else: + ptls_update_traffic_key_t_536871759) + ngtcp2_crypto_picotls_ctx_536871836 = (when declared(ngtcp2_crypto_picotls_ctx): + when ownSizeof(ngtcp2_crypto_picotls_ctx) != + ownSizeof(ngtcp2_crypto_picotls_ctx_536871835): + static : + warning("Declaration of " & "ngtcp2_crypto_picotls_ctx" & + " exists but with different size") + ngtcp2_crypto_picotls_ctx + else: + ngtcp2_crypto_picotls_ctx_536871835) + ptls_t_536871630 = (when declared(ptls_t): + when ownSizeof(ptls_t) != ownSizeof(ptls_t_536871629): + static : + warning("Declaration of " & "ptls_t" & " exists but with different size") + ptls_t + else: + ptls_t_536871629) + struct_st_ptls_cipher_algorithm_t_536871658 = (when declared( + struct_st_ptls_cipher_algorithm_t): + when ownSizeof(struct_st_ptls_cipher_algorithm_t) != + ownSizeof(struct_st_ptls_cipher_algorithm_t_536871657): + static : + warning("Declaration of " & "struct_st_ptls_cipher_algorithm_t" & + " exists but with different size") + struct_st_ptls_cipher_algorithm_t + else: + struct_st_ptls_cipher_algorithm_t_536871657) + ngtcp2_crypto_ctx_536871516 = (when declared(ngtcp2_crypto_ctx): + when ownSizeof(ngtcp2_crypto_ctx) != ownSizeof(ngtcp2_crypto_ctx_536871515): + static : + warning("Declaration of " & "ngtcp2_crypto_ctx" & + " exists but with different size") + ngtcp2_crypto_ctx + else: + ngtcp2_crypto_ctx_536871515) + struct_ngtcp2_crypto_conn_ref_536871626 = (when declared( + struct_ngtcp2_crypto_conn_ref): + when ownSizeof(struct_ngtcp2_crypto_conn_ref) != + ownSizeof(struct_ngtcp2_crypto_conn_ref_536871625): + static : + warning("Declaration of " & "struct_ngtcp2_crypto_conn_ref" & + " exists but with different size") + struct_ngtcp2_crypto_conn_ref + else: + struct_ngtcp2_crypto_conn_ref_536871625) + struct_st_ptls_openssl_raw_pubkey_verify_certificate_t_536871814 = (when declared( + struct_st_ptls_openssl_raw_pubkey_verify_certificate_t): + when ownSizeof(struct_st_ptls_openssl_raw_pubkey_verify_certificate_t) != + ownSizeof(struct_st_ptls_openssl_raw_pubkey_verify_certificate_t_536871813): + static : + warning("Declaration of " & + "struct_st_ptls_openssl_raw_pubkey_verify_certificate_t" & + " exists but with different size") + struct_st_ptls_openssl_raw_pubkey_verify_certificate_t + else: + struct_st_ptls_openssl_raw_pubkey_verify_certificate_t_536871813) + ngtcp2_crypto_cipher_ctx_536871512 = (when declared(ngtcp2_crypto_cipher_ctx): + when ownSizeof(ngtcp2_crypto_cipher_ctx) != + ownSizeof(ngtcp2_crypto_cipher_ctx_536871511): + static : + warning("Declaration of " & "ngtcp2_crypto_cipher_ctx" & + " exists but with different size") + ngtcp2_crypto_cipher_ctx + else: + ngtcp2_crypto_cipher_ctx_536871511) + ngtcp2_printf_536871466 = (when declared(ngtcp2_printf): + when ownSizeof(ngtcp2_printf) != ownSizeof(ngtcp2_printf_536871465): + static : + warning("Declaration of " & "ngtcp2_printf" & + " exists but with different size") + ngtcp2_printf + else: + ngtcp2_printf_536871465) + struct_st_ptls_verify_certificate_t_536871736 = (when declared( + struct_st_ptls_verify_certificate_t): + when ownSizeof(struct_st_ptls_verify_certificate_t) != + ownSizeof(struct_st_ptls_verify_certificate_t_536871735): + static : + warning("Declaration of " & "struct_st_ptls_verify_certificate_t" & + " exists but with different size") + struct_st_ptls_verify_certificate_t + else: + struct_st_ptls_verify_certificate_t_536871735) + struct_ngtcp2_crypto_picotls_ctx_536871834 = (when declared( + struct_ngtcp2_crypto_picotls_ctx): + when ownSizeof(struct_ngtcp2_crypto_picotls_ctx) != + ownSizeof(struct_ngtcp2_crypto_picotls_ctx_536871833): + static : + warning("Declaration of " & "struct_ngtcp2_crypto_picotls_ctx" & + " exists but with different size") + struct_ngtcp2_crypto_picotls_ctx + else: + struct_ngtcp2_crypto_picotls_ctx_536871833) + ptls_hash_final_mode_t_536871678 = (when declared(ptls_hash_final_mode_t): + when ownSizeof(ptls_hash_final_mode_t) != ownSizeof(ptls_hash_final_mode_t_536871677): + static : + warning("Declaration of " & "ptls_hash_final_mode_t" & + " exists but with different size") + ptls_hash_final_mode_t + else: + ptls_hash_final_mode_t_536871677) + ngtcp2_handshake_completed_536871534 = (when declared( + ngtcp2_handshake_completed): + when ownSizeof(ngtcp2_handshake_completed) != + ownSizeof(ngtcp2_handshake_completed_536871533): + static : + warning("Declaration of " & "ngtcp2_handshake_completed" & + " exists but with different size") + ngtcp2_handshake_completed + else: + ngtcp2_handshake_completed_536871533) + struct_st_ptls_cipher_context_t_536871656 = (when declared( + struct_st_ptls_cipher_context_t): + when ownSizeof(struct_st_ptls_cipher_context_t) != + ownSizeof(struct_st_ptls_cipher_context_t_536871655): + static : + warning("Declaration of " & "struct_st_ptls_cipher_context_t" & + " exists but with different size") + struct_st_ptls_cipher_context_t + else: + struct_st_ptls_cipher_context_t_536871655) + enum_ngtcp2_cc_algo_536871462 = (when declared(enum_ngtcp2_cc_algo): + when ownSizeof(enum_ngtcp2_cc_algo) != ownSizeof(enum_ngtcp2_cc_algo_536871461): + static : + warning("Declaration of " & "enum_ngtcp2_cc_algo" & + " exists but with different size") + enum_ngtcp2_cc_algo + else: + enum_ngtcp2_cc_algo_536871461) + ngtcp2_duration_536871401 = (when declared(ngtcp2_duration): + when ownSizeof(ngtcp2_duration) != ownSizeof(ngtcp2_duration_536871400): + static : + warning("Declaration of " & "ngtcp2_duration" & + " exists but with different size") + ngtcp2_duration + else: + ngtcp2_duration_536871400) + struct_ngtcp2_cid_536871403 = (when declared(struct_ngtcp2_cid): + when ownSizeof(struct_ngtcp2_cid) != ownSizeof(struct_ngtcp2_cid_536871402): + static : + warning("Declaration of " & "struct_ngtcp2_cid" & + " exists but with different size") + struct_ngtcp2_cid + else: + struct_ngtcp2_cid_536871402) + in_port_t_536871844 = (when declared(in_port_t): + when ownSizeof(in_port_t) != ownSizeof(in_port_t_536871843): + static : + warning("Declaration of " & "in_port_t" & + " exists but with different size") + in_port_t + else: + in_port_t_536871843) + struct_st_ptls_update_traffic_key_t_536871758 = (when declared( + struct_st_ptls_update_traffic_key_t): + when ownSizeof(struct_st_ptls_update_traffic_key_t) != + ownSizeof(struct_st_ptls_update_traffic_key_t_536871757): + static : + warning("Declaration of " & "struct_st_ptls_update_traffic_key_t" & + " exists but with different size") + struct_st_ptls_update_traffic_key_t + else: + struct_st_ptls_update_traffic_key_t_536871757) + ngtcp2_vec_536871409 = (when declared(ngtcp2_vec): + when ownSizeof(ngtcp2_vec) != ownSizeof(ngtcp2_vec_536871408): + static : + warning("Declaration of " & "ngtcp2_vec" & + " exists but with different size") + ngtcp2_vec + else: + ngtcp2_vec_536871408) + ptls_save_ticket_t_536871746 = (when declared(ptls_save_ticket_t): + when ownSizeof(ptls_save_ticket_t) != ownSizeof(ptls_save_ticket_t_536871745): + static : + warning("Declaration of " & "ptls_save_ticket_t" & + " exists but with different size") + ptls_save_ticket_t + else: + ptls_save_ticket_t_536871745) + ngtcp2_recv_stateless_reset_536871558 = (when declared( + ngtcp2_recv_stateless_reset): + when ownSizeof(ngtcp2_recv_stateless_reset) != + ownSizeof(ngtcp2_recv_stateless_reset_536871557): + static : + warning("Declaration of " & "ngtcp2_recv_stateless_reset" & + " exists but with different size") + ngtcp2_recv_stateless_reset + else: + ngtcp2_recv_stateless_reset_536871557) + ngtcp2_crypto_md_536871496 = (when declared(ngtcp2_crypto_md): + when ownSizeof(ngtcp2_crypto_md) != ownSizeof(ngtcp2_crypto_md_536871495): + static : + warning("Declaration of " & "ngtcp2_crypto_md" & + " exists but with different size") + ngtcp2_crypto_md + else: + ngtcp2_crypto_md_536871495) + enum_ngtcp2_connection_id_status_type_536871576 = (when declared( + enum_ngtcp2_connection_id_status_type): + when ownSizeof(enum_ngtcp2_connection_id_status_type) != + ownSizeof(enum_ngtcp2_connection_id_status_type_536871575): + static : + warning("Declaration of " & "enum_ngtcp2_connection_id_status_type" & + " exists but with different size") + enum_ngtcp2_connection_id_status_type + else: + enum_ngtcp2_connection_id_status_type_536871575) + ngtcp2_recv_key_536871600 = (when declared(ngtcp2_recv_key): + when ownSizeof(ngtcp2_recv_key) != ownSizeof(ngtcp2_recv_key_536871599): + static : + warning("Declaration of " & "ngtcp2_recv_key" & + " exists but with different size") + ngtcp2_recv_key + else: + ngtcp2_recv_key_536871599) + ngtcp2_remove_connection_id_536871568 = (when declared( + ngtcp2_remove_connection_id): + when ownSizeof(ngtcp2_remove_connection_id) != + ownSizeof(ngtcp2_remove_connection_id_536871567): + static : + warning("Declaration of " & "ngtcp2_remove_connection_id" & + " exists but with different size") + ngtcp2_remove_connection_id + else: + ngtcp2_remove_connection_id_536871567) + ngtcp2_recv_retry_536871540 = (when declared(ngtcp2_recv_retry): + when ownSizeof(ngtcp2_recv_retry) != ownSizeof(ngtcp2_recv_retry_536871539): + static : + warning("Declaration of " & "ngtcp2_recv_retry" & + " exists but with different size") + ngtcp2_recv_retry + else: + ngtcp2_recv_retry_536871539) + ngtcp2_recv_crypto_data_536871532 = (when declared(ngtcp2_recv_crypto_data): + when ownSizeof(ngtcp2_recv_crypto_data) != + ownSizeof(ngtcp2_recv_crypto_data_536871531): + static : + warning("Declaration of " & "ngtcp2_recv_crypto_data" & + " exists but with different size") + ngtcp2_recv_crypto_data + else: + ngtcp2_recv_crypto_data_536871531) + ngtcp2_cid_token_536871610 = (when declared(ngtcp2_cid_token): + when ownSizeof(ngtcp2_cid_token) != ownSizeof(ngtcp2_cid_token_536871609): + static : + warning("Declaration of " & "ngtcp2_cid_token" & + " exists but with different size") + ngtcp2_cid_token + else: + ngtcp2_cid_token_536871609) + struct_st_ptls_buffer_t_536871642 = (when declared(struct_st_ptls_buffer_t): + when ownSizeof(struct_st_ptls_buffer_t) != + ownSizeof(struct_st_ptls_buffer_t_536871641): + static : + warning("Declaration of " & "struct_st_ptls_buffer_t" & + " exists but with different size") + struct_st_ptls_buffer_t + else: + struct_st_ptls_buffer_t_536871641) + ptls_openssl_signature_scheme_t_536871806 = (when declared( + ptls_openssl_signature_scheme_t): + when ownSizeof(ptls_openssl_signature_scheme_t) != + ownSizeof(ptls_openssl_signature_scheme_t_536871805): + static : + warning("Declaration of " & "ptls_openssl_signature_scheme_t" & + " exists but with different size") + ptls_openssl_signature_scheme_t + else: + ptls_openssl_signature_scheme_t_536871805) + struct_st_ptls_log_state_t_536871786 = (when declared( + struct_st_ptls_log_state_t): + when ownSizeof(struct_st_ptls_log_state_t) != + ownSizeof(struct_st_ptls_log_state_t_536871785): + static : + warning("Declaration of " & "struct_st_ptls_log_state_t" & + " exists but with different size") + struct_st_ptls_log_state_t + else: + struct_st_ptls_log_state_t_536871785) + struct_st_ptls_log_event_t_536871748 = (when declared( + struct_st_ptls_log_event_t): + when ownSizeof(struct_st_ptls_log_event_t) != + ownSizeof(struct_st_ptls_log_event_t_536871747): + static : + warning("Declaration of " & "struct_st_ptls_log_event_t" & + " exists but with different size") + struct_st_ptls_log_event_t + else: + struct_st_ptls_log_event_t_536871747) + ngtcp2_realloc_536871381 = (when declared(ngtcp2_realloc): + when ownSizeof(ngtcp2_realloc) != ownSizeof(ngtcp2_realloc_536871380): + static : + warning("Declaration of " & "ngtcp2_realloc" & + " exists but with different size") + ngtcp2_realloc + else: + ngtcp2_realloc_536871380) + X509_STORE_536871824 = (when declared(X509_STORE): + when ownSizeof(X509_STORE) != ownSizeof(X509_STORE_536871823): + static : + warning("Declaration of " & "X509_STORE" & + " exists but with different size") + X509_STORE + else: + X509_STORE_536871823) + HMAC_CTX_536871830 = (when declared(HMAC_CTX): + when ownSizeof(HMAC_CTX) != ownSizeof(HMAC_CTX_536871829): + static : + warning("Declaration of " & "HMAC_CTX" & + " exists but with different size") + HMAC_CTX + else: + HMAC_CTX_536871829) + ngtcp2_crypto_aead_536871500 = (when declared(ngtcp2_crypto_aead): + when ownSizeof(ngtcp2_crypto_aead) != ownSizeof(ngtcp2_crypto_aead_536871499): + static : + warning("Declaration of " & "ngtcp2_crypto_aead" & + " exists but with different size") + ngtcp2_crypto_aead + else: + ngtcp2_crypto_aead_536871499) + struct_st_ptls_openssl_override_verify_certificate_t_536871818 = (when declared( + struct_st_ptls_openssl_override_verify_certificate_t): + when ownSizeof(struct_st_ptls_openssl_override_verify_certificate_t) != + ownSizeof(struct_st_ptls_openssl_override_verify_certificate_t_536871817): + static : + warning("Declaration of " & + "struct_st_ptls_openssl_override_verify_certificate_t" & + " exists but with different size") + struct_st_ptls_openssl_override_verify_certificate_t + else: + struct_st_ptls_openssl_override_verify_certificate_t_536871817) + ngtcp2_extend_max_stream_data_536871562 = (when declared( + ngtcp2_extend_max_stream_data): + when ownSizeof(ngtcp2_extend_max_stream_data) != + ownSizeof(ngtcp2_extend_max_stream_data_536871561): + static : + warning("Declaration of " & "ngtcp2_extend_max_stream_data" & + " exists but with different size") + ngtcp2_extend_max_stream_data + else: + ngtcp2_extend_max_stream_data_536871561) + struct_st_ptls_async_job_t_536871728 = (when declared( + struct_st_ptls_async_job_t): + when ownSizeof(struct_st_ptls_async_job_t) != + ownSizeof(struct_st_ptls_async_job_t_536871727): + static : + warning("Declaration of " & "struct_st_ptls_async_job_t" & + " exists but with different size") + struct_st_ptls_async_job_t + else: + struct_st_ptls_async_job_t_536871727) + ngtcp2_conn_536871522 = (when declared(ngtcp2_conn): + when ownSizeof(ngtcp2_conn) != ownSizeof(ngtcp2_conn_536871521): + static : + warning("Declaration of " & "ngtcp2_conn" & + " exists but with different size") + ngtcp2_conn + else: + ngtcp2_conn_536871521) + ngtcp2_delete_crypto_cipher_ctx_536871586 = (when declared( + ngtcp2_delete_crypto_cipher_ctx): + when ownSizeof(ngtcp2_delete_crypto_cipher_ctx) != + ownSizeof(ngtcp2_delete_crypto_cipher_ctx_536871585): + static : + warning("Declaration of " & "ngtcp2_delete_crypto_cipher_ctx" & + " exists but with different size") + ngtcp2_delete_crypto_cipher_ctx + else: + ngtcp2_delete_crypto_cipher_ctx_536871585) + ptls_log_conn_state_t_536871794 = (when declared(ptls_log_conn_state_t): + when ownSizeof(ptls_log_conn_state_t) != ownSizeof(ptls_log_conn_state_t_536871793): + static : + warning("Declaration of " & "ptls_log_conn_state_t" & + " exists but with different size") + ptls_log_conn_state_t + else: + ptls_log_conn_state_t_536871793) + struct_st_ptls_openssl_sign_certificate_t_536871808 = (when declared( + struct_st_ptls_openssl_sign_certificate_t): + when ownSizeof(struct_st_ptls_openssl_sign_certificate_t) != + ownSizeof(struct_st_ptls_openssl_sign_certificate_t_536871807): + static : + warning("Declaration of " & "struct_st_ptls_openssl_sign_certificate_t" & + " exists but with different size") + struct_st_ptls_openssl_sign_certificate_t + else: + struct_st_ptls_openssl_sign_certificate_t_536871807) + sa_family_t_536871842 = (when declared(sa_family_t): + when ownSizeof(sa_family_t) != ownSizeof(sa_family_t_536871841): + static : + warning("Declaration of " & "sa_family_t" & + " exists but with different size") + sa_family_t + else: + sa_family_t_536871841) + struct_ngtcp2_crypto_cipher_ctx_536871510 = (when declared( + struct_ngtcp2_crypto_cipher_ctx): + when ownSizeof(struct_ngtcp2_crypto_cipher_ctx) != + ownSizeof(struct_ngtcp2_crypto_cipher_ctx_536871509): + static : + warning("Declaration of " & "struct_ngtcp2_crypto_cipher_ctx" & + " exists but with different size") + struct_ngtcp2_crypto_cipher_ctx + else: + struct_ngtcp2_crypto_cipher_ctx_536871509) + ngtcp2_client_initial_536871524 = (when declared(ngtcp2_client_initial): + when ownSizeof(ngtcp2_client_initial) != ownSizeof(ngtcp2_client_initial_536871523): + static : + warning("Declaration of " & "ngtcp2_client_initial" & + " exists but with different size") + ngtcp2_client_initial + else: + ngtcp2_client_initial_536871523) + struct_ngtcp2_cid_token_536871608 = (when declared(struct_ngtcp2_cid_token): + when ownSizeof(struct_ngtcp2_cid_token) != + ownSizeof(struct_ngtcp2_cid_token_536871607): + static : + warning("Declaration of " & "struct_ngtcp2_cid_token" & + " exists but with different size") + struct_ngtcp2_cid_token + else: + struct_ngtcp2_cid_token_536871607) + ngtcp2_delete_crypto_aead_ctx_536871584 = (when declared( + ngtcp2_delete_crypto_aead_ctx): + when ownSizeof(ngtcp2_delete_crypto_aead_ctx) != + ownSizeof(ngtcp2_delete_crypto_aead_ctx_536871583): + static : + warning("Declaration of " & "ngtcp2_delete_crypto_aead_ctx" & + " exists but with different size") + ngtcp2_delete_crypto_aead_ctx + else: + ngtcp2_delete_crypto_aead_ctx_536871583) + struct_st_ptls_hpke_cipher_suite_t_536871704 = (when declared( + struct_st_ptls_hpke_cipher_suite_t): + when ownSizeof(struct_st_ptls_hpke_cipher_suite_t) != + ownSizeof(struct_st_ptls_hpke_cipher_suite_t_536871703): + static : + warning("Declaration of " & "struct_st_ptls_hpke_cipher_suite_t" & + " exists but with different size") + struct_st_ptls_hpke_cipher_suite_t + else: + struct_st_ptls_hpke_cipher_suite_t_536871703) + ngtcp2_tstamp_536871399 = (when declared(ngtcp2_tstamp): + when ownSizeof(ngtcp2_tstamp) != ownSizeof(ngtcp2_tstamp_536871398): + static : + warning("Declaration of " & "ngtcp2_tstamp" & + " exists but with different size") + ngtcp2_tstamp + else: + ngtcp2_tstamp_536871398) + ngtcp2_select_preferred_addr_536871574 = (when declared( + ngtcp2_select_preferred_addr): + when ownSizeof(ngtcp2_select_preferred_addr) != + ownSizeof(ngtcp2_select_preferred_addr_536871573): + static : + warning("Declaration of " & "ngtcp2_select_preferred_addr" & + " exists but with different size") + ngtcp2_select_preferred_addr + else: + ngtcp2_select_preferred_addr_536871573) + struct_st_ptls_get_time_t_536871716 = (when declared(struct_st_ptls_get_time_t): + when ownSizeof(struct_st_ptls_get_time_t) != + ownSizeof(struct_st_ptls_get_time_t_536871715): + static : + warning("Declaration of " & "struct_st_ptls_get_time_t" & + " exists but with different size") + struct_st_ptls_get_time_t + else: + struct_st_ptls_get_time_t_536871715) + struct_st_ptls_handshake_properties_t_536871782 = (when declared( + struct_st_ptls_handshake_properties_t): + when ownSizeof(struct_st_ptls_handshake_properties_t) != + ownSizeof(struct_st_ptls_handshake_properties_t_536871781): + static : + warning("Declaration of " & "struct_st_ptls_handshake_properties_t" & + " exists but with different size") + struct_st_ptls_handshake_properties_t + else: + struct_st_ptls_handshake_properties_t_536871781) + ptls_client_hello_psk_identity_t_536871710 = (when declared( + ptls_client_hello_psk_identity_t): + when ownSizeof(ptls_client_hello_psk_identity_t) != + ownSizeof(ptls_client_hello_psk_identity_t_536871709): + static : + warning("Declaration of " & "ptls_client_hello_psk_identity_t" & + " exists but with different size") + ptls_client_hello_psk_identity_t + else: + ptls_client_hello_psk_identity_t_536871709) + struct_ngtcp2_crypto_aead_ctx_536871506 = (when declared( + struct_ngtcp2_crypto_aead_ctx): + when ownSizeof(struct_ngtcp2_crypto_aead_ctx) != + ownSizeof(struct_ngtcp2_crypto_aead_ctx_536871505): + static : + warning("Declaration of " & "struct_ngtcp2_crypto_aead_ctx" & + " exists but with different size") + struct_ngtcp2_crypto_aead_ctx + else: + struct_ngtcp2_crypto_aead_ctx_536871505) + ngtcp2_acked_stream_data_offset_536871556 = (when declared( + ngtcp2_acked_stream_data_offset): + when ownSizeof(ngtcp2_acked_stream_data_offset) != + ownSizeof(ngtcp2_acked_stream_data_offset_536871555): + static : + warning("Declaration of " & "ngtcp2_acked_stream_data_offset" & + " exists but with different size") + ngtcp2_acked_stream_data_offset + else: + ngtcp2_acked_stream_data_offset_536871555) + ngtcp2_transport_params_536871449 = (when declared(ngtcp2_transport_params): + when ownSizeof(ngtcp2_transport_params) != + ownSizeof(ngtcp2_transport_params_536871448): + static : + warning("Declaration of " & "ngtcp2_transport_params" & + " exists but with different size") + ngtcp2_transport_params + else: + ngtcp2_transport_params_536871448) + struct_ngtcp2_pkt_info_536871387 = (when declared(struct_ngtcp2_pkt_info): + when ownSizeof(struct_ngtcp2_pkt_info) != ownSizeof(struct_ngtcp2_pkt_info_536871386): + static : + warning("Declaration of " & "struct_ngtcp2_pkt_info" & + " exists but with different size") + struct_ngtcp2_pkt_info + else: + struct_ngtcp2_pkt_info_536871386) + ptls_emit_certificate_t_536871726 = (when declared(ptls_emit_certificate_t): + when ownSizeof(ptls_emit_certificate_t) != + ownSizeof(ptls_emit_certificate_t_536871725): + static : + warning("Declaration of " & "ptls_emit_certificate_t" & + " exists but with different size") + ptls_emit_certificate_t + else: + ptls_emit_certificate_t_536871725) + enum_en_ptls_early_data_acceptance_t_536871778 = (when declared( + enum_en_ptls_early_data_acceptance_t): + when ownSizeof(enum_en_ptls_early_data_acceptance_t) != + ownSizeof(enum_en_ptls_early_data_acceptance_t_536871777): + static : + warning("Declaration of " & "enum_en_ptls_early_data_acceptance_t" & + " exists but with different size") + enum_en_ptls_early_data_acceptance_t + else: + enum_en_ptls_early_data_acceptance_t_536871777) + struct_ngtcp2_transport_params_536871447 = (when declared( + struct_ngtcp2_transport_params): + when ownSizeof(struct_ngtcp2_transport_params) != + ownSizeof(struct_ngtcp2_transport_params_536871446): + static : + warning("Declaration of " & "struct_ngtcp2_transport_params" & + " exists but with different size") + struct_ngtcp2_transport_params + else: + struct_ngtcp2_transport_params_536871446) + struct_in_addr_536871798 = (when declared(struct_in_addr): + when ownSizeof(struct_in_addr) != ownSizeof(struct_in_addr_536871797): + static : + warning("Declaration of " & "struct_in_addr" & + " exists but with different size") + struct_in_addr + else: + struct_in_addr_536871797) + ngtcp2_crypto_get_conn_536871628 = (when declared(ngtcp2_crypto_get_conn): + when ownSizeof(ngtcp2_crypto_get_conn) != ownSizeof(ngtcp2_crypto_get_conn_536871627): + static : + warning("Declaration of " & "ngtcp2_crypto_get_conn" & + " exists but with different size") + ngtcp2_crypto_get_conn + else: + ngtcp2_crypto_get_conn_536871627) + ptls_aead_context_t_536871672 = (when declared(ptls_aead_context_t): + when ownSizeof(ptls_aead_context_t) != ownSizeof(ptls_aead_context_t_536871671): + static : + warning("Declaration of " & "ptls_aead_context_t" & + " exists but with different size") + ptls_aead_context_t + else: + ptls_aead_context_t_536871671) + ngtcp2_cc_algo_536871464 = (when declared(ngtcp2_cc_algo): + when ownSizeof(ngtcp2_cc_algo) != ownSizeof(ngtcp2_cc_algo_536871463): + static : + warning("Declaration of " & "ngtcp2_cc_algo" & + " exists but with different size") + ngtcp2_cc_algo + else: + ngtcp2_cc_algo_536871463) + ngtcp2_sockaddr_536871419 = (when declared(ngtcp2_sockaddr): + when ownSizeof(ngtcp2_sockaddr) != ownSizeof(ngtcp2_sockaddr_536871418): + static : + warning("Declaration of " & "ngtcp2_sockaddr" & + " exists but with different size") + ngtcp2_sockaddr + else: + ngtcp2_sockaddr_536871418) + ngtcp2_decrypt_536871544 = (when declared(ngtcp2_decrypt): + when ownSizeof(ngtcp2_decrypt) != ownSizeof(ngtcp2_decrypt_536871543): + static : + warning("Declaration of " & "ngtcp2_decrypt" & + " exists but with different size") + ngtcp2_decrypt + else: + ngtcp2_decrypt_536871543) + struct_st_ptls_aead_context_t_536871668 = (when declared( + struct_st_ptls_aead_context_t): + when ownSizeof(struct_st_ptls_aead_context_t) != + ownSizeof(struct_st_ptls_aead_context_t_536871667): + static : + warning("Declaration of " & "struct_st_ptls_aead_context_t" & + " exists but with different size") + struct_st_ptls_aead_context_t + else: + struct_st_ptls_aead_context_t_536871667) + ptls_openssl_verify_certificate_t_536871826 = (when declared( + ptls_openssl_verify_certificate_t): + when ownSizeof(ptls_openssl_verify_certificate_t) != + ownSizeof(ptls_openssl_verify_certificate_t_536871825): + static : + warning("Declaration of " & "ptls_openssl_verify_certificate_t" & + " exists but with different size") + ptls_openssl_verify_certificate_t + else: + ptls_openssl_verify_certificate_t_536871825) + struct_st_ptls_decompress_certificate_t_536871766 = (when declared( + struct_st_ptls_decompress_certificate_t): + when ownSizeof(struct_st_ptls_decompress_certificate_t) != + ownSizeof(struct_st_ptls_decompress_certificate_t_536871765): + static : + warning("Declaration of " & "struct_st_ptls_decompress_certificate_t" & + " exists but with different size") + struct_st_ptls_decompress_certificate_t + else: + struct_st_ptls_decompress_certificate_t_536871765) + ngtcp2_pkt_type_536871393 = (when declared(ngtcp2_pkt_type): + when ownSizeof(ngtcp2_pkt_type) != ownSizeof(ngtcp2_pkt_type_536871392): + static : + warning("Declaration of " & "ngtcp2_pkt_type" & + " exists but with different size") + ngtcp2_pkt_type + else: + ngtcp2_pkt_type_536871392) + ptls_hpke_cipher_suite_id_t_536871702 = (when declared( + ptls_hpke_cipher_suite_id_t): + when ownSizeof(ptls_hpke_cipher_suite_id_t) != + ownSizeof(ptls_hpke_cipher_suite_id_t_536871701): + static : + warning("Declaration of " & "ptls_hpke_cipher_suite_id_t" & + " exists but with different size") + ptls_hpke_cipher_suite_id_t + else: + ptls_hpke_cipher_suite_id_t_536871701) + struct_ngtcp2_mem_536871383 = (when declared(struct_ngtcp2_mem): + when ownSizeof(struct_ngtcp2_mem) != ownSizeof(struct_ngtcp2_mem_536871382): + static : + warning("Declaration of " & "struct_ngtcp2_mem" & + " exists but with different size") + struct_ngtcp2_mem + else: + struct_ngtcp2_mem_536871382) + ngtcp2_calloc_536871379 = (when declared(ngtcp2_calloc): + when ownSizeof(ngtcp2_calloc) != ownSizeof(ngtcp2_calloc_536871378): + static : + warning("Declaration of " & "ngtcp2_calloc" & + " exists but with different size") + ngtcp2_calloc + else: + ngtcp2_calloc_536871378) + struct_ngtcp2_preferred_addr_536871439 = (when declared( + struct_ngtcp2_preferred_addr): + when ownSizeof(struct_ngtcp2_preferred_addr) != + ownSizeof(struct_ngtcp2_preferred_addr_536871438): + static : + warning("Declaration of " & "struct_ngtcp2_preferred_addr" & + " exists but with different size") + struct_ngtcp2_preferred_addr + else: + struct_ngtcp2_preferred_addr_536871438) + ngtcp2_path_storage_536871492 = (when declared(ngtcp2_path_storage): + when ownSizeof(ngtcp2_path_storage) != ownSizeof(ngtcp2_path_storage_536871491): + static : + warning("Declaration of " & "ngtcp2_path_storage" & + " exists but with different size") + ngtcp2_path_storage + else: + ngtcp2_path_storage_536871491) + ngtcp2_addr_536871484 = (when declared(ngtcp2_addr): + when ownSizeof(ngtcp2_addr) != ownSizeof(ngtcp2_addr_536871483): + static : + warning("Declaration of " & "ngtcp2_addr" & + " exists but with different size") + ngtcp2_addr + else: + ngtcp2_addr_536871483) + ngtcp2_tls_early_data_rejected_536871602 = (when declared( + ngtcp2_tls_early_data_rejected): + when ownSizeof(ngtcp2_tls_early_data_rejected) != + ownSizeof(ngtcp2_tls_early_data_rejected_536871601): + static : + warning("Declaration of " & "ngtcp2_tls_early_data_rejected" & + " exists but with different size") + ngtcp2_tls_early_data_rejected + else: + ngtcp2_tls_early_data_rejected_536871601) + struct_st_ptls_hpke_cipher_suite_id_t_536871700 = (when declared( + struct_st_ptls_hpke_cipher_suite_id_t): + when ownSizeof(struct_st_ptls_hpke_cipher_suite_id_t) != + ownSizeof(struct_st_ptls_hpke_cipher_suite_id_t_536871699): + static : + warning("Declaration of " & "struct_st_ptls_hpke_cipher_suite_id_t" & + " exists but with different size") + struct_st_ptls_hpke_cipher_suite_id_t + else: + struct_st_ptls_hpke_cipher_suite_id_t_536871699) + EVP_MD_536871804 = (when declared(EVP_MD): + when ownSizeof(EVP_MD) != ownSizeof(EVP_MD_536871803): + static : + warning("Declaration of " & "EVP_MD" & " exists but with different size") + EVP_MD + else: + EVP_MD_536871803) + ngtcp2_stream_reset_536871554 = (when declared(ngtcp2_stream_reset): + when ownSizeof(ngtcp2_stream_reset) != ownSizeof(ngtcp2_stream_reset_536871553): + static : + warning("Declaration of " & "ngtcp2_stream_reset" & + " exists but with different size") + ngtcp2_stream_reset + else: + ngtcp2_stream_reset_536871553) + struct_st_ptls_iovec_t_536871638 = (when declared(struct_st_ptls_iovec_t): + when ownSizeof(struct_st_ptls_iovec_t) != ownSizeof(struct_st_ptls_iovec_t_536871637): + static : + warning("Declaration of " & "struct_st_ptls_iovec_t" & + " exists but with different size") + struct_st_ptls_iovec_t + else: + struct_st_ptls_iovec_t_536871637) + ngtcp2_recv_stream_data_536871548 = (when declared(ngtcp2_recv_stream_data): + when ownSizeof(ngtcp2_recv_stream_data) != + ownSizeof(ngtcp2_recv_stream_data_536871547): + static : + warning("Declaration of " & "ngtcp2_recv_stream_data" & + " exists but with different size") + ngtcp2_recv_stream_data + else: + ngtcp2_recv_stream_data_536871547) + struct_ngtcp2_crypto_ctx_536871514 = (when declared(struct_ngtcp2_crypto_ctx): + when ownSizeof(struct_ngtcp2_crypto_ctx) != + ownSizeof(struct_ngtcp2_crypto_ctx_536871513): + static : + warning("Declaration of " & "struct_ngtcp2_crypto_ctx" & + " exists but with different size") + struct_ngtcp2_crypto_ctx + else: + struct_ngtcp2_crypto_ctx_536871513) + ngtcp2_version_info_536871445 = (when declared(ngtcp2_version_info): + when ownSizeof(ngtcp2_version_info) != ownSizeof(ngtcp2_version_info_536871444): + static : + warning("Declaration of " & "ngtcp2_version_info" & + " exists but with different size") + ngtcp2_version_info + else: + ngtcp2_version_info_536871444) + enum_en_ptls_hash_final_mode_t_536871676 = (when declared( + enum_en_ptls_hash_final_mode_t): + when ownSizeof(enum_en_ptls_hash_final_mode_t) != + ownSizeof(enum_en_ptls_hash_final_mode_t_536871675): + static : + warning("Declaration of " & "enum_en_ptls_hash_final_mode_t" & + " exists but with different size") + enum_en_ptls_hash_final_mode_t + else: + enum_en_ptls_hash_final_mode_t_536871675) + ngtcp2_socklen_536871431 = (when declared(ngtcp2_socklen): + when ownSizeof(ngtcp2_socklen) != ownSizeof(ngtcp2_socklen_536871430): + static : + warning("Declaration of " & "ngtcp2_socklen" & + " exists but with different size") + ngtcp2_socklen + else: + ngtcp2_socklen_536871430) + struct_st_ptls_cipher_suite_t_536871688 = (when declared( + struct_st_ptls_cipher_suite_t): + when ownSizeof(struct_st_ptls_cipher_suite_t) != + ownSizeof(struct_st_ptls_cipher_suite_t_536871687): + static : + warning("Declaration of " & "struct_st_ptls_cipher_suite_t" & + " exists but with different size") + struct_st_ptls_cipher_suite_t + else: + struct_st_ptls_cipher_suite_t_536871687) + ngtcp2_recv_client_initial_536871526 = (when declared( + ngtcp2_recv_client_initial): + when ownSizeof(ngtcp2_recv_client_initial) != + ownSizeof(ngtcp2_recv_client_initial_536871525): + static : + warning("Declaration of " & "ngtcp2_recv_client_initial" & + " exists but with different size") + ngtcp2_recv_client_initial + else: + ngtcp2_recv_client_initial_536871525) + compiler_ssize_t_536871848 = (when declared(compiler_ssize_t): + when ownSizeof(compiler_ssize_t) != ownSizeof(compiler_ssize_t_536871847): + static : + warning("Declaration of " & "compiler_ssize_t" & + " exists but with different size") + compiler_ssize_t + else: + compiler_ssize_t_536871847) + ptls_hpke_kem_t_536871698 = (when declared(ptls_hpke_kem_t): + when ownSizeof(ptls_hpke_kem_t) != ownSizeof(ptls_hpke_kem_t_536871697): + static : + warning("Declaration of " & "ptls_hpke_kem_t" & + " exists but with different size") + ptls_hpke_kem_t + else: + ptls_hpke_kem_t_536871697) + ptls_key_exchange_algorithm_t_536871654 = (when declared( + ptls_key_exchange_algorithm_t): + when ownSizeof(ptls_key_exchange_algorithm_t) != + ownSizeof(ptls_key_exchange_algorithm_t_536871653): + static : + warning("Declaration of " & "ptls_key_exchange_algorithm_t" & + " exists but with different size") + ptls_key_exchange_algorithm_t + else: + ptls_key_exchange_algorithm_t_536871653) + ngtcp2_callbacks_536871606 = (when declared(ngtcp2_callbacks): + when ownSizeof(ngtcp2_callbacks) != ownSizeof(ngtcp2_callbacks_536871605): + static : + warning("Declaration of " & "ngtcp2_callbacks" & + " exists but with different size") + ngtcp2_callbacks + else: + ngtcp2_callbacks_536871605) + ngtcp2_crypto_cipher_536871504 = (when declared(ngtcp2_crypto_cipher): + when ownSizeof(ngtcp2_crypto_cipher) != ownSizeof(ngtcp2_crypto_cipher_536871503): + static : + warning("Declaration of " & "ngtcp2_crypto_cipher" & + " exists but with different size") + ngtcp2_crypto_cipher + else: + ngtcp2_crypto_cipher_536871503) + struct_st_ptls_sign_certificate_t_536871732 = (when declared( + struct_st_ptls_sign_certificate_t): + when ownSizeof(struct_st_ptls_sign_certificate_t) != + ownSizeof(struct_st_ptls_sign_certificate_t_536871731): + static : + warning("Declaration of " & "struct_st_ptls_sign_certificate_t" & + " exists but with different size") + struct_st_ptls_sign_certificate_t + else: + struct_st_ptls_sign_certificate_t_536871731) + struct_st_ptls_emit_certificate_t_536871724 = (when declared( + struct_st_ptls_emit_certificate_t): + when ownSizeof(struct_st_ptls_emit_certificate_t) != + ownSizeof(struct_st_ptls_emit_certificate_t_536871723): + static : + warning("Declaration of " & "struct_st_ptls_emit_certificate_t" & + " exists but with different size") + struct_st_ptls_emit_certificate_t + else: + struct_st_ptls_emit_certificate_t_536871723) + socklen_t_536871433 = (when declared(socklen_t): + when ownSizeof(socklen_t) != ownSizeof(socklen_t_536871432): + static : + warning("Declaration of " & "socklen_t" & + " exists but with different size") + socklen_t + else: + socklen_t_536871432) + ptls_raw_extension_t_536871776 = (when declared(ptls_raw_extension_t): + when ownSizeof(ptls_raw_extension_t) != ownSizeof(ptls_raw_extension_t_536871775): + static : + warning("Declaration of " & "ptls_raw_extension_t" & + " exists but with different size") + ptls_raw_extension_t + else: + ptls_raw_extension_t_536871775) + ngtcp2_lost_datagram_536871592 = (when declared(ngtcp2_lost_datagram): + when ownSizeof(ngtcp2_lost_datagram) != ownSizeof(ngtcp2_lost_datagram_536871591): + static : + warning("Declaration of " & "ngtcp2_lost_datagram" & + " exists but with different size") + ngtcp2_lost_datagram + else: + ngtcp2_lost_datagram_536871591) + struct_ngtcp2_pkt_hd_536871411 = (when declared(struct_ngtcp2_pkt_hd): + when ownSizeof(struct_ngtcp2_pkt_hd) != ownSizeof(struct_ngtcp2_pkt_hd_536871410): + static : + warning("Declaration of " & "struct_ngtcp2_pkt_hd" & + " exists but with different size") + struct_ngtcp2_pkt_hd + else: + struct_ngtcp2_pkt_hd_536871410) + ptls_hash_context_t_536871682 = (when declared(ptls_hash_context_t): + when ownSizeof(ptls_hash_context_t) != ownSizeof(ptls_hash_context_t_536871681): + static : + warning("Declaration of " & "ptls_hash_context_t" & + " exists but with different size") + ptls_hash_context_t + else: + ptls_hash_context_t_536871681) + ptls_verify_certificate_t_536871738 = (when declared(ptls_verify_certificate_t): + when ownSizeof(ptls_verify_certificate_t) != + ownSizeof(ptls_verify_certificate_t_536871737): + static : + warning("Declaration of " & "ptls_verify_certificate_t" & + " exists but with different size") + ptls_verify_certificate_t + else: + ptls_verify_certificate_t_536871737) + ngtcp2_ccerr_536871618 = (when declared(ngtcp2_ccerr): + when ownSizeof(ngtcp2_ccerr) != ownSizeof(ngtcp2_ccerr_536871617): + static : + warning("Declaration of " & "ngtcp2_ccerr" & + " exists but with different size") + ngtcp2_ccerr + else: + ngtcp2_ccerr_536871617) + ngtcp2_stream_close_536871552 = (when declared(ngtcp2_stream_close): + when ownSizeof(ngtcp2_stream_close) != ownSizeof(ngtcp2_stream_close_536871551): + static : + warning("Declaration of " & "ngtcp2_stream_close" & + " exists but with different size") + ngtcp2_stream_close + else: + ngtcp2_stream_close_536871551) + ssize_t_536871754 = (when declared(ssize_t): + when ownSizeof(ssize_t) != ownSizeof(ssize_t_536871753): + static : + warning("Declaration of " & "ssize_t" & + " exists but with different size") + ssize_t + else: + ssize_t_536871753) + ngtcp2_free_536871377 = (when declared(ngtcp2_free): + when ownSizeof(ngtcp2_free) != ownSizeof(ngtcp2_free_536871376): + static : + warning("Declaration of " & "ngtcp2_free" & + " exists but with different size") + ngtcp2_free + else: + ngtcp2_free_536871376) + struct_st_ptls_log_t_536871796 = (when declared(struct_st_ptls_log_t): + when ownSizeof(struct_st_ptls_log_t) != ownSizeof(struct_st_ptls_log_t_536871795): + static : + warning("Declaration of " & "struct_st_ptls_log_t" & + " exists but with different size") + struct_st_ptls_log_t + else: + struct_st_ptls_log_t_536871795) + ngtcp2_conn_info_536871460 = (when declared(ngtcp2_conn_info): + when ownSizeof(ngtcp2_conn_info) != ownSizeof(ngtcp2_conn_info_536871459): + static : + warning("Declaration of " & "ngtcp2_conn_info" & + " exists but with different size") + ngtcp2_conn_info + else: + ngtcp2_conn_info_536871459) + ngtcp2_handshake_confirmed_536871536 = (when declared( + ngtcp2_handshake_confirmed): + when ownSizeof(ngtcp2_handshake_confirmed) != + ownSizeof(ngtcp2_handshake_confirmed_536871535): + static : + warning("Declaration of " & "ngtcp2_handshake_confirmed" & + " exists but with different size") + ngtcp2_handshake_confirmed + else: + ngtcp2_handshake_confirmed_536871535) + ptls_ech_create_opener_t_536871772 = (when declared(ptls_ech_create_opener_t): + when ownSizeof(ptls_ech_create_opener_t) != + ownSizeof(ptls_ech_create_opener_t_536871771): + static : + warning("Declaration of " & "ptls_ech_create_opener_t" & + " exists but with different size") + ptls_ech_create_opener_t + else: + ptls_ech_create_opener_t_536871771) + ptls_openssl_raw_pubkey_verify_certificate_t_536871816 = (when declared( + ptls_openssl_raw_pubkey_verify_certificate_t): + when ownSizeof(ptls_openssl_raw_pubkey_verify_certificate_t) != + ownSizeof(ptls_openssl_raw_pubkey_verify_certificate_t_536871815): + static : + warning("Declaration of " & + "ptls_openssl_raw_pubkey_verify_certificate_t" & + " exists but with different size") + ptls_openssl_raw_pubkey_verify_certificate_t + else: + ptls_openssl_raw_pubkey_verify_certificate_t_536871815) + ngtcp2_qlog_write_536871472 = (when declared(ngtcp2_qlog_write): + when ownSizeof(ngtcp2_qlog_write) != ownSizeof(ngtcp2_qlog_write_536871471): + static : + warning("Declaration of " & "ngtcp2_qlog_write" & + " exists but with different size") + ngtcp2_qlog_write + else: + ngtcp2_qlog_write_536871471) + struct_ngtcp2_addr_536871482 = (when declared(struct_ngtcp2_addr): + when ownSizeof(struct_ngtcp2_addr) != ownSizeof(struct_ngtcp2_addr_536871481): + static : + warning("Declaration of " & "struct_ngtcp2_addr" & + " exists but with different size") + struct_ngtcp2_addr + else: + struct_ngtcp2_addr_536871481) + ngtcp2_update_key_536871570 = (when declared(ngtcp2_update_key): + when ownSizeof(ngtcp2_update_key) != ownSizeof(ngtcp2_update_key_536871569): + static : + warning("Declaration of " & "ngtcp2_update_key" & + " exists but with different size") + ngtcp2_update_key + else: + ngtcp2_update_key_536871569) + ptls_log_event_t_536871750 = (when declared(ptls_log_event_t): + when ownSizeof(ptls_log_event_t) != ownSizeof(ptls_log_event_t_536871749): + static : + warning("Declaration of " & "ptls_log_event_t" & + " exists but with different size") + ptls_log_event_t + else: + ptls_log_event_t_536871749) + struct_st_ptls_openssl_signature_scheme_t_536871802 = (when declared( + struct_st_ptls_openssl_signature_scheme_t): + when ownSizeof(struct_st_ptls_openssl_signature_scheme_t) != + ownSizeof(struct_st_ptls_openssl_signature_scheme_t_536871801): + static : + warning("Declaration of " & "struct_st_ptls_openssl_signature_scheme_t" & + " exists but with different size") + struct_st_ptls_openssl_signature_scheme_t + else: + struct_st_ptls_openssl_signature_scheme_t_536871801) + ngtcp2_ack_datagram_536871590 = (when declared(ngtcp2_ack_datagram): + when ownSizeof(ngtcp2_ack_datagram) != ownSizeof(ngtcp2_ack_datagram_536871589): + static : + warning("Declaration of " & "ngtcp2_ack_datagram" & + " exists but with different size") + ngtcp2_ack_datagram + else: + ngtcp2_ack_datagram_536871589) + ngtcp2_ccerr_type_536871614 = (when declared(ngtcp2_ccerr_type): + when ownSizeof(ngtcp2_ccerr_type) != ownSizeof(ngtcp2_ccerr_type_536871613): + static : + warning("Declaration of " & "ngtcp2_ccerr_type" & + " exists but with different size") + ngtcp2_ccerr_type + else: + ngtcp2_ccerr_type_536871613) + struct_st_ptls_hpke_kem_t_536871696 = (when declared(struct_st_ptls_hpke_kem_t): + when ownSizeof(struct_st_ptls_hpke_kem_t) != + ownSizeof(struct_st_ptls_hpke_kem_t_536871695): + static : + warning("Declaration of " & "struct_st_ptls_hpke_kem_t" & + " exists but with different size") + struct_st_ptls_hpke_kem_t + else: + struct_st_ptls_hpke_kem_t_536871695) + union_ngtcp2_sockaddr_union_536871435 = (when declared( + union_ngtcp2_sockaddr_union): + when ownSizeof(union_ngtcp2_sockaddr_union) != + ownSizeof(union_ngtcp2_sockaddr_union_536871434): + static : + warning("Declaration of " & "union_ngtcp2_sockaddr_union" & + " exists but with different size") + union_ngtcp2_sockaddr_union + else: + union_ngtcp2_sockaddr_union_536871434) + struct_st_ptls_raw_extension_t_536871774 = (when declared( + struct_st_ptls_raw_extension_t): + when ownSizeof(struct_st_ptls_raw_extension_t) != + ownSizeof(struct_st_ptls_raw_extension_t_536871773): + static : + warning("Declaration of " & "struct_st_ptls_raw_extension_t" & + " exists but with different size") + struct_st_ptls_raw_extension_t + else: + struct_st_ptls_raw_extension_t_536871773) + ngtcp2_path_validation_result_536871397 = (when declared( + ngtcp2_path_validation_result): + when ownSizeof(ngtcp2_path_validation_result) != + ownSizeof(ngtcp2_path_validation_result_536871396): + static : + warning("Declaration of " & "ngtcp2_path_validation_result" & + " exists but with different size") + ngtcp2_path_validation_result + else: + ngtcp2_path_validation_result_536871396) + ngtcp2_cid_536871405 = (when declared(ngtcp2_cid): + when ownSizeof(ngtcp2_cid) != ownSizeof(ngtcp2_cid_536871404): + static : + warning("Declaration of " & "ngtcp2_cid" & + " exists but with different size") + ngtcp2_cid + else: + ngtcp2_cid_536871404) + struct_st_ptls_key_exchange_context_t_536871646 = (when declared( + struct_st_ptls_key_exchange_context_t): + when ownSizeof(struct_st_ptls_key_exchange_context_t) != + ownSizeof(struct_st_ptls_key_exchange_context_t_536871645): + static : + warning("Declaration of " & "struct_st_ptls_key_exchange_context_t" & + " exists but with different size") + struct_st_ptls_key_exchange_context_t + else: + struct_st_ptls_key_exchange_context_t_536871645) + struct_st_ptls_ech_create_opener_t_536871770 = (when declared( + struct_st_ptls_ech_create_opener_t): + when ownSizeof(struct_st_ptls_ech_create_opener_t) != + ownSizeof(struct_st_ptls_ech_create_opener_t_536871769): + static : + warning("Declaration of " & "struct_st_ptls_ech_create_opener_t" & + " exists but with different size") + struct_st_ptls_ech_create_opener_t + else: + struct_st_ptls_ech_create_opener_t_536871769) + struct_st_ptls_log_point_t_536871788 = (when declared( + struct_st_ptls_log_point_t): + when ownSizeof(struct_st_ptls_log_point_t) != + ownSizeof(struct_st_ptls_log_point_t_536871787): + static : + warning("Declaration of " & "struct_st_ptls_log_point_t" & + " exists but with different size") + struct_st_ptls_log_point_t + else: + struct_st_ptls_log_point_t_536871787) + ptls_cred_buffer_t_536871840 = (when declared(ptls_cred_buffer_t): + when ownSizeof(ptls_cred_buffer_t) != ownSizeof(ptls_cred_buffer_t_536871839): + static : + warning("Declaration of " & "ptls_cred_buffer_t" & + " exists but with different size") + ptls_cred_buffer_t + else: + ptls_cred_buffer_t_536871839) + ngtcp2_recv_new_token_536871582 = (when declared(ngtcp2_recv_new_token): + when ownSizeof(ngtcp2_recv_new_token) != ownSizeof(ngtcp2_recv_new_token_536871581): + static : + warning("Declaration of " & "ngtcp2_recv_new_token" & + " exists but with different size") + ngtcp2_recv_new_token + else: + ngtcp2_recv_new_token_536871581) + in_addr_t_536871850 = (when declared(in_addr_t): + when ownSizeof(in_addr_t) != ownSizeof(in_addr_t_536871849): + static : + warning("Declaration of " & "in_addr_t" & + " exists but with different size") + in_addr_t + else: + in_addr_t_536871849) + ngtcp2_mem_536871385 = (when declared(ngtcp2_mem): + when ownSizeof(ngtcp2_mem) != ownSizeof(ngtcp2_mem_536871384): + static : + warning("Declaration of " & "ngtcp2_mem" & + " exists but with different size") + ngtcp2_mem + else: + ngtcp2_mem_536871384) + ngtcp2_info_536871622 = (when declared(ngtcp2_info): + when ownSizeof(ngtcp2_info) != ownSizeof(ngtcp2_info_536871621): + static : + warning("Declaration of " & "ngtcp2_info" & + " exists but with different size") + ngtcp2_info + else: + ngtcp2_info_536871621) + struct_ngtcp2_crypto_md_536871494 = (when declared(struct_ngtcp2_crypto_md): + when ownSizeof(struct_ngtcp2_crypto_md) != + ownSizeof(struct_ngtcp2_crypto_md_536871493): + static : + warning("Declaration of " & "struct_ngtcp2_crypto_md" & + " exists but with different size") + struct_ngtcp2_crypto_md + else: + struct_ngtcp2_crypto_md_536871493) + ngtcp2_rand_536871564 = (when declared(ngtcp2_rand): + when ownSizeof(ngtcp2_rand) != ownSizeof(ngtcp2_rand_536871563): + static : + warning("Declaration of " & "ngtcp2_rand" & + " exists but with different size") + ngtcp2_rand + else: + ngtcp2_rand_536871563) + EVP_PKEY_536871800 = (when declared(EVP_PKEY): + when ownSizeof(EVP_PKEY) != ownSizeof(EVP_PKEY_536871799): + static : + warning("Declaration of " & "EVP_PKEY" & + " exists but with different size") + EVP_PKEY + else: + EVP_PKEY_536871799) + struct_st_ptls_log_conn_state_t_536871790 = (when declared( + struct_st_ptls_log_conn_state_t): + when ownSizeof(struct_st_ptls_log_conn_state_t) != + ownSizeof(struct_st_ptls_log_conn_state_t_536871789): + static : + warning("Declaration of " & "struct_st_ptls_log_conn_state_t" & + " exists but with different size") + struct_st_ptls_log_conn_state_t + else: + struct_st_ptls_log_conn_state_t_536871789) + struct_ngtcp2_pkt_stateless_reset_536871415 = (when declared( + struct_ngtcp2_pkt_stateless_reset): + when ownSizeof(struct_ngtcp2_pkt_stateless_reset) != + ownSizeof(struct_ngtcp2_pkt_stateless_reset_536871414): + static : + warning("Declaration of " & "struct_ngtcp2_pkt_stateless_reset" & + " exists but with different size") + struct_ngtcp2_pkt_stateless_reset + else: + struct_ngtcp2_pkt_stateless_reset_536871414) + ngtcp2_rand_ctx_536871470 = (when declared(ngtcp2_rand_ctx): + when ownSizeof(ngtcp2_rand_ctx) != ownSizeof(ngtcp2_rand_ctx_536871469): + static : + warning("Declaration of " & "ngtcp2_rand_ctx" & + " exists but with different size") + ngtcp2_rand_ctx + else: + ngtcp2_rand_ctx_536871469) + struct_st_ptls_encrypt_ticket_t_536871740 = (when declared( + struct_st_ptls_encrypt_ticket_t): + when ownSizeof(struct_st_ptls_encrypt_ticket_t) != + ownSizeof(struct_st_ptls_encrypt_ticket_t_536871739): + static : + warning("Declaration of " & "struct_st_ptls_encrypt_ticket_t" & + " exists but with different size") + struct_st_ptls_encrypt_ticket_t + else: + struct_st_ptls_encrypt_ticket_t_536871739) + ngtcp2_recv_version_negotiation_536871538 = (when declared( + ngtcp2_recv_version_negotiation): + when ownSizeof(ngtcp2_recv_version_negotiation) != + ownSizeof(ngtcp2_recv_version_negotiation_536871537): + static : + warning("Declaration of " & "ngtcp2_recv_version_negotiation" & + " exists but with different size") + ngtcp2_recv_version_negotiation + else: + ngtcp2_recv_version_negotiation_536871537) + ptls_on_client_hello_parameters_t_536871714 = (when declared( + ptls_on_client_hello_parameters_t): + when ownSizeof(ptls_on_client_hello_parameters_t) != + ownSizeof(ptls_on_client_hello_parameters_t_536871713): + static : + warning("Declaration of " & "ptls_on_client_hello_parameters_t" & + " exists but with different size") + ptls_on_client_hello_parameters_t + else: + ptls_on_client_hello_parameters_t_536871713) + struct_ngtcp2_conn_info_536871451 = (when declared(struct_ngtcp2_conn_info): + when ownSizeof(struct_ngtcp2_conn_info) != + ownSizeof(struct_ngtcp2_conn_info_536871450): + static : + warning("Declaration of " & "struct_ngtcp2_conn_info" & + " exists but with different size") + struct_ngtcp2_conn_info + else: + struct_ngtcp2_conn_info_536871450) + struct_st_ptls_save_ticket_t_536871744 = (when declared( + struct_st_ptls_save_ticket_t): + when ownSizeof(struct_st_ptls_save_ticket_t) != + ownSizeof(struct_st_ptls_save_ticket_t_536871743): + static : + warning("Declaration of " & "struct_st_ptls_save_ticket_t" & + " exists but with different size") + struct_st_ptls_save_ticket_t + else: + struct_st_ptls_save_ticket_t_536871743) + ptls_update_open_count_t_536871756 = (when declared(ptls_update_open_count_t): + when ownSizeof(ptls_update_open_count_t) != + ownSizeof(ptls_update_open_count_t_536871755): + static : + warning("Declaration of " & "ptls_update_open_count_t" & + " exists but with different size") + ptls_update_open_count_t + else: + ptls_update_open_count_t_536871755) + struct_st_ptls_client_hello_psk_identity_t_536871708 = (when declared( + struct_st_ptls_client_hello_psk_identity_t): + when ownSizeof(struct_st_ptls_client_hello_psk_identity_t) != + ownSizeof(struct_st_ptls_client_hello_psk_identity_t_536871707): + static : + warning("Declaration of " & "struct_st_ptls_client_hello_psk_identity_t" & + " exists but with different size") + struct_st_ptls_client_hello_psk_identity_t + else: + struct_st_ptls_client_hello_psk_identity_t_536871707) + ptls_sign_certificate_t_536871734 = (when declared(ptls_sign_certificate_t): + when ownSizeof(ptls_sign_certificate_t) != + ownSizeof(ptls_sign_certificate_t_536871733): + static : + warning("Declaration of " & "ptls_sign_certificate_t" & + " exists but with different size") + ptls_sign_certificate_t + else: + ptls_sign_certificate_t_536871733) + ptls_context_t_536871632 = (when declared(ptls_context_t): + when ownSizeof(ptls_context_t) != ownSizeof(ptls_context_t_536871631): + static : + warning("Declaration of " & "ptls_context_t" & + " exists but with different size") + ptls_context_t + else: + ptls_context_t_536871631) + ngtcp2_hp_mask_536871546 = (when declared(ngtcp2_hp_mask): + when ownSizeof(ngtcp2_hp_mask) != ownSizeof(ngtcp2_hp_mask_536871545): + static : + warning("Declaration of " & "ngtcp2_hp_mask" & + " exists but with different size") + ngtcp2_hp_mask + else: + ngtcp2_hp_mask_536871545) + ngtcp2_connection_id_status_536871580 = (when declared( + ngtcp2_connection_id_status): + when ownSizeof(ngtcp2_connection_id_status) != + ownSizeof(ngtcp2_connection_id_status_536871579): + static : + warning("Declaration of " & "ngtcp2_connection_id_status" & + " exists but with different size") + ngtcp2_connection_id_status + else: + ngtcp2_connection_id_status_536871579) + enum_ngtcp2_encryption_level_536871528 = (when declared( + enum_ngtcp2_encryption_level): + when ownSizeof(enum_ngtcp2_encryption_level) != + ownSizeof(enum_ngtcp2_encryption_level_536871527): + static : + warning("Declaration of " & "enum_ngtcp2_encryption_level" & + " exists but with different size") + enum_ngtcp2_encryption_level + else: + enum_ngtcp2_encryption_level_536871527) + ngtcp2_ssize_536871371 = (when declared(ngtcp2_ssize): + when ownSizeof(ngtcp2_ssize) != ownSizeof(ngtcp2_ssize_536871370): + static : + warning("Declaration of " & "ngtcp2_ssize" & + " exists but with different size") + ngtcp2_ssize + else: + ngtcp2_ssize_536871370) + struct_st_ptls_openssl_verify_certificate_t_536871822 = (when declared( + struct_st_ptls_openssl_verify_certificate_t): + when ownSizeof(struct_st_ptls_openssl_verify_certificate_t) != + ownSizeof(struct_st_ptls_openssl_verify_certificate_t_536871821): + static : + warning("Declaration of " & + "struct_st_ptls_openssl_verify_certificate_t" & + " exists but with different size") + struct_st_ptls_openssl_verify_certificate_t + else: + struct_st_ptls_openssl_verify_certificate_t_536871821) + ptrdiff_t_536871373 = (when declared(ptrdiff_t): + when ownSizeof(ptrdiff_t) != ownSizeof(ptrdiff_t_536871372): + static : + warning("Declaration of " & "ptrdiff_t" & + " exists but with different size") + ptrdiff_t + else: + ptrdiff_t_536871372) + struct_ptls_cred_buffer_s_536871838 = (when declared(struct_ptls_cred_buffer_s): + when ownSizeof(struct_ptls_cred_buffer_s) != + ownSizeof(struct_ptls_cred_buffer_s_536871837): + static : + warning("Declaration of " & "struct_ptls_cred_buffer_s" & + " exists but with different size") + struct_ptls_cred_buffer_s + else: + struct_ptls_cred_buffer_s_536871837) + ngtcp2_sockaddr_union_536871437 = (when declared(ngtcp2_sockaddr_union): + when ownSizeof(ngtcp2_sockaddr_union) != ownSizeof(ngtcp2_sockaddr_union_536871436): + static : + warning("Declaration of " & "ngtcp2_sockaddr_union" & + " exists but with different size") + ngtcp2_sockaddr_union + else: + ngtcp2_sockaddr_union_536871436) + struct_ngtcp2_crypto_cipher_536871502 = (when declared( + struct_ngtcp2_crypto_cipher): + when ownSizeof(struct_ngtcp2_crypto_cipher) != + ownSizeof(struct_ngtcp2_crypto_cipher_536871501): + static : + warning("Declaration of " & "struct_ngtcp2_crypto_cipher" & + " exists but with different size") + struct_ngtcp2_crypto_cipher + else: + struct_ngtcp2_crypto_cipher_536871501) + ngtcp2_version_negotiation_536871598 = (when declared( + ngtcp2_version_negotiation): + when ownSizeof(ngtcp2_version_negotiation) != + ownSizeof(ngtcp2_version_negotiation_536871597): + static : + warning("Declaration of " & "ngtcp2_version_negotiation" & + " exists but with different size") + ngtcp2_version_negotiation + else: + ngtcp2_version_negotiation_536871597) + ptls_on_client_hello_t_536871722 = (when declared(ptls_on_client_hello_t): + when ownSizeof(ptls_on_client_hello_t) != ownSizeof(ptls_on_client_hello_t_536871721): + static : + warning("Declaration of " & "ptls_on_client_hello_t" & + " exists but with different size") + ptls_on_client_hello_t + else: + ptls_on_client_hello_t_536871721) + ptls_async_job_t_536871730 = (when declared(ptls_async_job_t): + when ownSizeof(ptls_async_job_t) != ownSizeof(ptls_async_job_t_536871729): + static : + warning("Declaration of " & "ptls_async_job_t" & + " exists but with different size") + ptls_async_job_t + else: + ptls_async_job_t_536871729) + ptls_hash_algorithm_t_536871686 = (when declared(ptls_hash_algorithm_t): + when ownSizeof(ptls_hash_algorithm_t) != ownSizeof(ptls_hash_algorithm_t_536871685): + static : + warning("Declaration of " & "ptls_hash_algorithm_t" & + " exists but with different size") + ptls_hash_algorithm_t + else: + ptls_hash_algorithm_t_536871685) + ptls_cipher_context_t_536871660 = (when declared(ptls_cipher_context_t): + when ownSizeof(ptls_cipher_context_t) != ownSizeof(ptls_cipher_context_t_536871659): + static : + warning("Declaration of " & "ptls_cipher_context_t" & + " exists but with different size") + ptls_cipher_context_t + else: + ptls_cipher_context_t_536871659) + ngtcp2_malloc_536871375 = (when declared(ngtcp2_malloc): + when ownSizeof(ngtcp2_malloc) != ownSizeof(ngtcp2_malloc_536871374): + static : + warning("Declaration of " & "ngtcp2_malloc" & + " exists but with different size") + ngtcp2_malloc + else: + ngtcp2_malloc_536871374) + ptls_openssl_override_verify_certificate_t_536871820 = (when declared( + ptls_openssl_override_verify_certificate_t): + when ownSizeof(ptls_openssl_override_verify_certificate_t) != + ownSizeof(ptls_openssl_override_verify_certificate_t_536871819): + static : + warning("Declaration of " & "ptls_openssl_override_verify_certificate_t" & + " exists but with different size") + ptls_openssl_override_verify_certificate_t + else: + ptls_openssl_override_verify_certificate_t_536871819) + struct_ngtcp2_version_info_536871443 = (when declared( + struct_ngtcp2_version_info): + when ownSizeof(struct_ngtcp2_version_info) != + ownSizeof(struct_ngtcp2_version_info_536871442): + static : + warning("Declaration of " & "struct_ngtcp2_version_info" & + " exists but with different size") + struct_ngtcp2_version_info + else: + struct_ngtcp2_version_info_536871442) +when not declared(struct_st_ptls_update_open_count_t): + type + struct_st_ptls_update_open_count_t* = struct_st_ptls_update_open_count_t_536871751 +else: + static : + hint("Declaration of " & "struct_st_ptls_update_open_count_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_key_exchange_algorithm_t): + type + struct_st_ptls_key_exchange_algorithm_t* = struct_st_ptls_key_exchange_algorithm_t_536871647 +else: + static : + hint("Declaration of " & "struct_st_ptls_key_exchange_algorithm_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_preferred_addr): + type + ngtcp2_preferred_addr* = ngtcp2_preferred_addr_536871440 +else: + static : + hint("Declaration of " & "ngtcp2_preferred_addr" & + " already exists, not redeclaring") +when not declared(ngtcp2_connection_id_status_type): + type + ngtcp2_connection_id_status_type* = ngtcp2_connection_id_status_type_536871577 +else: + static : + hint("Declaration of " & "ngtcp2_connection_id_status_type" & + " already exists, not redeclaring") +when not declared(struct_sockaddr): + type + struct_sockaddr* = struct_sockaddr_536871420 +else: + static : + hint("Declaration of " & "struct_sockaddr" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_aead_algorithm_t): + type + struct_st_ptls_aead_algorithm_t* = struct_st_ptls_aead_algorithm_t_536871669 +else: + static : + hint("Declaration of " & "struct_st_ptls_aead_algorithm_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_hash_context_t): + type + struct_st_ptls_hash_context_t* = struct_st_ptls_hash_context_t_536871679 +else: + static : + hint("Declaration of " & "struct_st_ptls_hash_context_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_encrypt): + type + ngtcp2_encrypt* = ngtcp2_encrypt_536871541 +else: + static : + hint("Declaration of " & "ngtcp2_encrypt" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_ccerr): + type + struct_ngtcp2_ccerr* = struct_ngtcp2_ccerr_536871615 +else: + static : + hint("Declaration of " & "struct_ngtcp2_ccerr" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_message_emitter_t): + type + struct_st_ptls_message_emitter_t* = struct_st_ptls_message_emitter_t_536871691 +else: + static : + hint("Declaration of " & "struct_st_ptls_message_emitter_t" & + " already exists, not redeclaring") +when not declared(ptls_hpke_cipher_suite_t): + type + ptls_hpke_cipher_suite_t* = ptls_hpke_cipher_suite_t_536871705 +else: + static : + hint("Declaration of " & "ptls_hpke_cipher_suite_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_pkt_hd): + type + ngtcp2_pkt_hd* = ngtcp2_pkt_hd_536871412 +else: + static : + hint("Declaration of " & "ngtcp2_pkt_hd" & + " already exists, not redeclaring") +when not declared(struct_sockaddr_in): + type + struct_sockaddr_in* = struct_sockaddr_in_536871424 +else: + static : + hint("Declaration of " & "struct_sockaddr_in" & + " already exists, not redeclaring") +when not declared(enum_ngtcp2_token_type): + type + enum_ngtcp2_token_type* = enum_ngtcp2_token_type_536871473 +else: + static : + hint("Declaration of " & "enum_ngtcp2_token_type" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_rand_ctx): + type + struct_ngtcp2_rand_ctx* = struct_ngtcp2_rand_ctx_536871467 +else: + static : + hint("Declaration of " & "struct_ngtcp2_rand_ctx" & + " already exists, not redeclaring") +when not declared(ngtcp2_stream_open): + type + ngtcp2_stream_open* = ngtcp2_stream_open_536871549 +else: + static : + hint("Declaration of " & "ngtcp2_stream_open" & + " already exists, not redeclaring") +when not declared(struct_sockaddr_in6): + type + struct_sockaddr_in6* = struct_sockaddr_in6_536871428 +else: + static : + hint("Declaration of " & "struct_sockaddr_in6" & + " already exists, not redeclaring") +when not declared(enum_ngtcp2_ccerr_type): + type + enum_ngtcp2_ccerr_type* = enum_ngtcp2_ccerr_type_536871611 +else: + static : + hint("Declaration of " & "enum_ngtcp2_ccerr_type" & + " already exists, not redeclaring") +when not declared(ptls_key_exchange_context_t): + type + ptls_key_exchange_context_t* = ptls_key_exchange_context_t_536871649 +else: + static : + hint("Declaration of " & "ptls_key_exchange_context_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_on_client_hello_t): + type + struct_st_ptls_on_client_hello_t* = struct_st_ptls_on_client_hello_t_536871719 +else: + static : + hint("Declaration of " & "struct_st_ptls_on_client_hello_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_on_extension_t): + type + struct_st_ptls_on_extension_t* = struct_st_ptls_on_extension_t_536871761 +else: + static : + hint("Declaration of " & "struct_st_ptls_on_extension_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_stream_stop_sending): + type + ngtcp2_stream_stop_sending* = ngtcp2_stream_stop_sending_536871595 +else: + static : + hint("Declaration of " & "ngtcp2_stream_stop_sending" & + " already exists, not redeclaring") +when not declared(ngtcp2_sockaddr_in): + type + ngtcp2_sockaddr_in* = ngtcp2_sockaddr_in_536871422 +else: + static : + hint("Declaration of " & "ngtcp2_sockaddr_in" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_callbacks): + type + struct_ngtcp2_callbacks* = struct_ngtcp2_callbacks_536871603 +else: + static : + hint("Declaration of " & "struct_ngtcp2_callbacks" & + " already exists, not redeclaring") +when not declared(ngtcp2_recv_datagram): + type + ngtcp2_recv_datagram* = ngtcp2_recv_datagram_536871587 +else: + static : + hint("Declaration of " & "ngtcp2_recv_datagram" & + " already exists, not redeclaring") +when not declared(ptls_cipher_suite_t): + type + ptls_cipher_suite_t* = ptls_cipher_suite_t_536871689 +else: + static : + hint("Declaration of " & "ptls_cipher_suite_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_path): + type + ngtcp2_path* = ngtcp2_path_536871487 +else: + static : + hint("Declaration of " & "ngtcp2_path" & " already exists, not redeclaring") +when not declared(ngtcp2_pkt_info): + type + ngtcp2_pkt_info* = ngtcp2_pkt_info_536871388 +else: + static : + hint("Declaration of " & "ngtcp2_pkt_info" & + " already exists, not redeclaring") +when not declared(ngtcp2_encryption_level): + type + ngtcp2_encryption_level* = ngtcp2_encryption_level_536871529 +else: + static : + hint("Declaration of " & "ngtcp2_encryption_level" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_info): + type + struct_ngtcp2_info* = struct_ngtcp2_info_536871619 +else: + static : + hint("Declaration of " & "struct_ngtcp2_info" & + " already exists, not redeclaring") +when not declared(ptls_encrypt_ticket_t): + type + ptls_encrypt_ticket_t* = ptls_encrypt_ticket_t_536871741 +else: + static : + hint("Declaration of " & "ptls_encrypt_ticket_t" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_crypto_aead): + type + struct_ngtcp2_crypto_aead* = struct_ngtcp2_crypto_aead_536871497 +else: + static : + hint("Declaration of " & "struct_ngtcp2_crypto_aead" & + " already exists, not redeclaring") +when not declared(enum_ngtcp2_path_validation_result): + type + enum_ngtcp2_path_validation_result* = enum_ngtcp2_path_validation_result_536871394 +else: + static : + hint("Declaration of " & "enum_ngtcp2_path_validation_result" & + " already exists, not redeclaring") +when not declared(ptls_message_emitter_t): + type + ptls_message_emitter_t* = ptls_message_emitter_t_536871693 +else: + static : + hint("Declaration of " & "ptls_message_emitter_t" & + " already exists, not redeclaring") +when not declared(EVP_CIPHER_CTX): + type + EVP_CIPHER_CTX* = EVP_CIPHER_CTX_536871827 +else: + static : + hint("Declaration of " & "EVP_CIPHER_CTX" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_path_storage): + type + struct_ngtcp2_path_storage* = struct_ngtcp2_path_storage_536871489 +else: + static : + hint("Declaration of " & "struct_ngtcp2_path_storage" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_aead_ctx): + type + ngtcp2_crypto_aead_ctx* = ngtcp2_crypto_aead_ctx_536871507 +else: + static : + hint("Declaration of " & "ngtcp2_crypto_aead_ctx" & + " already exists, not redeclaring") +when not declared(ngtcp2_settings): + type + ngtcp2_settings* = ngtcp2_settings_536871479 +else: + static : + hint("Declaration of " & "ngtcp2_settings" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_context_t): + type + struct_st_ptls_context_t* = struct_st_ptls_context_t_536871633 +else: + static : + hint("Declaration of " & "struct_st_ptls_context_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_aead_supplementary_encryption_t): + type + struct_st_ptls_aead_supplementary_encryption_t* = struct_st_ptls_aead_supplementary_encryption_t_536871663 +else: + static : + hint("Declaration of " & "struct_st_ptls_aead_supplementary_encryption_t" & + " already exists, not redeclaring") +when not declared(ptls_cipher_algorithm_t): + type + ptls_cipher_algorithm_t* = ptls_cipher_algorithm_t_536871661 +else: + static : + hint("Declaration of " & "ptls_cipher_algorithm_t" & + " already exists, not redeclaring") +when not declared(ptls_openssl_sign_certificate_t): + type + ptls_openssl_sign_certificate_t* = ptls_openssl_sign_certificate_t_536871809 +else: + static : + hint("Declaration of " & "ptls_openssl_sign_certificate_t" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_path): + type + struct_ngtcp2_path* = struct_ngtcp2_path_536871485 +else: + static : + hint("Declaration of " & "struct_ngtcp2_path" & + " already exists, not redeclaring") +when not declared(ngtcp2_get_new_connection_id): + type + ngtcp2_get_new_connection_id* = ngtcp2_get_new_connection_id_536871565 +else: + static : + hint("Declaration of " & "ngtcp2_get_new_connection_id" & + " already exists, not redeclaring") +when not declared(ngtcp2_get_path_challenge_data): + type + ngtcp2_get_path_challenge_data* = ngtcp2_get_path_challenge_data_536871593 +else: + static : + hint("Declaration of " & "ngtcp2_get_path_challenge_data" & + " already exists, not redeclaring") +when not declared(X509): + type + X509* = X509_536871811 +else: + static : + hint("Declaration of " & "X509" & " already exists, not redeclaring") +when not declared(ptls_key_schedule_t): + type + ptls_key_schedule_t* = ptls_key_schedule_t_536871635 +else: + static : + hint("Declaration of " & "ptls_key_schedule_t" & + " already exists, not redeclaring") +when not declared(ptls_aead_supplementary_encryption_t): + type + ptls_aead_supplementary_encryption_t* = ptls_aead_supplementary_encryption_t_536871665 +else: + static : + hint("Declaration of " & "ptls_aead_supplementary_encryption_t" & + " already exists, not redeclaring") +when not declared(ptls_on_extension_t): + type + ptls_on_extension_t* = ptls_on_extension_t_536871763 +else: + static : + hint("Declaration of " & "ptls_on_extension_t" & + " already exists, not redeclaring") +when not declared(EVP_MAC_CTX): + type + EVP_MAC_CTX* = EVP_MAC_CTX_536871831 +else: + static : + hint("Declaration of " & "EVP_MAC_CTX" & " already exists, not redeclaring") +when not declared(ngtcp2_extend_max_streams): + type + ngtcp2_extend_max_streams* = ngtcp2_extend_max_streams_536871559 +else: + static : + hint("Declaration of " & "ngtcp2_extend_max_streams" & + " already exists, not redeclaring") +when not declared(ngtcp2_sockaddr_in6): + type + ngtcp2_sockaddr_in6* = ngtcp2_sockaddr_in6_536871426 +else: + static : + hint("Declaration of " & "ngtcp2_sockaddr_in6" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_version_cid): + type + struct_ngtcp2_version_cid* = struct_ngtcp2_version_cid_536871517 +else: + static : + hint("Declaration of " & "struct_ngtcp2_version_cid" & + " already exists, not redeclaring") +when not declared(struct_in6_addr): + type + struct_in6_addr* = struct_in6_addr_536871791 +else: + static : + hint("Declaration of " & "struct_in6_addr" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_hash_algorithm_t): + type + struct_st_ptls_hash_algorithm_t* = struct_st_ptls_hash_algorithm_t_536871683 +else: + static : + hint("Declaration of " & "struct_st_ptls_hash_algorithm_t" & + " already exists, not redeclaring") +when not declared(ptls_iovec_t): + type + ptls_iovec_t* = ptls_iovec_t_536871639 +else: + static : + hint("Declaration of " & "ptls_iovec_t" & " already exists, not redeclaring") +when not declared(enum_ngtcp2_pkt_type): + type + enum_ngtcp2_pkt_type* = enum_ngtcp2_pkt_type_536871390 +else: + static : + hint("Declaration of " & "enum_ngtcp2_pkt_type" & + " already exists, not redeclaring") +when not declared(ngtcp2_version_cid): + type + ngtcp2_version_cid* = ngtcp2_version_cid_536871519 +else: + static : + hint("Declaration of " & "ngtcp2_version_cid" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_conn_ref): + type + ngtcp2_crypto_conn_ref* = ngtcp2_crypto_conn_ref_536871623 +else: + static : + hint("Declaration of " & "ngtcp2_crypto_conn_ref" & + " already exists, not redeclaring") +when not declared(ptls_buffer_t): + type + ptls_buffer_t* = ptls_buffer_t_536871643 +else: + static : + hint("Declaration of " & "ptls_buffer_t" & + " already exists, not redeclaring") +when not declared(ptls_handshake_properties_t): + type + ptls_handshake_properties_t* = ptls_handshake_properties_t_536871783 +else: + static : + hint("Declaration of " & "ptls_handshake_properties_t" & + " already exists, not redeclaring") +when not declared(ptls_aead_algorithm_t): + type + ptls_aead_algorithm_t* = ptls_aead_algorithm_t_536871673 +else: + static : + hint("Declaration of " & "ptls_aead_algorithm_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_on_client_hello_parameters_t): + type + struct_st_ptls_on_client_hello_parameters_t* = struct_st_ptls_on_client_hello_parameters_t_536871711 +else: + static : + hint("Declaration of " & "struct_st_ptls_on_client_hello_parameters_t" & + " already exists, not redeclaring") +when not declared(ptls_early_data_acceptance_t): + type + ptls_early_data_acceptance_t* = ptls_early_data_acceptance_t_536871779 +else: + static : + hint("Declaration of " & "ptls_early_data_acceptance_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_token_type): + type + ngtcp2_token_type* = ngtcp2_token_type_536871475 +else: + static : + hint("Declaration of " & "ngtcp2_token_type" & + " already exists, not redeclaring") +when not declared(ptls_get_time_t): + type + ptls_get_time_t* = ptls_get_time_t_536871717 +else: + static : + hint("Declaration of " & "ptls_get_time_t" & + " already exists, not redeclaring") +when not declared(ptls_decompress_certificate_t): + type + ptls_decompress_certificate_t* = ptls_decompress_certificate_t_536871767 +else: + static : + hint("Declaration of " & "ptls_decompress_certificate_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_pkt_stateless_reset): + type + ngtcp2_pkt_stateless_reset* = ngtcp2_pkt_stateless_reset_536871416 +else: + static : + hint("Declaration of " & "ngtcp2_pkt_stateless_reset" & + " already exists, not redeclaring") +when not declared(intptr_t): + type + intptr_t* = intptr_t_536871651 +else: + static : + hint("Declaration of " & "intptr_t" & " already exists, not redeclaring") +when not declared(struct_ngtcp2_settings): + type + struct_ngtcp2_settings* = struct_ngtcp2_settings_536871477 +else: + static : + hint("Declaration of " & "struct_ngtcp2_settings" & + " already exists, not redeclaring") +when not declared(compiler_socklen_t): + type + compiler_socklen_t* = compiler_socklen_t_536871845 +else: + static : + hint("Declaration of " & "compiler_socklen_t" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_vec): + type + struct_ngtcp2_vec* = struct_ngtcp2_vec_536871406 +else: + static : + hint("Declaration of " & "struct_ngtcp2_vec" & + " already exists, not redeclaring") +when not declared(ngtcp2_path_validation): + type + ngtcp2_path_validation* = ngtcp2_path_validation_536871571 +else: + static : + hint("Declaration of " & "ngtcp2_path_validation" & + " already exists, not redeclaring") +when not declared(ptls_update_traffic_key_t): + type + ptls_update_traffic_key_t* = ptls_update_traffic_key_t_536871759 +else: + static : + hint("Declaration of " & "ptls_update_traffic_key_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_picotls_ctx): + type + ngtcp2_crypto_picotls_ctx* = ngtcp2_crypto_picotls_ctx_536871835 +else: + static : + hint("Declaration of " & "ngtcp2_crypto_picotls_ctx" & + " already exists, not redeclaring") +when not declared(ptls_t): + type + ptls_t* = ptls_t_536871629 +else: + static : + hint("Declaration of " & "ptls_t" & " already exists, not redeclaring") +when not declared(struct_st_ptls_cipher_algorithm_t): + type + struct_st_ptls_cipher_algorithm_t* = struct_st_ptls_cipher_algorithm_t_536871657 +else: + static : + hint("Declaration of " & "struct_st_ptls_cipher_algorithm_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_ctx): + type + ngtcp2_crypto_ctx* = ngtcp2_crypto_ctx_536871515 +else: + static : + hint("Declaration of " & "ngtcp2_crypto_ctx" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_crypto_conn_ref): + type + struct_ngtcp2_crypto_conn_ref* = struct_ngtcp2_crypto_conn_ref_536871625 +else: + static : + hint("Declaration of " & "struct_ngtcp2_crypto_conn_ref" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_openssl_raw_pubkey_verify_certificate_t): + type + struct_st_ptls_openssl_raw_pubkey_verify_certificate_t* = struct_st_ptls_openssl_raw_pubkey_verify_certificate_t_536871813 +else: + static : + hint("Declaration of " & + "struct_st_ptls_openssl_raw_pubkey_verify_certificate_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_cipher_ctx): + type + ngtcp2_crypto_cipher_ctx* = ngtcp2_crypto_cipher_ctx_536871511 +else: + static : + hint("Declaration of " & "ngtcp2_crypto_cipher_ctx" & + " already exists, not redeclaring") +when not declared(ngtcp2_printf): + type + ngtcp2_printf* = ngtcp2_printf_536871465 +else: + static : + hint("Declaration of " & "ngtcp2_printf" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_verify_certificate_t): + type + struct_st_ptls_verify_certificate_t* = struct_st_ptls_verify_certificate_t_536871735 +else: + static : + hint("Declaration of " & "struct_st_ptls_verify_certificate_t" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_crypto_picotls_ctx): + type + struct_ngtcp2_crypto_picotls_ctx* = struct_ngtcp2_crypto_picotls_ctx_536871833 +else: + static : + hint("Declaration of " & "struct_ngtcp2_crypto_picotls_ctx" & + " already exists, not redeclaring") +when not declared(ptls_hash_final_mode_t): + type + ptls_hash_final_mode_t* = ptls_hash_final_mode_t_536871677 +else: + static : + hint("Declaration of " & "ptls_hash_final_mode_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_handshake_completed): + type + ngtcp2_handshake_completed* = ngtcp2_handshake_completed_536871533 +else: + static : + hint("Declaration of " & "ngtcp2_handshake_completed" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_cipher_context_t): + type + struct_st_ptls_cipher_context_t* = struct_st_ptls_cipher_context_t_536871655 +else: + static : + hint("Declaration of " & "struct_st_ptls_cipher_context_t" & + " already exists, not redeclaring") +when not declared(enum_ngtcp2_cc_algo): + type + enum_ngtcp2_cc_algo* = enum_ngtcp2_cc_algo_536871461 +else: + static : + hint("Declaration of " & "enum_ngtcp2_cc_algo" & + " already exists, not redeclaring") +when not declared(ngtcp2_duration): + type + ngtcp2_duration* = ngtcp2_duration_536871400 +else: + static : + hint("Declaration of " & "ngtcp2_duration" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_cid): + type + struct_ngtcp2_cid* = struct_ngtcp2_cid_536871402 +else: + static : + hint("Declaration of " & "struct_ngtcp2_cid" & + " already exists, not redeclaring") +when not declared(in_port_t): + type + in_port_t* = in_port_t_536871843 +else: + static : + hint("Declaration of " & "in_port_t" & " already exists, not redeclaring") +when not declared(struct_st_ptls_update_traffic_key_t): + type + struct_st_ptls_update_traffic_key_t* = struct_st_ptls_update_traffic_key_t_536871757 +else: + static : + hint("Declaration of " & "struct_st_ptls_update_traffic_key_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_vec): + type + ngtcp2_vec* = ngtcp2_vec_536871408 +else: + static : + hint("Declaration of " & "ngtcp2_vec" & " already exists, not redeclaring") +when not declared(ptls_save_ticket_t): + type + ptls_save_ticket_t* = ptls_save_ticket_t_536871745 +else: + static : + hint("Declaration of " & "ptls_save_ticket_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_recv_stateless_reset): + type + ngtcp2_recv_stateless_reset* = ngtcp2_recv_stateless_reset_536871557 +else: + static : + hint("Declaration of " & "ngtcp2_recv_stateless_reset" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_md): + type + ngtcp2_crypto_md* = ngtcp2_crypto_md_536871495 +else: + static : + hint("Declaration of " & "ngtcp2_crypto_md" & + " already exists, not redeclaring") +when not declared(enum_ngtcp2_connection_id_status_type): + type + enum_ngtcp2_connection_id_status_type* = enum_ngtcp2_connection_id_status_type_536871575 +else: + static : + hint("Declaration of " & "enum_ngtcp2_connection_id_status_type" & + " already exists, not redeclaring") +when not declared(ngtcp2_recv_key): + type + ngtcp2_recv_key* = ngtcp2_recv_key_536871599 +else: + static : + hint("Declaration of " & "ngtcp2_recv_key" & + " already exists, not redeclaring") +when not declared(ngtcp2_remove_connection_id): + type + ngtcp2_remove_connection_id* = ngtcp2_remove_connection_id_536871567 +else: + static : + hint("Declaration of " & "ngtcp2_remove_connection_id" & + " already exists, not redeclaring") +when not declared(ngtcp2_recv_retry): + type + ngtcp2_recv_retry* = ngtcp2_recv_retry_536871539 +else: + static : + hint("Declaration of " & "ngtcp2_recv_retry" & + " already exists, not redeclaring") +when not declared(ngtcp2_recv_crypto_data): + type + ngtcp2_recv_crypto_data* = ngtcp2_recv_crypto_data_536871531 +else: + static : + hint("Declaration of " & "ngtcp2_recv_crypto_data" & + " already exists, not redeclaring") +when not declared(ngtcp2_cid_token): + type + ngtcp2_cid_token* = ngtcp2_cid_token_536871609 +else: + static : + hint("Declaration of " & "ngtcp2_cid_token" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_buffer_t): + type + struct_st_ptls_buffer_t* = struct_st_ptls_buffer_t_536871641 +else: + static : + hint("Declaration of " & "struct_st_ptls_buffer_t" & + " already exists, not redeclaring") +when not declared(ptls_openssl_signature_scheme_t): + type + ptls_openssl_signature_scheme_t* = ptls_openssl_signature_scheme_t_536871805 +else: + static : + hint("Declaration of " & "ptls_openssl_signature_scheme_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_log_state_t): + type + struct_st_ptls_log_state_t* = struct_st_ptls_log_state_t_536871785 +else: + static : + hint("Declaration of " & "struct_st_ptls_log_state_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_log_event_t): + type + struct_st_ptls_log_event_t* = struct_st_ptls_log_event_t_536871747 +else: + static : + hint("Declaration of " & "struct_st_ptls_log_event_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_realloc): + type + ngtcp2_realloc* = ngtcp2_realloc_536871380 +else: + static : + hint("Declaration of " & "ngtcp2_realloc" & + " already exists, not redeclaring") +when not declared(X509_STORE): + type + X509_STORE* = X509_STORE_536871823 +else: + static : + hint("Declaration of " & "X509_STORE" & " already exists, not redeclaring") +when not declared(HMAC_CTX): + type + HMAC_CTX* = HMAC_CTX_536871829 +else: + static : + hint("Declaration of " & "HMAC_CTX" & " already exists, not redeclaring") +when not declared(ngtcp2_crypto_aead): + type + ngtcp2_crypto_aead* = ngtcp2_crypto_aead_536871499 +else: + static : + hint("Declaration of " & "ngtcp2_crypto_aead" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_openssl_override_verify_certificate_t): + type + struct_st_ptls_openssl_override_verify_certificate_t* = struct_st_ptls_openssl_override_verify_certificate_t_536871817 +else: + static : + hint("Declaration of " & + "struct_st_ptls_openssl_override_verify_certificate_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_extend_max_stream_data): + type + ngtcp2_extend_max_stream_data* = ngtcp2_extend_max_stream_data_536871561 +else: + static : + hint("Declaration of " & "ngtcp2_extend_max_stream_data" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_async_job_t): + type + struct_st_ptls_async_job_t* = struct_st_ptls_async_job_t_536871727 +else: + static : + hint("Declaration of " & "struct_st_ptls_async_job_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn): + type + ngtcp2_conn* = ngtcp2_conn_536871521 +else: + static : + hint("Declaration of " & "ngtcp2_conn" & " already exists, not redeclaring") +when not declared(ngtcp2_delete_crypto_cipher_ctx): + type + ngtcp2_delete_crypto_cipher_ctx* = ngtcp2_delete_crypto_cipher_ctx_536871585 +else: + static : + hint("Declaration of " & "ngtcp2_delete_crypto_cipher_ctx" & + " already exists, not redeclaring") +when not declared(ptls_log_conn_state_t): + type + ptls_log_conn_state_t* = ptls_log_conn_state_t_536871793 +else: + static : + hint("Declaration of " & "ptls_log_conn_state_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_openssl_sign_certificate_t): + type + struct_st_ptls_openssl_sign_certificate_t* = struct_st_ptls_openssl_sign_certificate_t_536871807 +else: + static : + hint("Declaration of " & "struct_st_ptls_openssl_sign_certificate_t" & + " already exists, not redeclaring") +when not declared(sa_family_t): + type + sa_family_t* = sa_family_t_536871841 +else: + static : + hint("Declaration of " & "sa_family_t" & " already exists, not redeclaring") +when not declared(struct_ngtcp2_crypto_cipher_ctx): + type + struct_ngtcp2_crypto_cipher_ctx* = struct_ngtcp2_crypto_cipher_ctx_536871509 +else: + static : + hint("Declaration of " & "struct_ngtcp2_crypto_cipher_ctx" & + " already exists, not redeclaring") +when not declared(ngtcp2_client_initial): + type + ngtcp2_client_initial* = ngtcp2_client_initial_536871523 +else: + static : + hint("Declaration of " & "ngtcp2_client_initial" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_cid_token): + type + struct_ngtcp2_cid_token* = struct_ngtcp2_cid_token_536871607 +else: + static : + hint("Declaration of " & "struct_ngtcp2_cid_token" & + " already exists, not redeclaring") +when not declared(ngtcp2_delete_crypto_aead_ctx): + type + ngtcp2_delete_crypto_aead_ctx* = ngtcp2_delete_crypto_aead_ctx_536871583 +else: + static : + hint("Declaration of " & "ngtcp2_delete_crypto_aead_ctx" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_hpke_cipher_suite_t): + type + struct_st_ptls_hpke_cipher_suite_t* = struct_st_ptls_hpke_cipher_suite_t_536871703 +else: + static : + hint("Declaration of " & "struct_st_ptls_hpke_cipher_suite_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_tstamp): + type + ngtcp2_tstamp* = ngtcp2_tstamp_536871398 +else: + static : + hint("Declaration of " & "ngtcp2_tstamp" & + " already exists, not redeclaring") +when not declared(ngtcp2_select_preferred_addr): + type + ngtcp2_select_preferred_addr* = ngtcp2_select_preferred_addr_536871573 +else: + static : + hint("Declaration of " & "ngtcp2_select_preferred_addr" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_get_time_t): + type + struct_st_ptls_get_time_t* = struct_st_ptls_get_time_t_536871715 +else: + static : + hint("Declaration of " & "struct_st_ptls_get_time_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_handshake_properties_t): + type + struct_st_ptls_handshake_properties_t* = struct_st_ptls_handshake_properties_t_536871781 +else: + static : + hint("Declaration of " & "struct_st_ptls_handshake_properties_t" & + " already exists, not redeclaring") +when not declared(ptls_client_hello_psk_identity_t): + type + ptls_client_hello_psk_identity_t* = ptls_client_hello_psk_identity_t_536871709 +else: + static : + hint("Declaration of " & "ptls_client_hello_psk_identity_t" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_crypto_aead_ctx): + type + struct_ngtcp2_crypto_aead_ctx* = struct_ngtcp2_crypto_aead_ctx_536871505 +else: + static : + hint("Declaration of " & "struct_ngtcp2_crypto_aead_ctx" & + " already exists, not redeclaring") +when not declared(ngtcp2_acked_stream_data_offset): + type + ngtcp2_acked_stream_data_offset* = ngtcp2_acked_stream_data_offset_536871555 +else: + static : + hint("Declaration of " & "ngtcp2_acked_stream_data_offset" & + " already exists, not redeclaring") +when not declared(ngtcp2_transport_params): + type + ngtcp2_transport_params* = ngtcp2_transport_params_536871448 +else: + static : + hint("Declaration of " & "ngtcp2_transport_params" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_pkt_info): + type + struct_ngtcp2_pkt_info* = struct_ngtcp2_pkt_info_536871386 +else: + static : + hint("Declaration of " & "struct_ngtcp2_pkt_info" & + " already exists, not redeclaring") +when not declared(ptls_emit_certificate_t): + type + ptls_emit_certificate_t* = ptls_emit_certificate_t_536871725 +else: + static : + hint("Declaration of " & "ptls_emit_certificate_t" & + " already exists, not redeclaring") +when not declared(enum_en_ptls_early_data_acceptance_t): + type + enum_en_ptls_early_data_acceptance_t* = enum_en_ptls_early_data_acceptance_t_536871777 +else: + static : + hint("Declaration of " & "enum_en_ptls_early_data_acceptance_t" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_transport_params): + type + struct_ngtcp2_transport_params* = struct_ngtcp2_transport_params_536871446 +else: + static : + hint("Declaration of " & "struct_ngtcp2_transport_params" & + " already exists, not redeclaring") +when not declared(struct_in_addr): + type + struct_in_addr* = struct_in_addr_536871797 +else: + static : + hint("Declaration of " & "struct_in_addr" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_get_conn): + type + ngtcp2_crypto_get_conn* = ngtcp2_crypto_get_conn_536871627 +else: + static : + hint("Declaration of " & "ngtcp2_crypto_get_conn" & + " already exists, not redeclaring") +when not declared(ptls_aead_context_t): + type + ptls_aead_context_t* = ptls_aead_context_t_536871671 +else: + static : + hint("Declaration of " & "ptls_aead_context_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_cc_algo): + type + ngtcp2_cc_algo* = ngtcp2_cc_algo_536871463 +else: + static : + hint("Declaration of " & "ngtcp2_cc_algo" & + " already exists, not redeclaring") +when not declared(ngtcp2_sockaddr): + type + ngtcp2_sockaddr* = ngtcp2_sockaddr_536871418 +else: + static : + hint("Declaration of " & "ngtcp2_sockaddr" & + " already exists, not redeclaring") +when not declared(ngtcp2_decrypt): + type + ngtcp2_decrypt* = ngtcp2_decrypt_536871543 +else: + static : + hint("Declaration of " & "ngtcp2_decrypt" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_aead_context_t): + type + struct_st_ptls_aead_context_t* = struct_st_ptls_aead_context_t_536871667 +else: + static : + hint("Declaration of " & "struct_st_ptls_aead_context_t" & + " already exists, not redeclaring") +when not declared(ptls_openssl_verify_certificate_t): + type + ptls_openssl_verify_certificate_t* = ptls_openssl_verify_certificate_t_536871825 +else: + static : + hint("Declaration of " & "ptls_openssl_verify_certificate_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_decompress_certificate_t): + type + struct_st_ptls_decompress_certificate_t* = struct_st_ptls_decompress_certificate_t_536871765 +else: + static : + hint("Declaration of " & "struct_st_ptls_decompress_certificate_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_pkt_type): + type + ngtcp2_pkt_type* = ngtcp2_pkt_type_536871392 +else: + static : + hint("Declaration of " & "ngtcp2_pkt_type" & + " already exists, not redeclaring") +when not declared(ptls_hpke_cipher_suite_id_t): + type + ptls_hpke_cipher_suite_id_t* = ptls_hpke_cipher_suite_id_t_536871701 +else: + static : + hint("Declaration of " & "ptls_hpke_cipher_suite_id_t" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_mem): + type + struct_ngtcp2_mem* = struct_ngtcp2_mem_536871382 +else: + static : + hint("Declaration of " & "struct_ngtcp2_mem" & + " already exists, not redeclaring") +when not declared(ngtcp2_calloc): + type + ngtcp2_calloc* = ngtcp2_calloc_536871378 +else: + static : + hint("Declaration of " & "ngtcp2_calloc" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_preferred_addr): + type + struct_ngtcp2_preferred_addr* = struct_ngtcp2_preferred_addr_536871438 +else: + static : + hint("Declaration of " & "struct_ngtcp2_preferred_addr" & + " already exists, not redeclaring") +when not declared(ngtcp2_path_storage): + type + ngtcp2_path_storage* = ngtcp2_path_storage_536871491 +else: + static : + hint("Declaration of " & "ngtcp2_path_storage" & + " already exists, not redeclaring") +when not declared(ngtcp2_addr): + type + ngtcp2_addr* = ngtcp2_addr_536871483 +else: + static : + hint("Declaration of " & "ngtcp2_addr" & " already exists, not redeclaring") +when not declared(ngtcp2_tls_early_data_rejected): + type + ngtcp2_tls_early_data_rejected* = ngtcp2_tls_early_data_rejected_536871601 +else: + static : + hint("Declaration of " & "ngtcp2_tls_early_data_rejected" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_hpke_cipher_suite_id_t): + type + struct_st_ptls_hpke_cipher_suite_id_t* = struct_st_ptls_hpke_cipher_suite_id_t_536871699 +else: + static : + hint("Declaration of " & "struct_st_ptls_hpke_cipher_suite_id_t" & + " already exists, not redeclaring") +when not declared(EVP_MD): + type + EVP_MD* = EVP_MD_536871803 +else: + static : + hint("Declaration of " & "EVP_MD" & " already exists, not redeclaring") +when not declared(ngtcp2_stream_reset): + type + ngtcp2_stream_reset* = ngtcp2_stream_reset_536871553 +else: + static : + hint("Declaration of " & "ngtcp2_stream_reset" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_iovec_t): + type + struct_st_ptls_iovec_t* = struct_st_ptls_iovec_t_536871637 +else: + static : + hint("Declaration of " & "struct_st_ptls_iovec_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_recv_stream_data): + type + ngtcp2_recv_stream_data* = ngtcp2_recv_stream_data_536871547 +else: + static : + hint("Declaration of " & "ngtcp2_recv_stream_data" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_crypto_ctx): + type + struct_ngtcp2_crypto_ctx* = struct_ngtcp2_crypto_ctx_536871513 +else: + static : + hint("Declaration of " & "struct_ngtcp2_crypto_ctx" & + " already exists, not redeclaring") +when not declared(ngtcp2_version_info): + type + ngtcp2_version_info* = ngtcp2_version_info_536871444 +else: + static : + hint("Declaration of " & "ngtcp2_version_info" & + " already exists, not redeclaring") +when not declared(enum_en_ptls_hash_final_mode_t): + type + enum_en_ptls_hash_final_mode_t* = enum_en_ptls_hash_final_mode_t_536871675 +else: + static : + hint("Declaration of " & "enum_en_ptls_hash_final_mode_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_socklen): + type + ngtcp2_socklen* = ngtcp2_socklen_536871430 +else: + static : + hint("Declaration of " & "ngtcp2_socklen" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_cipher_suite_t): + type + struct_st_ptls_cipher_suite_t* = struct_st_ptls_cipher_suite_t_536871687 +else: + static : + hint("Declaration of " & "struct_st_ptls_cipher_suite_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_recv_client_initial): + type + ngtcp2_recv_client_initial* = ngtcp2_recv_client_initial_536871525 +else: + static : + hint("Declaration of " & "ngtcp2_recv_client_initial" & + " already exists, not redeclaring") +when not declared(compiler_ssize_t): + type + compiler_ssize_t* = compiler_ssize_t_536871847 +else: + static : + hint("Declaration of " & "compiler_ssize_t" & + " already exists, not redeclaring") +when not declared(ptls_hpke_kem_t): + type + ptls_hpke_kem_t* = ptls_hpke_kem_t_536871697 +else: + static : + hint("Declaration of " & "ptls_hpke_kem_t" & + " already exists, not redeclaring") +when not declared(ptls_key_exchange_algorithm_t): + type + ptls_key_exchange_algorithm_t* = ptls_key_exchange_algorithm_t_536871653 +else: + static : + hint("Declaration of " & "ptls_key_exchange_algorithm_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_callbacks): + type + ngtcp2_callbacks* = ngtcp2_callbacks_536871605 +else: + static : + hint("Declaration of " & "ngtcp2_callbacks" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_cipher): + type + ngtcp2_crypto_cipher* = ngtcp2_crypto_cipher_536871503 +else: + static : + hint("Declaration of " & "ngtcp2_crypto_cipher" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_sign_certificate_t): + type + struct_st_ptls_sign_certificate_t* = struct_st_ptls_sign_certificate_t_536871731 +else: + static : + hint("Declaration of " & "struct_st_ptls_sign_certificate_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_emit_certificate_t): + type + struct_st_ptls_emit_certificate_t* = struct_st_ptls_emit_certificate_t_536871723 +else: + static : + hint("Declaration of " & "struct_st_ptls_emit_certificate_t" & + " already exists, not redeclaring") +when not declared(socklen_t): + type + socklen_t* = socklen_t_536871432 +else: + static : + hint("Declaration of " & "socklen_t" & " already exists, not redeclaring") +when not declared(ptls_raw_extension_t): + type + ptls_raw_extension_t* = ptls_raw_extension_t_536871775 +else: + static : + hint("Declaration of " & "ptls_raw_extension_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_lost_datagram): + type + ngtcp2_lost_datagram* = ngtcp2_lost_datagram_536871591 +else: + static : + hint("Declaration of " & "ngtcp2_lost_datagram" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_pkt_hd): + type + struct_ngtcp2_pkt_hd* = struct_ngtcp2_pkt_hd_536871410 +else: + static : + hint("Declaration of " & "struct_ngtcp2_pkt_hd" & + " already exists, not redeclaring") +when not declared(ptls_hash_context_t): + type + ptls_hash_context_t* = ptls_hash_context_t_536871681 +else: + static : + hint("Declaration of " & "ptls_hash_context_t" & + " already exists, not redeclaring") +when not declared(ptls_verify_certificate_t): + type + ptls_verify_certificate_t* = ptls_verify_certificate_t_536871737 +else: + static : + hint("Declaration of " & "ptls_verify_certificate_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_ccerr): + type + ngtcp2_ccerr* = ngtcp2_ccerr_536871617 +else: + static : + hint("Declaration of " & "ngtcp2_ccerr" & " already exists, not redeclaring") +when not declared(ngtcp2_stream_close): + type + ngtcp2_stream_close* = ngtcp2_stream_close_536871551 +else: + static : + hint("Declaration of " & "ngtcp2_stream_close" & + " already exists, not redeclaring") +when not declared(ssize_t): + type + ssize_t* = ssize_t_536871753 +else: + static : + hint("Declaration of " & "ssize_t" & " already exists, not redeclaring") +when not declared(ngtcp2_free): + type + ngtcp2_free* = ngtcp2_free_536871376 +else: + static : + hint("Declaration of " & "ngtcp2_free" & " already exists, not redeclaring") +when not declared(struct_st_ptls_log_t): + type + struct_st_ptls_log_t* = struct_st_ptls_log_t_536871795 +else: + static : + hint("Declaration of " & "struct_st_ptls_log_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_info): + type + ngtcp2_conn_info* = ngtcp2_conn_info_536871459 +else: + static : + hint("Declaration of " & "ngtcp2_conn_info" & + " already exists, not redeclaring") +when not declared(ngtcp2_handshake_confirmed): + type + ngtcp2_handshake_confirmed* = ngtcp2_handshake_confirmed_536871535 +else: + static : + hint("Declaration of " & "ngtcp2_handshake_confirmed" & + " already exists, not redeclaring") +when not declared(ptls_ech_create_opener_t): + type + ptls_ech_create_opener_t* = ptls_ech_create_opener_t_536871771 +else: + static : + hint("Declaration of " & "ptls_ech_create_opener_t" & + " already exists, not redeclaring") +when not declared(ptls_openssl_raw_pubkey_verify_certificate_t): + type + ptls_openssl_raw_pubkey_verify_certificate_t* = ptls_openssl_raw_pubkey_verify_certificate_t_536871815 +else: + static : + hint("Declaration of " & "ptls_openssl_raw_pubkey_verify_certificate_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_qlog_write): + type + ngtcp2_qlog_write* = ngtcp2_qlog_write_536871471 +else: + static : + hint("Declaration of " & "ngtcp2_qlog_write" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_addr): + type + struct_ngtcp2_addr* = struct_ngtcp2_addr_536871481 +else: + static : + hint("Declaration of " & "struct_ngtcp2_addr" & + " already exists, not redeclaring") +when not declared(ngtcp2_update_key): + type + ngtcp2_update_key* = ngtcp2_update_key_536871569 +else: + static : + hint("Declaration of " & "ngtcp2_update_key" & + " already exists, not redeclaring") +when not declared(ptls_log_event_t): + type + ptls_log_event_t* = ptls_log_event_t_536871749 +else: + static : + hint("Declaration of " & "ptls_log_event_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_openssl_signature_scheme_t): + type + struct_st_ptls_openssl_signature_scheme_t* = struct_st_ptls_openssl_signature_scheme_t_536871801 +else: + static : + hint("Declaration of " & "struct_st_ptls_openssl_signature_scheme_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_ack_datagram): + type + ngtcp2_ack_datagram* = ngtcp2_ack_datagram_536871589 +else: + static : + hint("Declaration of " & "ngtcp2_ack_datagram" & + " already exists, not redeclaring") +when not declared(ngtcp2_ccerr_type): + type + ngtcp2_ccerr_type* = ngtcp2_ccerr_type_536871613 +else: + static : + hint("Declaration of " & "ngtcp2_ccerr_type" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_hpke_kem_t): + type + struct_st_ptls_hpke_kem_t* = struct_st_ptls_hpke_kem_t_536871695 +else: + static : + hint("Declaration of " & "struct_st_ptls_hpke_kem_t" & + " already exists, not redeclaring") +when not declared(union_ngtcp2_sockaddr_union): + type + union_ngtcp2_sockaddr_union* = union_ngtcp2_sockaddr_union_536871434 +else: + static : + hint("Declaration of " & "union_ngtcp2_sockaddr_union" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_raw_extension_t): + type + struct_st_ptls_raw_extension_t* = struct_st_ptls_raw_extension_t_536871773 +else: + static : + hint("Declaration of " & "struct_st_ptls_raw_extension_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_path_validation_result): + type + ngtcp2_path_validation_result* = ngtcp2_path_validation_result_536871396 +else: + static : + hint("Declaration of " & "ngtcp2_path_validation_result" & + " already exists, not redeclaring") +when not declared(ngtcp2_cid): + type + ngtcp2_cid* = ngtcp2_cid_536871404 +else: + static : + hint("Declaration of " & "ngtcp2_cid" & " already exists, not redeclaring") +when not declared(struct_st_ptls_key_exchange_context_t): + type + struct_st_ptls_key_exchange_context_t* = struct_st_ptls_key_exchange_context_t_536871645 +else: + static : + hint("Declaration of " & "struct_st_ptls_key_exchange_context_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_ech_create_opener_t): + type + struct_st_ptls_ech_create_opener_t* = struct_st_ptls_ech_create_opener_t_536871769 +else: + static : + hint("Declaration of " & "struct_st_ptls_ech_create_opener_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_log_point_t): + type + struct_st_ptls_log_point_t* = struct_st_ptls_log_point_t_536871787 +else: + static : + hint("Declaration of " & "struct_st_ptls_log_point_t" & + " already exists, not redeclaring") +when not declared(ptls_cred_buffer_t): + type + ptls_cred_buffer_t* = ptls_cred_buffer_t_536871839 +else: + static : + hint("Declaration of " & "ptls_cred_buffer_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_recv_new_token): + type + ngtcp2_recv_new_token* = ngtcp2_recv_new_token_536871581 +else: + static : + hint("Declaration of " & "ngtcp2_recv_new_token" & + " already exists, not redeclaring") +when not declared(in_addr_t): + type + in_addr_t* = in_addr_t_536871849 +else: + static : + hint("Declaration of " & "in_addr_t" & " already exists, not redeclaring") +when not declared(ngtcp2_mem): + type + ngtcp2_mem* = ngtcp2_mem_536871384 +else: + static : + hint("Declaration of " & "ngtcp2_mem" & " already exists, not redeclaring") +when not declared(ngtcp2_info): + type + ngtcp2_info* = ngtcp2_info_536871621 +else: + static : + hint("Declaration of " & "ngtcp2_info" & " already exists, not redeclaring") +when not declared(struct_ngtcp2_crypto_md): + type + struct_ngtcp2_crypto_md* = struct_ngtcp2_crypto_md_536871493 +else: + static : + hint("Declaration of " & "struct_ngtcp2_crypto_md" & + " already exists, not redeclaring") +when not declared(ngtcp2_rand): + type + ngtcp2_rand* = ngtcp2_rand_536871563 +else: + static : + hint("Declaration of " & "ngtcp2_rand" & " already exists, not redeclaring") +when not declared(EVP_PKEY): + type + EVP_PKEY* = EVP_PKEY_536871799 +else: + static : + hint("Declaration of " & "EVP_PKEY" & " already exists, not redeclaring") +when not declared(struct_st_ptls_log_conn_state_t): + type + struct_st_ptls_log_conn_state_t* = struct_st_ptls_log_conn_state_t_536871789 +else: + static : + hint("Declaration of " & "struct_st_ptls_log_conn_state_t" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_pkt_stateless_reset): + type + struct_ngtcp2_pkt_stateless_reset* = struct_ngtcp2_pkt_stateless_reset_536871414 +else: + static : + hint("Declaration of " & "struct_ngtcp2_pkt_stateless_reset" & + " already exists, not redeclaring") +when not declared(ngtcp2_rand_ctx): + type + ngtcp2_rand_ctx* = ngtcp2_rand_ctx_536871469 +else: + static : + hint("Declaration of " & "ngtcp2_rand_ctx" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_encrypt_ticket_t): + type + struct_st_ptls_encrypt_ticket_t* = struct_st_ptls_encrypt_ticket_t_536871739 +else: + static : + hint("Declaration of " & "struct_st_ptls_encrypt_ticket_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_recv_version_negotiation): + type + ngtcp2_recv_version_negotiation* = ngtcp2_recv_version_negotiation_536871537 +else: + static : + hint("Declaration of " & "ngtcp2_recv_version_negotiation" & + " already exists, not redeclaring") +when not declared(ptls_on_client_hello_parameters_t): + type + ptls_on_client_hello_parameters_t* = ptls_on_client_hello_parameters_t_536871713 +else: + static : + hint("Declaration of " & "ptls_on_client_hello_parameters_t" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_conn_info): + type + struct_ngtcp2_conn_info* = struct_ngtcp2_conn_info_536871450 +else: + static : + hint("Declaration of " & "struct_ngtcp2_conn_info" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_save_ticket_t): + type + struct_st_ptls_save_ticket_t* = struct_st_ptls_save_ticket_t_536871743 +else: + static : + hint("Declaration of " & "struct_st_ptls_save_ticket_t" & + " already exists, not redeclaring") +when not declared(ptls_update_open_count_t): + type + ptls_update_open_count_t* = ptls_update_open_count_t_536871755 +else: + static : + hint("Declaration of " & "ptls_update_open_count_t" & + " already exists, not redeclaring") +when not declared(struct_st_ptls_client_hello_psk_identity_t): + type + struct_st_ptls_client_hello_psk_identity_t* = struct_st_ptls_client_hello_psk_identity_t_536871707 +else: + static : + hint("Declaration of " & "struct_st_ptls_client_hello_psk_identity_t" & + " already exists, not redeclaring") +when not declared(ptls_sign_certificate_t): + type + ptls_sign_certificate_t* = ptls_sign_certificate_t_536871733 +else: + static : + hint("Declaration of " & "ptls_sign_certificate_t" & + " already exists, not redeclaring") +when not declared(ptls_context_t): + type + ptls_context_t* = ptls_context_t_536871631 +else: + static : + hint("Declaration of " & "ptls_context_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_hp_mask): + type + ngtcp2_hp_mask* = ngtcp2_hp_mask_536871545 +else: + static : + hint("Declaration of " & "ngtcp2_hp_mask" & + " already exists, not redeclaring") +when not declared(ngtcp2_connection_id_status): + type + ngtcp2_connection_id_status* = ngtcp2_connection_id_status_536871579 +else: + static : + hint("Declaration of " & "ngtcp2_connection_id_status" & + " already exists, not redeclaring") +when not declared(enum_ngtcp2_encryption_level): + type + enum_ngtcp2_encryption_level* = enum_ngtcp2_encryption_level_536871527 +else: + static : + hint("Declaration of " & "enum_ngtcp2_encryption_level" & + " already exists, not redeclaring") +when not declared(ngtcp2_ssize): + type + ngtcp2_ssize* = ngtcp2_ssize_536871370 +else: + static : + hint("Declaration of " & "ngtcp2_ssize" & " already exists, not redeclaring") +when not declared(struct_st_ptls_openssl_verify_certificate_t): + type + struct_st_ptls_openssl_verify_certificate_t* = struct_st_ptls_openssl_verify_certificate_t_536871821 +else: + static : + hint("Declaration of " & "struct_st_ptls_openssl_verify_certificate_t" & + " already exists, not redeclaring") +when not declared(ptrdiff_t): + type + ptrdiff_t* = ptrdiff_t_536871372 +else: + static : + hint("Declaration of " & "ptrdiff_t" & " already exists, not redeclaring") +when not declared(struct_ptls_cred_buffer_s): + type + struct_ptls_cred_buffer_s* = struct_ptls_cred_buffer_s_536871837 +else: + static : + hint("Declaration of " & "struct_ptls_cred_buffer_s" & + " already exists, not redeclaring") +when not declared(ngtcp2_sockaddr_union): + type + ngtcp2_sockaddr_union* = ngtcp2_sockaddr_union_536871436 +else: + static : + hint("Declaration of " & "ngtcp2_sockaddr_union" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_crypto_cipher): + type + struct_ngtcp2_crypto_cipher* = struct_ngtcp2_crypto_cipher_536871501 +else: + static : + hint("Declaration of " & "struct_ngtcp2_crypto_cipher" & + " already exists, not redeclaring") +when not declared(ngtcp2_version_negotiation): + type + ngtcp2_version_negotiation* = ngtcp2_version_negotiation_536871597 +else: + static : + hint("Declaration of " & "ngtcp2_version_negotiation" & + " already exists, not redeclaring") +when not declared(ptls_on_client_hello_t): + type + ptls_on_client_hello_t* = ptls_on_client_hello_t_536871721 +else: + static : + hint("Declaration of " & "ptls_on_client_hello_t" & + " already exists, not redeclaring") +when not declared(ptls_async_job_t): + type + ptls_async_job_t* = ptls_async_job_t_536871729 +else: + static : + hint("Declaration of " & "ptls_async_job_t" & + " already exists, not redeclaring") +when not declared(ptls_hash_algorithm_t): + type + ptls_hash_algorithm_t* = ptls_hash_algorithm_t_536871685 +else: + static : + hint("Declaration of " & "ptls_hash_algorithm_t" & + " already exists, not redeclaring") +when not declared(ptls_cipher_context_t): + type + ptls_cipher_context_t* = ptls_cipher_context_t_536871659 +else: + static : + hint("Declaration of " & "ptls_cipher_context_t" & + " already exists, not redeclaring") +when not declared(ngtcp2_malloc): + type + ngtcp2_malloc* = ngtcp2_malloc_536871374 +else: + static : + hint("Declaration of " & "ngtcp2_malloc" & + " already exists, not redeclaring") +when not declared(ptls_openssl_override_verify_certificate_t): + type + ptls_openssl_override_verify_certificate_t* = ptls_openssl_override_verify_certificate_t_536871819 +else: + static : + hint("Declaration of " & "ptls_openssl_override_verify_certificate_t" & + " already exists, not redeclaring") +when not declared(struct_ngtcp2_version_info): + type + struct_ngtcp2_version_info* = struct_ngtcp2_version_info_536871442 +else: + static : + hint("Declaration of " & "struct_ngtcp2_version_info" & + " already exists, not redeclaring") +when not declared(NGTCP2_VERSION): + when "1.6.0" is static: + const + NGTCP2_VERSION* = "1.6.0" ## Generated based on /home/r/vacp2p/nim-ngtcp2/build/lib/includes/ngtcp2/version.h:39:9 + else: + let NGTCP2_VERSION* = "1.6.0" ## Generated based on /home/r/vacp2p/nim-ngtcp2/build/lib/includes/ngtcp2/version.h:39:9 +else: + static : + hint("Declaration of " & "NGTCP2_VERSION" & + " already exists, not redeclaring") +when not declared(NGTCP2_VERSION_NUM): + when 67072 is static: + const + NGTCP2_VERSION_NUM* = 67072 ## Generated based on /home/r/vacp2p/nim-ngtcp2/build/lib/includes/ngtcp2/version.h:49:9 + else: + let NGTCP2_VERSION_NUM* = 67072 ## Generated based on /home/r/vacp2p/nim-ngtcp2/build/lib/includes/ngtcp2/version.h:49:9 +else: + static : + hint("Declaration of " & "NGTCP2_VERSION_NUM" & + " already exists, not redeclaring") +when not declared(NGTCP2_PROTO_VER_MAX): + when NGTCP2_PROTO_VER_V1 is typedesc: + type + NGTCP2_PROTO_VER_MAX* = NGTCP2_PROTO_VER_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:273:9 + else: + when NGTCP2_PROTO_VER_V1 is static: + const + NGTCP2_PROTO_VER_MAX* = NGTCP2_PROTO_VER_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:273:9 + else: + let NGTCP2_PROTO_VER_MAX* = NGTCP2_PROTO_VER_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:273:9 +else: + static : + hint("Declaration of " & "NGTCP2_PROTO_VER_MAX" & + " already exists, not redeclaring") +when not declared(NGTCP2_PROTO_VER_MIN): + when NGTCP2_PROTO_VER_V1 is typedesc: + type + NGTCP2_PROTO_VER_MIN* = NGTCP2_PROTO_VER_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:281:9 + else: + when NGTCP2_PROTO_VER_V1 is static: + const + NGTCP2_PROTO_VER_MIN* = NGTCP2_PROTO_VER_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:281:9 + else: + let NGTCP2_PROTO_VER_MIN* = NGTCP2_PROTO_VER_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:281:9 +else: + static : + hint("Declaration of " & "NGTCP2_PROTO_VER_MIN" & + " already exists, not redeclaring") +when not declared(NGTCP2_RESERVED_VERSION_MASK): + when cast[cuint](168430090'i64) is static: + const + NGTCP2_RESERVED_VERSION_MASK* = cast[cuint](168430090'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:289:9 + else: + let NGTCP2_RESERVED_VERSION_MASK* = cast[cuint](168430090'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:289:9 +else: + static : + hint("Declaration of " & "NGTCP2_RESERVED_VERSION_MASK" & + " already exists, not redeclaring") +when not declared(NGTCP2_MAX_UDP_PAYLOAD_SIZE): + when 1200 is static: + const + NGTCP2_MAX_UDP_PAYLOAD_SIZE* = 1200 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:303:9 + else: + let NGTCP2_MAX_UDP_PAYLOAD_SIZE* = 1200 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:303:9 +else: + static : + hint("Declaration of " & "NGTCP2_MAX_UDP_PAYLOAD_SIZE" & + " already exists, not redeclaring") +when not declared(NGTCP2_MAX_PMTUD_UDP_PAYLOAD_SIZE): + when 1452 is static: + const + NGTCP2_MAX_PMTUD_UDP_PAYLOAD_SIZE* = 1452 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:311:9 + else: + let NGTCP2_MAX_PMTUD_UDP_PAYLOAD_SIZE* = 1452 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:311:9 +else: + static : + hint("Declaration of " & "NGTCP2_MAX_PMTUD_UDP_PAYLOAD_SIZE" & + " already exists, not redeclaring") +when not declared(NGTCP2_STATELESS_RESET_TOKENLEN): + when 16 is static: + const + NGTCP2_STATELESS_RESET_TOKENLEN* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:333:9 + else: + let NGTCP2_STATELESS_RESET_TOKENLEN* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:333:9 +else: + static : + hint("Declaration of " & "NGTCP2_STATELESS_RESET_TOKENLEN" & + " already exists, not redeclaring") +when not declared(NGTCP2_MIN_STATELESS_RESET_RANDLEN): + when 5 is static: + const + NGTCP2_MIN_STATELESS_RESET_RANDLEN* = 5 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:341:9 + else: + let NGTCP2_MIN_STATELESS_RESET_RANDLEN* = 5 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:341:9 +else: + static : + hint("Declaration of " & "NGTCP2_MIN_STATELESS_RESET_RANDLEN" & + " already exists, not redeclaring") +when not declared(NGTCP2_PATH_CHALLENGE_DATALEN): + when 8 is static: + const + NGTCP2_PATH_CHALLENGE_DATALEN* = 8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:349:9 + else: + let NGTCP2_PATH_CHALLENGE_DATALEN* = 8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:349:9 +else: + static : + hint("Declaration of " & "NGTCP2_PATH_CHALLENGE_DATALEN" & + " already exists, not redeclaring") +when not declared(NGTCP2_RETRY_NONCE_V1): + when "\\x46\\x15\\x99\\xd3\\x5d\\x63\\x2b\\xf2\\x23\\x98\\x25\\xbb" is static: + const + NGTCP2_RETRY_NONCE_V1* = "\\x46\\x15\\x99\\xd3\\x5d\\x63\\x2b\\xf2\\x23\\x98\\x25\\xbb" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:366:9 + else: + let NGTCP2_RETRY_NONCE_V1* = "\\x46\\x15\\x99\\xd3\\x5d\\x63\\x2b\\xf2\\x23\\x98\\x25\\xbb" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:366:9 +else: + static : + hint("Declaration of " & "NGTCP2_RETRY_NONCE_V1" & + " already exists, not redeclaring") +when not declared(NGTCP2_RETRY_NONCE_V2): + when "\\xd8\\x69\\x69\\xbc\\x2d\\x7c\\x6d\\x99\\x90\\xef\\xb0\\x4a" is static: + const + NGTCP2_RETRY_NONCE_V2* = "\\xd8\\x69\\x69\\xbc\\x2d\\x7c\\x6d\\x99\\x90\\xef\\xb0\\x4a" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:385:9 + else: + let NGTCP2_RETRY_NONCE_V2* = "\\xd8\\x69\\x69\\xbc\\x2d\\x7c\\x6d\\x99\\x90\\xef\\xb0\\x4a" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:385:9 +else: + static : + hint("Declaration of " & "NGTCP2_RETRY_NONCE_V2" & + " already exists, not redeclaring") +when not declared(NGTCP2_HP_MASKLEN): + when 5 is static: + const + NGTCP2_HP_MASKLEN* = 5 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:392:9 + else: + let NGTCP2_HP_MASKLEN* = 5 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:392:9 +else: + static : + hint("Declaration of " & "NGTCP2_HP_MASKLEN" & + " already exists, not redeclaring") +when not declared(NGTCP2_HP_SAMPLELEN): + when 16 is static: + const + NGTCP2_HP_SAMPLELEN* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:400:9 + else: + let NGTCP2_HP_SAMPLELEN* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:400:9 +else: + static : + hint("Declaration of " & "NGTCP2_HP_SAMPLELEN" & + " already exists, not redeclaring") +when not declared(NGTCP2_MAX_CIDLEN): + when 20 is static: + const + NGTCP2_MAX_CIDLEN* = 20 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:414:9 + else: + let NGTCP2_MAX_CIDLEN* = 20 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:414:9 +else: + static : + hint("Declaration of " & "NGTCP2_MAX_CIDLEN" & + " already exists, not redeclaring") +when not declared(NGTCP2_MIN_CIDLEN): + when 1 is static: + const + NGTCP2_MIN_CIDLEN* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:421:9 + else: + let NGTCP2_MIN_CIDLEN* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:421:9 +else: + static : + hint("Declaration of " & "NGTCP2_MIN_CIDLEN" & + " already exists, not redeclaring") +when not declared(NGTCP2_MIN_INITIAL_DCIDLEN): + when 8 is static: + const + NGTCP2_MIN_INITIAL_DCIDLEN* = 8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:430:9 + else: + let NGTCP2_MIN_INITIAL_DCIDLEN* = 8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:430:9 +else: + static : + hint("Declaration of " & "NGTCP2_MIN_INITIAL_DCIDLEN" & + " already exists, not redeclaring") +when not declared(NGTCP2_ECN_NOT_ECT): + when 0 is static: + const + NGTCP2_ECN_NOT_ECT* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:443:9 + else: + let NGTCP2_ECN_NOT_ECT* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:443:9 +else: + static : + hint("Declaration of " & "NGTCP2_ECN_NOT_ECT" & + " already exists, not redeclaring") +when not declared(NGTCP2_ECN_ECT_1): + when 1 is static: + const + NGTCP2_ECN_ECT_1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:450:9 + else: + let NGTCP2_ECN_ECT_1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:450:9 +else: + static : + hint("Declaration of " & "NGTCP2_ECN_ECT_1" & + " already exists, not redeclaring") +when not declared(NGTCP2_ECN_ECT_0): + when 2 is static: + const + NGTCP2_ECN_ECT_0* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:457:9 + else: + let NGTCP2_ECN_ECT_0* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:457:9 +else: + static : + hint("Declaration of " & "NGTCP2_ECN_ECT_0" & + " already exists, not redeclaring") +when not declared(NGTCP2_ECN_CE): + when 3 is static: + const + NGTCP2_ECN_CE* = 3 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:464:9 + else: + let NGTCP2_ECN_CE* = 3 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:464:9 +else: + static : + hint("Declaration of " & "NGTCP2_ECN_CE" & + " already exists, not redeclaring") +when not declared(NGTCP2_ECN_MASK): + when 3 is static: + const + NGTCP2_ECN_MASK* = 3 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:471:9 + else: + let NGTCP2_ECN_MASK* = 3 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:471:9 +else: + static : + hint("Declaration of " & "NGTCP2_ECN_MASK" & + " already exists, not redeclaring") +when not declared(NGTCP2_PKT_INFO_V1): + when 1 is static: + const + NGTCP2_PKT_INFO_V1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:473:9 + else: + let NGTCP2_PKT_INFO_V1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:473:9 +else: + static : + hint("Declaration of " & "NGTCP2_PKT_INFO_V1" & + " already exists, not redeclaring") +when not declared(NGTCP2_PKT_INFO_VERSION): + when NGTCP2_PKT_INFO_V1 is typedesc: + type + NGTCP2_PKT_INFO_VERSION* = NGTCP2_PKT_INFO_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:474:9 + else: + when NGTCP2_PKT_INFO_V1 is static: + const + NGTCP2_PKT_INFO_VERSION* = NGTCP2_PKT_INFO_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:474:9 + else: + let NGTCP2_PKT_INFO_VERSION* = NGTCP2_PKT_INFO_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:474:9 +else: + static : + hint("Declaration of " & "NGTCP2_PKT_INFO_VERSION" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_INVALID_ARGUMENT): + when -201 is static: + const + NGTCP2_ERR_INVALID_ARGUMENT* = -201 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:503:9 + else: + let NGTCP2_ERR_INVALID_ARGUMENT* = -201 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:503:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_INVALID_ARGUMENT" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_NOBUF): + when -202 is static: + const + NGTCP2_ERR_NOBUF* = -202 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:510:9 + else: + let NGTCP2_ERR_NOBUF* = -202 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:510:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_NOBUF" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_PROTO): + when -203 is static: + const + NGTCP2_ERR_PROTO* = -203 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:516:9 + else: + let NGTCP2_ERR_PROTO* = -203 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:516:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_PROTO" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_INVALID_STATE): + when -204 is static: + const + NGTCP2_ERR_INVALID_STATE* = -204 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:523:9 + else: + let NGTCP2_ERR_INVALID_STATE* = -204 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:523:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_INVALID_STATE" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_ACK_FRAME): + when -205 is static: + const + NGTCP2_ERR_ACK_FRAME* = -205 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:530:9 + else: + let NGTCP2_ERR_ACK_FRAME* = -205 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:530:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_ACK_FRAME" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_STREAM_ID_BLOCKED): + when -206 is static: + const + NGTCP2_ERR_STREAM_ID_BLOCKED* = -206 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:537:9 + else: + let NGTCP2_ERR_STREAM_ID_BLOCKED* = -206 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:537:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_STREAM_ID_BLOCKED" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_STREAM_IN_USE): + when -207 is static: + const + NGTCP2_ERR_STREAM_IN_USE* = -207 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:544:9 + else: + let NGTCP2_ERR_STREAM_IN_USE* = -207 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:544:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_STREAM_IN_USE" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_STREAM_DATA_BLOCKED): + when -208 is static: + const + NGTCP2_ERR_STREAM_DATA_BLOCKED* = -208 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:551:9 + else: + let NGTCP2_ERR_STREAM_DATA_BLOCKED* = -208 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:551:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_STREAM_DATA_BLOCKED" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_FLOW_CONTROL): + when -209 is static: + const + NGTCP2_ERR_FLOW_CONTROL* = -209 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:557:9 + else: + let NGTCP2_ERR_FLOW_CONTROL* = -209 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:557:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_FLOW_CONTROL" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_CONNECTION_ID_LIMIT): + when -210 is static: + const + NGTCP2_ERR_CONNECTION_ID_LIMIT* = -210 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:564:9 + else: + let NGTCP2_ERR_CONNECTION_ID_LIMIT* = -210 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:564:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_CONNECTION_ID_LIMIT" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_STREAM_LIMIT): + when -211 is static: + const + NGTCP2_ERR_STREAM_LIMIT* = -211 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:571:9 + else: + let NGTCP2_ERR_STREAM_LIMIT* = -211 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:571:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_STREAM_LIMIT" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_FINAL_SIZE): + when -212 is static: + const + NGTCP2_ERR_FINAL_SIZE* = -212 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:578:9 + else: + let NGTCP2_ERR_FINAL_SIZE* = -212 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:578:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_FINAL_SIZE" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_CRYPTO): + when -213 is static: + const + NGTCP2_ERR_CRYPTO* = -213 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:584:9 + else: + let NGTCP2_ERR_CRYPTO* = -213 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:584:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_CRYPTO" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_PKT_NUM_EXHAUSTED): + when -214 is static: + const + NGTCP2_ERR_PKT_NUM_EXHAUSTED* = -214 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:591:9 + else: + let NGTCP2_ERR_PKT_NUM_EXHAUSTED* = -214 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:591:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_PKT_NUM_EXHAUSTED" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_REQUIRED_TRANSPORT_PARAM): + when -215 is static: + const + NGTCP2_ERR_REQUIRED_TRANSPORT_PARAM* = -215 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:598:9 + else: + let NGTCP2_ERR_REQUIRED_TRANSPORT_PARAM* = -215 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:598:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_REQUIRED_TRANSPORT_PARAM" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM): + when -216 is static: + const + NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM* = -216 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:605:9 + else: + let NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM* = -216 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:605:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_FRAME_ENCODING): + when -217 is static: + const + NGTCP2_ERR_FRAME_ENCODING* = -217 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:612:9 + else: + let NGTCP2_ERR_FRAME_ENCODING* = -217 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:612:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_FRAME_ENCODING" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_DECRYPT): + when -218 is static: + const + NGTCP2_ERR_DECRYPT* = -218 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:618:9 + else: + let NGTCP2_ERR_DECRYPT* = -218 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:618:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_DECRYPT" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_STREAM_SHUT_WR): + when -219 is static: + const + NGTCP2_ERR_STREAM_SHUT_WR* = -219 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:625:9 + else: + let NGTCP2_ERR_STREAM_SHUT_WR* = -219 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:625:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_STREAM_SHUT_WR" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_STREAM_NOT_FOUND): + when -220 is static: + const + NGTCP2_ERR_STREAM_NOT_FOUND* = -220 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:632:9 + else: + let NGTCP2_ERR_STREAM_NOT_FOUND* = -220 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:632:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_STREAM_NOT_FOUND" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_STREAM_STATE): + when -221 is static: + const + NGTCP2_ERR_STREAM_STATE* = -221 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:639:9 + else: + let NGTCP2_ERR_STREAM_STATE* = -221 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:639:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_STREAM_STATE" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_RECV_VERSION_NEGOTIATION): + when -222 is static: + const + NGTCP2_ERR_RECV_VERSION_NEGOTIATION* = -222 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:646:9 + else: + let NGTCP2_ERR_RECV_VERSION_NEGOTIATION* = -222 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:646:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_RECV_VERSION_NEGOTIATION" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_CLOSING): + when -223 is static: + const + NGTCP2_ERR_CLOSING* = -223 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:653:9 + else: + let NGTCP2_ERR_CLOSING* = -223 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:653:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_CLOSING" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_DRAINING): + when -224 is static: + const + NGTCP2_ERR_DRAINING* = -224 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:660:9 + else: + let NGTCP2_ERR_DRAINING* = -224 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:660:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_DRAINING" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_TRANSPORT_PARAM): + when -225 is static: + const + NGTCP2_ERR_TRANSPORT_PARAM* = -225 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:667:9 + else: + let NGTCP2_ERR_TRANSPORT_PARAM* = -225 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:667:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_TRANSPORT_PARAM" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_DISCARD_PKT): + when -226 is static: + const + NGTCP2_ERR_DISCARD_PKT* = -226 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:673:9 + else: + let NGTCP2_ERR_DISCARD_PKT* = -226 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:673:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_DISCARD_PKT" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_CONN_ID_BLOCKED): + when -227 is static: + const + NGTCP2_ERR_CONN_ID_BLOCKED* = -227 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:680:9 + else: + let NGTCP2_ERR_CONN_ID_BLOCKED* = -227 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:680:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_CONN_ID_BLOCKED" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_INTERNAL): + when -228 is static: + const + NGTCP2_ERR_INTERNAL* = -228 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:686:9 + else: + let NGTCP2_ERR_INTERNAL* = -228 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:686:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_INTERNAL" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_CRYPTO_BUFFER_EXCEEDED): + when -229 is static: + const + NGTCP2_ERR_CRYPTO_BUFFER_EXCEEDED* = -229 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:693:9 + else: + let NGTCP2_ERR_CRYPTO_BUFFER_EXCEEDED* = -229 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:693:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_CRYPTO_BUFFER_EXCEEDED" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_WRITE_MORE): + when -230 is static: + const + NGTCP2_ERR_WRITE_MORE* = -230 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:701:9 + else: + let NGTCP2_ERR_WRITE_MORE* = -230 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:701:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_WRITE_MORE" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_RETRY): + when -231 is static: + const + NGTCP2_ERR_RETRY* = -231 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:708:9 + else: + let NGTCP2_ERR_RETRY* = -231 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:708:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_RETRY" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_DROP_CONN): + when -232 is static: + const + NGTCP2_ERR_DROP_CONN* = -232 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:715:9 + else: + let NGTCP2_ERR_DROP_CONN* = -232 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:715:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_DROP_CONN" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_AEAD_LIMIT_REACHED): + when -233 is static: + const + NGTCP2_ERR_AEAD_LIMIT_REACHED* = -233 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:723:9 + else: + let NGTCP2_ERR_AEAD_LIMIT_REACHED* = -233 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:723:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_AEAD_LIMIT_REACHED" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_NO_VIABLE_PATH): + when -234 is static: + const + NGTCP2_ERR_NO_VIABLE_PATH* = -234 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:731:9 + else: + let NGTCP2_ERR_NO_VIABLE_PATH* = -234 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:731:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_NO_VIABLE_PATH" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_VERSION_NEGOTIATION): + when -235 is static: + const + NGTCP2_ERR_VERSION_NEGOTIATION* = -235 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:738:9 + else: + let NGTCP2_ERR_VERSION_NEGOTIATION* = -235 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:738:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_VERSION_NEGOTIATION" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_HANDSHAKE_TIMEOUT): + when -236 is static: + const + NGTCP2_ERR_HANDSHAKE_TIMEOUT* = -236 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:745:9 + else: + let NGTCP2_ERR_HANDSHAKE_TIMEOUT* = -236 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:745:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_HANDSHAKE_TIMEOUT" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_VERSION_NEGOTIATION_FAILURE): + when -237 is static: + const + NGTCP2_ERR_VERSION_NEGOTIATION_FAILURE* = -237 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:752:9 + else: + let NGTCP2_ERR_VERSION_NEGOTIATION_FAILURE* = -237 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:752:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_VERSION_NEGOTIATION_FAILURE" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_IDLE_CLOSE): + when -238 is static: + const + NGTCP2_ERR_IDLE_CLOSE* = -238 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:759:9 + else: + let NGTCP2_ERR_IDLE_CLOSE* = -238 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:759:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_IDLE_CLOSE" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_FATAL): + when -500 is static: + const + NGTCP2_ERR_FATAL* = -500 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:767:9 + else: + let NGTCP2_ERR_FATAL* = -500 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:767:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_FATAL" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_NOMEM): + when -501 is static: + const + NGTCP2_ERR_NOMEM* = -501 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:773:9 + else: + let NGTCP2_ERR_NOMEM* = -501 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:773:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_NOMEM" & + " already exists, not redeclaring") +when not declared(NGTCP2_ERR_CALLBACK_FAILURE): + when -502 is static: + const + NGTCP2_ERR_CALLBACK_FAILURE* = -502 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:780:9 + else: + let NGTCP2_ERR_CALLBACK_FAILURE* = -502 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:780:9 +else: + static : + hint("Declaration of " & "NGTCP2_ERR_CALLBACK_FAILURE" & + " already exists, not redeclaring") +when not declared(NGTCP2_PKT_FLAG_NONE): + when cast[cuint](0'i64) is static: + const + NGTCP2_PKT_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:793:9 + else: + let NGTCP2_PKT_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:793:9 +else: + static : + hint("Declaration of " & "NGTCP2_PKT_FLAG_NONE" & + " already exists, not redeclaring") +when not declared(NGTCP2_PKT_FLAG_LONG_FORM): + when cast[cuint](1'i64) is static: + const + NGTCP2_PKT_FLAG_LONG_FORM* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:801:9 + else: + let NGTCP2_PKT_FLAG_LONG_FORM* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:801:9 +else: + static : + hint("Declaration of " & "NGTCP2_PKT_FLAG_LONG_FORM" & + " already exists, not redeclaring") +when not declared(NGTCP2_PKT_FLAG_FIXED_BIT_CLEAR): + when cast[cuint](2'i64) is static: + const + NGTCP2_PKT_FLAG_FIXED_BIT_CLEAR* = cast[cuint](2'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:809:9 + else: + let NGTCP2_PKT_FLAG_FIXED_BIT_CLEAR* = cast[cuint](2'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:809:9 +else: + static : + hint("Declaration of " & "NGTCP2_PKT_FLAG_FIXED_BIT_CLEAR" & + " already exists, not redeclaring") +when not declared(NGTCP2_PKT_FLAG_KEY_PHASE): + when cast[cuint](4'i64) is static: + const + NGTCP2_PKT_FLAG_KEY_PHASE* = cast[cuint](4'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:816:9 + else: + let NGTCP2_PKT_FLAG_KEY_PHASE* = cast[cuint](4'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:816:9 +else: + static : + hint("Declaration of " & "NGTCP2_PKT_FLAG_KEY_PHASE" & + " already exists, not redeclaring") +when not declared(NGTCP2_NO_ERROR): + when cast[cuint](0'i64) is static: + const + NGTCP2_NO_ERROR* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:868:9 + else: + let NGTCP2_NO_ERROR* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:868:9 +else: + static : + hint("Declaration of " & "NGTCP2_NO_ERROR" & + " already exists, not redeclaring") +when not declared(NGTCP2_INTERNAL_ERROR): + when cast[cuint](1'i64) is static: + const + NGTCP2_INTERNAL_ERROR* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:876:9 + else: + let NGTCP2_INTERNAL_ERROR* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:876:9 +else: + static : + hint("Declaration of " & "NGTCP2_INTERNAL_ERROR" & + " already exists, not redeclaring") +when not declared(NGTCP2_CONNECTION_REFUSED): + when cast[cuint](2'i64) is static: + const + NGTCP2_CONNECTION_REFUSED* = cast[cuint](2'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:884:9 + else: + let NGTCP2_CONNECTION_REFUSED* = cast[cuint](2'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:884:9 +else: + static : + hint("Declaration of " & "NGTCP2_CONNECTION_REFUSED" & + " already exists, not redeclaring") +when not declared(NGTCP2_FLOW_CONTROL_ERROR): + when cast[cuint](3'i64) is static: + const + NGTCP2_FLOW_CONTROL_ERROR* = cast[cuint](3'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:892:9 + else: + let NGTCP2_FLOW_CONTROL_ERROR* = cast[cuint](3'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:892:9 +else: + static : + hint("Declaration of " & "NGTCP2_FLOW_CONTROL_ERROR" & + " already exists, not redeclaring") +when not declared(NGTCP2_STREAM_LIMIT_ERROR): + when cast[cuint](4'i64) is static: + const + NGTCP2_STREAM_LIMIT_ERROR* = cast[cuint](4'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:900:9 + else: + let NGTCP2_STREAM_LIMIT_ERROR* = cast[cuint](4'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:900:9 +else: + static : + hint("Declaration of " & "NGTCP2_STREAM_LIMIT_ERROR" & + " already exists, not redeclaring") +when not declared(NGTCP2_STREAM_STATE_ERROR): + when cast[cuint](5'i64) is static: + const + NGTCP2_STREAM_STATE_ERROR* = cast[cuint](5'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:908:9 + else: + let NGTCP2_STREAM_STATE_ERROR* = cast[cuint](5'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:908:9 +else: + static : + hint("Declaration of " & "NGTCP2_STREAM_STATE_ERROR" & + " already exists, not redeclaring") +when not declared(NGTCP2_FINAL_SIZE_ERROR): + when cast[cuint](6'i64) is static: + const + NGTCP2_FINAL_SIZE_ERROR* = cast[cuint](6'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:916:9 + else: + let NGTCP2_FINAL_SIZE_ERROR* = cast[cuint](6'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:916:9 +else: + static : + hint("Declaration of " & "NGTCP2_FINAL_SIZE_ERROR" & + " already exists, not redeclaring") +when not declared(NGTCP2_FRAME_ENCODING_ERROR): + when cast[cuint](7'i64) is static: + const + NGTCP2_FRAME_ENCODING_ERROR* = cast[cuint](7'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:924:9 + else: + let NGTCP2_FRAME_ENCODING_ERROR* = cast[cuint](7'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:924:9 +else: + static : + hint("Declaration of " & "NGTCP2_FRAME_ENCODING_ERROR" & + " already exists, not redeclaring") +when not declared(NGTCP2_TRANSPORT_PARAMETER_ERROR): + when cast[cuint](8'i64) is static: + const + NGTCP2_TRANSPORT_PARAMETER_ERROR* = cast[cuint](8'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:932:9 + else: + let NGTCP2_TRANSPORT_PARAMETER_ERROR* = cast[cuint](8'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:932:9 +else: + static : + hint("Declaration of " & "NGTCP2_TRANSPORT_PARAMETER_ERROR" & + " already exists, not redeclaring") +when not declared(NGTCP2_CONNECTION_ID_LIMIT_ERROR): + when cast[cuint](9'i64) is static: + const + NGTCP2_CONNECTION_ID_LIMIT_ERROR* = cast[cuint](9'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:940:9 + else: + let NGTCP2_CONNECTION_ID_LIMIT_ERROR* = cast[cuint](9'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:940:9 +else: + static : + hint("Declaration of " & "NGTCP2_CONNECTION_ID_LIMIT_ERROR" & + " already exists, not redeclaring") +when not declared(NGTCP2_PROTOCOL_VIOLATION): + when cast[cuint](10'i64) is static: + const + NGTCP2_PROTOCOL_VIOLATION* = cast[cuint](10'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:948:9 + else: + let NGTCP2_PROTOCOL_VIOLATION* = cast[cuint](10'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:948:9 +else: + static : + hint("Declaration of " & "NGTCP2_PROTOCOL_VIOLATION" & + " already exists, not redeclaring") +when not declared(NGTCP2_INVALID_TOKEN): + when cast[cuint](11'i64) is static: + const + NGTCP2_INVALID_TOKEN* = cast[cuint](11'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:956:9 + else: + let NGTCP2_INVALID_TOKEN* = cast[cuint](11'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:956:9 +else: + static : + hint("Declaration of " & "NGTCP2_INVALID_TOKEN" & + " already exists, not redeclaring") +when not declared(NGTCP2_APPLICATION_ERROR): + when cast[cuint](12'i64) is static: + const + NGTCP2_APPLICATION_ERROR* = cast[cuint](12'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:964:9 + else: + let NGTCP2_APPLICATION_ERROR* = cast[cuint](12'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:964:9 +else: + static : + hint("Declaration of " & "NGTCP2_APPLICATION_ERROR" & + " already exists, not redeclaring") +when not declared(NGTCP2_CRYPTO_BUFFER_EXCEEDED): + when cast[cuint](13'i64) is static: + const + NGTCP2_CRYPTO_BUFFER_EXCEEDED* = cast[cuint](13'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:972:9 + else: + let NGTCP2_CRYPTO_BUFFER_EXCEEDED* = cast[cuint](13'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:972:9 +else: + static : + hint("Declaration of " & "NGTCP2_CRYPTO_BUFFER_EXCEEDED" & + " already exists, not redeclaring") +when not declared(NGTCP2_KEY_UPDATE_ERROR): + when cast[cuint](14'i64) is static: + const + NGTCP2_KEY_UPDATE_ERROR* = cast[cuint](14'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:980:9 + else: + let NGTCP2_KEY_UPDATE_ERROR* = cast[cuint](14'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:980:9 +else: + static : + hint("Declaration of " & "NGTCP2_KEY_UPDATE_ERROR" & + " already exists, not redeclaring") +when not declared(NGTCP2_AEAD_LIMIT_REACHED): + when cast[cuint](15'i64) is static: + const + NGTCP2_AEAD_LIMIT_REACHED* = cast[cuint](15'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:988:9 + else: + let NGTCP2_AEAD_LIMIT_REACHED* = cast[cuint](15'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:988:9 +else: + static : + hint("Declaration of " & "NGTCP2_AEAD_LIMIT_REACHED" & + " already exists, not redeclaring") +when not declared(NGTCP2_NO_VIABLE_PATH): + when cast[cuint](16'i64) is static: + const + NGTCP2_NO_VIABLE_PATH* = cast[cuint](16'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:996:9 + else: + let NGTCP2_NO_VIABLE_PATH* = cast[cuint](16'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:996:9 +else: + static : + hint("Declaration of " & "NGTCP2_NO_VIABLE_PATH" & + " already exists, not redeclaring") +when not declared(NGTCP2_CRYPTO_ERROR): + when cast[cuint](256'i64) is static: + const + NGTCP2_CRYPTO_ERROR* = cast[cuint](256'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1004:9 + else: + let NGTCP2_CRYPTO_ERROR* = cast[cuint](256'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1004:9 +else: + static : + hint("Declaration of " & "NGTCP2_CRYPTO_ERROR" & + " already exists, not redeclaring") +when not declared(NGTCP2_VERSION_NEGOTIATION_ERROR): + when 17 is static: + const + NGTCP2_VERSION_NEGOTIATION_ERROR* = 17 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1012:9 + else: + let NGTCP2_VERSION_NEGOTIATION_ERROR* = 17 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1012:9 +else: + static : + hint("Declaration of " & "NGTCP2_VERSION_NEGOTIATION_ERROR" & + " already exists, not redeclaring") +when not declared(NGTCP2_DEFAULT_MAX_RECV_UDP_PAYLOAD_SIZE): + when 65527 is static: + const + NGTCP2_DEFAULT_MAX_RECV_UDP_PAYLOAD_SIZE* = 65527 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1197:9 + else: + let NGTCP2_DEFAULT_MAX_RECV_UDP_PAYLOAD_SIZE* = 65527 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1197:9 +else: + static : + hint("Declaration of " & "NGTCP2_DEFAULT_MAX_RECV_UDP_PAYLOAD_SIZE" & + " already exists, not redeclaring") +when not declared(NGTCP2_DEFAULT_ACK_DELAY_EXPONENT): + when 3 is static: + const + NGTCP2_DEFAULT_ACK_DELAY_EXPONENT* = 3 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1205:9 + else: + let NGTCP2_DEFAULT_ACK_DELAY_EXPONENT* = 3 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1205:9 +else: + static : + hint("Declaration of " & "NGTCP2_DEFAULT_ACK_DELAY_EXPONENT" & + " already exists, not redeclaring") +when not declared(NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT): + when 2 is static: + const + NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1223:9 + else: + let NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1223:9 +else: + static : + hint("Declaration of " & "NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT" & + " already exists, not redeclaring") +when not declared(NGTCP2_TLSEXT_QUIC_TRANSPORT_PARAMETERS_V1): + when cast[cuint](57'i64) is static: + const + NGTCP2_TLSEXT_QUIC_TRANSPORT_PARAMETERS_V1* = cast[cuint](57'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1231:9 + else: + let NGTCP2_TLSEXT_QUIC_TRANSPORT_PARAMETERS_V1* = cast[cuint](57'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1231:9 +else: + static : + hint("Declaration of " & "NGTCP2_TLSEXT_QUIC_TRANSPORT_PARAMETERS_V1" & + " already exists, not redeclaring") +when not declared(NGTCP2_TRANSPORT_PARAMS_V1): + when 1 is static: + const + NGTCP2_TRANSPORT_PARAMS_V1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1384:9 + else: + let NGTCP2_TRANSPORT_PARAMS_V1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1384:9 +else: + static : + hint("Declaration of " & "NGTCP2_TRANSPORT_PARAMS_V1" & + " already exists, not redeclaring") +when not declared(NGTCP2_TRANSPORT_PARAMS_VERSION): + when NGTCP2_TRANSPORT_PARAMS_V1 is typedesc: + type + NGTCP2_TRANSPORT_PARAMS_VERSION* = NGTCP2_TRANSPORT_PARAMS_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1385:9 + else: + when NGTCP2_TRANSPORT_PARAMS_V1 is static: + const + NGTCP2_TRANSPORT_PARAMS_VERSION* = NGTCP2_TRANSPORT_PARAMS_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1385:9 + else: + let NGTCP2_TRANSPORT_PARAMS_VERSION* = NGTCP2_TRANSPORT_PARAMS_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1385:9 +else: + static : + hint("Declaration of " & "NGTCP2_TRANSPORT_PARAMS_VERSION" & + " already exists, not redeclaring") +when not declared(NGTCP2_CONN_INFO_V1): + when 1 is static: + const + NGTCP2_CONN_INFO_V1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1555:9 + else: + let NGTCP2_CONN_INFO_V1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1555:9 +else: + static : + hint("Declaration of " & "NGTCP2_CONN_INFO_V1" & + " already exists, not redeclaring") +when not declared(NGTCP2_CONN_INFO_VERSION): + when NGTCP2_CONN_INFO_V1 is typedesc: + type + NGTCP2_CONN_INFO_VERSION* = NGTCP2_CONN_INFO_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1556:9 + else: + when NGTCP2_CONN_INFO_V1 is static: + const + NGTCP2_CONN_INFO_VERSION* = NGTCP2_CONN_INFO_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1556:9 + else: + let NGTCP2_CONN_INFO_VERSION* = NGTCP2_CONN_INFO_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1556:9 +else: + static : + hint("Declaration of " & "NGTCP2_CONN_INFO_VERSION" & + " already exists, not redeclaring") +when not declared(NGTCP2_QLOG_WRITE_FLAG_NONE): + when cast[cuint](0'i64) is static: + const + NGTCP2_QLOG_WRITE_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1637:9 + else: + let NGTCP2_QLOG_WRITE_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1637:9 +else: + static : + hint("Declaration of " & "NGTCP2_QLOG_WRITE_FLAG_NONE" & + " already exists, not redeclaring") +when not declared(NGTCP2_QLOG_WRITE_FLAG_FIN): + when cast[cuint](1'i64) is static: + const + NGTCP2_QLOG_WRITE_FLAG_FIN* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1644:9 + else: + let NGTCP2_QLOG_WRITE_FLAG_FIN* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1644:9 +else: + static : + hint("Declaration of " & "NGTCP2_QLOG_WRITE_FLAG_FIN" & + " already exists, not redeclaring") +when not declared(NGTCP2_SETTINGS_V1): + when 1 is static: + const + NGTCP2_SETTINGS_V1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1697:9 + else: + let NGTCP2_SETTINGS_V1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1697:9 +else: + static : + hint("Declaration of " & "NGTCP2_SETTINGS_V1" & + " already exists, not redeclaring") +when not declared(NGTCP2_SETTINGS_V2): + when 2 is static: + const + NGTCP2_SETTINGS_V2* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1698:9 + else: + let NGTCP2_SETTINGS_V2* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1698:9 +else: + static : + hint("Declaration of " & "NGTCP2_SETTINGS_V2" & + " already exists, not redeclaring") +when not declared(NGTCP2_SETTINGS_VERSION): + when NGTCP2_SETTINGS_V2 is typedesc: + type + NGTCP2_SETTINGS_VERSION* = NGTCP2_SETTINGS_V2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1699:9 + else: + when NGTCP2_SETTINGS_V2 is static: + const + NGTCP2_SETTINGS_VERSION* = NGTCP2_SETTINGS_V2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1699:9 + else: + let NGTCP2_SETTINGS_VERSION* = NGTCP2_SETTINGS_V2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:1699:9 +else: + static : + hint("Declaration of " & "NGTCP2_SETTINGS_VERSION" & + " already exists, not redeclaring") +when not declared(NGTCP2_STREAM_DATA_FLAG_NONE): + when cast[cuint](0'i64) is static: + const + NGTCP2_STREAM_DATA_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2657:9 + else: + let NGTCP2_STREAM_DATA_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2657:9 +else: + static : + hint("Declaration of " & "NGTCP2_STREAM_DATA_FLAG_NONE" & + " already exists, not redeclaring") +when not declared(NGTCP2_STREAM_DATA_FLAG_FIN): + when cast[cuint](1'i64) is static: + const + NGTCP2_STREAM_DATA_FLAG_FIN* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2665:9 + else: + let NGTCP2_STREAM_DATA_FLAG_FIN* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2665:9 +else: + static : + hint("Declaration of " & "NGTCP2_STREAM_DATA_FLAG_FIN" & + " already exists, not redeclaring") +when not declared(NGTCP2_STREAM_DATA_FLAG_0RTT): + when cast[cuint](2'i64) is static: + const + NGTCP2_STREAM_DATA_FLAG_0RTT* = cast[cuint](2'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2674:9 + else: + let NGTCP2_STREAM_DATA_FLAG_0RTT* = cast[cuint](2'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2674:9 +else: + static : + hint("Declaration of " & "NGTCP2_STREAM_DATA_FLAG_0RTT" & + " already exists, not redeclaring") +when not declared(NGTCP2_STREAM_CLOSE_FLAG_NONE): + when cast[cuint](0'i64) is static: + const + NGTCP2_STREAM_CLOSE_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2729:9 + else: + let NGTCP2_STREAM_CLOSE_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2729:9 +else: + static : + hint("Declaration of " & "NGTCP2_STREAM_CLOSE_FLAG_NONE" & + " already exists, not redeclaring") +when not declared(NGTCP2_STREAM_CLOSE_FLAG_APP_ERROR_CODE_SET): + when cast[cuint](1'i64) is static: + const + NGTCP2_STREAM_CLOSE_FLAG_APP_ERROR_CODE_SET* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2737:9 + else: + let NGTCP2_STREAM_CLOSE_FLAG_APP_ERROR_CODE_SET* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2737:9 +else: + static : + hint("Declaration of " & "NGTCP2_STREAM_CLOSE_FLAG_APP_ERROR_CODE_SET" & + " already exists, not redeclaring") +when not declared(NGTCP2_PATH_VALIDATION_FLAG_NONE): + when cast[cuint](0'i64) is static: + const + NGTCP2_PATH_VALIDATION_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2945:9 + else: + let NGTCP2_PATH_VALIDATION_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2945:9 +else: + static : + hint("Declaration of " & "NGTCP2_PATH_VALIDATION_FLAG_NONE" & + " already exists, not redeclaring") +when not declared(NGTCP2_PATH_VALIDATION_FLAG_PREFERRED_ADDR): + when cast[cuint](1'i64) is static: + const + NGTCP2_PATH_VALIDATION_FLAG_PREFERRED_ADDR* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2954:9 + else: + let NGTCP2_PATH_VALIDATION_FLAG_PREFERRED_ADDR* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2954:9 +else: + static : + hint("Declaration of " & "NGTCP2_PATH_VALIDATION_FLAG_PREFERRED_ADDR" & + " already exists, not redeclaring") +when not declared(NGTCP2_PATH_VALIDATION_FLAG_NEW_TOKEN): + when cast[cuint](2'i64) is static: + const + NGTCP2_PATH_VALIDATION_FLAG_NEW_TOKEN* = cast[cuint](2'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2963:9 + else: + let NGTCP2_PATH_VALIDATION_FLAG_NEW_TOKEN* = cast[cuint](2'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:2963:9 +else: + static : + hint("Declaration of " & "NGTCP2_PATH_VALIDATION_FLAG_NEW_TOKEN" & + " already exists, not redeclaring") +when not declared(NGTCP2_DATAGRAM_FLAG_NONE): + when cast[cuint](0'i64) is static: + const + NGTCP2_DATAGRAM_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3112:9 + else: + let NGTCP2_DATAGRAM_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3112:9 +else: + static : + hint("Declaration of " & "NGTCP2_DATAGRAM_FLAG_NONE" & + " already exists, not redeclaring") +when not declared(NGTCP2_DATAGRAM_FLAG_0RTT): + when cast[cuint](1'i64) is static: + const + NGTCP2_DATAGRAM_FLAG_0RTT* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3121:9 + else: + let NGTCP2_DATAGRAM_FLAG_0RTT* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3121:9 +else: + static : + hint("Declaration of " & "NGTCP2_DATAGRAM_FLAG_0RTT" & + " already exists, not redeclaring") +when not declared(NGTCP2_CALLBACKS_V1): + when 1 is static: + const + NGTCP2_CALLBACKS_V1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3255:9 + else: + let NGTCP2_CALLBACKS_V1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3255:9 +else: + static : + hint("Declaration of " & "NGTCP2_CALLBACKS_V1" & + " already exists, not redeclaring") +when not declared(NGTCP2_CALLBACKS_VERSION): + when NGTCP2_CALLBACKS_V1 is typedesc: + type + NGTCP2_CALLBACKS_VERSION* = NGTCP2_CALLBACKS_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3256:9 + else: + when NGTCP2_CALLBACKS_V1 is static: + const + NGTCP2_CALLBACKS_VERSION* = NGTCP2_CALLBACKS_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3256:9 + else: + let NGTCP2_CALLBACKS_VERSION* = NGTCP2_CALLBACKS_V1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:3256:9 +else: + static : + hint("Declaration of " & "NGTCP2_CALLBACKS_VERSION" & + " already exists, not redeclaring") +when not declared(NGTCP2_WRITE_STREAM_FLAG_NONE): + when cast[cuint](0'i64) is static: + const + NGTCP2_WRITE_STREAM_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:4383:9 + else: + let NGTCP2_WRITE_STREAM_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:4383:9 +else: + static : + hint("Declaration of " & "NGTCP2_WRITE_STREAM_FLAG_NONE" & + " already exists, not redeclaring") +when not declared(NGTCP2_WRITE_STREAM_FLAG_MORE): + when cast[cuint](1'i64) is static: + const + NGTCP2_WRITE_STREAM_FLAG_MORE* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:4391:9 + else: + let NGTCP2_WRITE_STREAM_FLAG_MORE* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:4391:9 +else: + static : + hint("Declaration of " & "NGTCP2_WRITE_STREAM_FLAG_MORE" & + " already exists, not redeclaring") +when not declared(NGTCP2_WRITE_STREAM_FLAG_FIN): + when cast[cuint](2'i64) is static: + const + NGTCP2_WRITE_STREAM_FLAG_FIN* = cast[cuint](2'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:4399:9 + else: + let NGTCP2_WRITE_STREAM_FLAG_FIN* = cast[cuint](2'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:4399:9 +else: + static : + hint("Declaration of " & "NGTCP2_WRITE_STREAM_FLAG_FIN" & + " already exists, not redeclaring") +when not declared(NGTCP2_WRITE_DATAGRAM_FLAG_NONE): + when cast[cuint](0'i64) is static: + const + NGTCP2_WRITE_DATAGRAM_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:4579:9 + else: + let NGTCP2_WRITE_DATAGRAM_FLAG_NONE* = cast[cuint](0'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:4579:9 +else: + static : + hint("Declaration of " & "NGTCP2_WRITE_DATAGRAM_FLAG_NONE" & + " already exists, not redeclaring") +when not declared(NGTCP2_WRITE_DATAGRAM_FLAG_MORE): + when cast[cuint](1'i64) is static: + const + NGTCP2_WRITE_DATAGRAM_FLAG_MORE* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:4587:9 + else: + let NGTCP2_WRITE_DATAGRAM_FLAG_MORE* = cast[cuint](1'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:4587:9 +else: + static : + hint("Declaration of " & "NGTCP2_WRITE_DATAGRAM_FLAG_MORE" & + " already exists, not redeclaring") +when not declared(NGTCP2_VERSION_AGE): + when 1 is static: + const + NGTCP2_VERSION_AGE* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:5667:9 + else: + let NGTCP2_VERSION_AGE* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/lib/includes/ngtcp2/ngtcp2.h:5667:9 +else: + static : + hint("Declaration of " & "NGTCP2_VERSION_AGE" & + " already exists, not redeclaring") +when not declared(NGTCP2_CRYPTO_ERR_INTERNAL): + when -201 is static: + const + NGTCP2_CRYPTO_ERR_INTERNAL* = -201 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:52:9 + else: + let NGTCP2_CRYPTO_ERR_INTERNAL* = -201 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:52:9 +else: + static : + hint("Declaration of " & "NGTCP2_CRYPTO_ERR_INTERNAL" & + " already exists, not redeclaring") +when not declared(NGTCP2_CRYPTO_ERR_UNREADABLE_TOKEN): + when -202 is static: + const + NGTCP2_CRYPTO_ERR_UNREADABLE_TOKEN* = -202 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:61:9 + else: + let NGTCP2_CRYPTO_ERR_UNREADABLE_TOKEN* = -202 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:61:9 +else: + static : + hint("Declaration of " & "NGTCP2_CRYPTO_ERR_UNREADABLE_TOKEN" & + " already exists, not redeclaring") +when not declared(NGTCP2_CRYPTO_ERR_VERIFY_TOKEN): + when -203 is static: + const + NGTCP2_CRYPTO_ERR_VERIFY_TOKEN* = -203 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:70:9 + else: + let NGTCP2_CRYPTO_ERR_VERIFY_TOKEN* = -203 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:70:9 +else: + static : + hint("Declaration of " & "NGTCP2_CRYPTO_ERR_VERIFY_TOKEN" & + " already exists, not redeclaring") +when not declared(NGTCP2_CRYPTO_TOKEN_RAND_DATALEN): + when 16 is static: + const + NGTCP2_CRYPTO_TOKEN_RAND_DATALEN* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:571:9 + else: + let NGTCP2_CRYPTO_TOKEN_RAND_DATALEN* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:571:9 +else: + static : + hint("Declaration of " & "NGTCP2_CRYPTO_TOKEN_RAND_DATALEN" & + " already exists, not redeclaring") +when not declared(NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY): + when 182 is static: + const + NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY* = 182 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:579:9 + else: + let NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY* = 182 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:579:9 +else: + static : + hint("Declaration of " & "NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY" & + " already exists, not redeclaring") +when not declared(NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY2): + when 183 is static: + const + NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY2* = 183 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:587:9 + else: + let NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY2* = 183 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:587:9 +else: + static : + hint("Declaration of " & "NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY2" & + " already exists, not redeclaring") +when not declared(NGTCP2_CRYPTO_TOKEN_MAGIC_REGULAR): + when 54 is static: + const + NGTCP2_CRYPTO_TOKEN_MAGIC_REGULAR* = 54 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:595:9 + else: + let NGTCP2_CRYPTO_TOKEN_MAGIC_REGULAR* = 54 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h:595:9 +else: + static : + hint("Declaration of " & "NGTCP2_CRYPTO_TOKEN_MAGIC_REGULAR" & + " already exists, not redeclaring") +when not declared(PTLS_HAVE_LOG): + when 1 is static: + const + PTLS_HAVE_LOG* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:77:9 + else: + let PTLS_HAVE_LOG* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:77:9 +else: + static : + hint("Declaration of " & "PTLS_HAVE_LOG" & + " already exists, not redeclaring") +when not declared(PTLS_FUZZ_HANDSHAKE): + when 0 is static: + const + PTLS_FUZZ_HANDSHAKE* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:82:9 + else: + let PTLS_FUZZ_HANDSHAKE* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:82:9 +else: + static : + hint("Declaration of " & "PTLS_FUZZ_HANDSHAKE" & + " already exists, not redeclaring") +when not declared(PTLS_HELLO_RANDOM_SIZE): + when 32 is static: + const + PTLS_HELLO_RANDOM_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:85:9 + else: + let PTLS_HELLO_RANDOM_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:85:9 +else: + static : + hint("Declaration of " & "PTLS_HELLO_RANDOM_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_AES128_KEY_SIZE): + when 16 is static: + const + PTLS_AES128_KEY_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:87:9 + else: + let PTLS_AES128_KEY_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:87:9 +else: + static : + hint("Declaration of " & "PTLS_AES128_KEY_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_AES256_KEY_SIZE): + when 32 is static: + const + PTLS_AES256_KEY_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:88:9 + else: + let PTLS_AES256_KEY_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:88:9 +else: + static : + hint("Declaration of " & "PTLS_AES256_KEY_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_AES_BLOCK_SIZE): + when 16 is static: + const + PTLS_AES_BLOCK_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:89:9 + else: + let PTLS_AES_BLOCK_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:89:9 +else: + static : + hint("Declaration of " & "PTLS_AES_BLOCK_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_AES_IV_SIZE): + when 16 is static: + const + PTLS_AES_IV_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:90:9 + else: + let PTLS_AES_IV_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:90:9 +else: + static : + hint("Declaration of " & "PTLS_AES_IV_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_AESGCM_IV_SIZE): + when 12 is static: + const + PTLS_AESGCM_IV_SIZE* = 12 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:91:9 + else: + let PTLS_AESGCM_IV_SIZE* = 12 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:91:9 +else: + static : + hint("Declaration of " & "PTLS_AESGCM_IV_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_AESGCM_TAG_SIZE): + when 16 is static: + const + PTLS_AESGCM_TAG_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:92:9 + else: + let PTLS_AESGCM_TAG_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:92:9 +else: + static : + hint("Declaration of " & "PTLS_AESGCM_TAG_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_AESGCM_CONFIDENTIALITY_LIMIT): + when 33554432 is static: + const + PTLS_AESGCM_CONFIDENTIALITY_LIMIT* = 33554432 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:93:9 + else: + let PTLS_AESGCM_CONFIDENTIALITY_LIMIT* = 33554432 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:93:9 +else: + static : + hint("Declaration of " & "PTLS_AESGCM_CONFIDENTIALITY_LIMIT" & + " already exists, not redeclaring") +when not declared(PTLS_AESGCM_INTEGRITY_LIMIT): + when cast[culonglong](18014398509481984'i64) is static: + const + PTLS_AESGCM_INTEGRITY_LIMIT* = cast[culonglong](18014398509481984'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:94:9 + else: + let PTLS_AESGCM_INTEGRITY_LIMIT* = cast[culonglong](18014398509481984'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:94:9 +else: + static : + hint("Declaration of " & "PTLS_AESGCM_INTEGRITY_LIMIT" & + " already exists, not redeclaring") +when not declared(PTLS_AESCCM_CONFIDENTIALITY_LIMIT): + when 11863283 is static: + const + PTLS_AESCCM_CONFIDENTIALITY_LIMIT* = 11863283 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:95:9 + else: + let PTLS_AESCCM_CONFIDENTIALITY_LIMIT* = 11863283 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:95:9 +else: + static : + hint("Declaration of " & "PTLS_AESCCM_CONFIDENTIALITY_LIMIT" & + " already exists, not redeclaring") +when not declared(PTLS_AESCCM_INTEGRITY_LIMIT): + when 11863283 is static: + const + PTLS_AESCCM_INTEGRITY_LIMIT* = 11863283 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:96:9 + else: + let PTLS_AESCCM_INTEGRITY_LIMIT* = 11863283 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:96:9 +else: + static : + hint("Declaration of " & "PTLS_AESCCM_INTEGRITY_LIMIT" & + " already exists, not redeclaring") +when not declared(PTLS_CHACHA20_KEY_SIZE): + when 32 is static: + const + PTLS_CHACHA20_KEY_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:98:9 + else: + let PTLS_CHACHA20_KEY_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:98:9 +else: + static : + hint("Declaration of " & "PTLS_CHACHA20_KEY_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_CHACHA20_IV_SIZE): + when 16 is static: + const + PTLS_CHACHA20_IV_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:99:9 + else: + let PTLS_CHACHA20_IV_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:99:9 +else: + static : + hint("Declaration of " & "PTLS_CHACHA20_IV_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_CHACHA20POLY1305_IV_SIZE): + when 12 is static: + const + PTLS_CHACHA20POLY1305_IV_SIZE* = 12 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:100:9 + else: + let PTLS_CHACHA20POLY1305_IV_SIZE* = 12 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:100:9 +else: + static : + hint("Declaration of " & "PTLS_CHACHA20POLY1305_IV_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_CHACHA20POLY1305_TAG_SIZE): + when 16 is static: + const + PTLS_CHACHA20POLY1305_TAG_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:101:9 + else: + let PTLS_CHACHA20POLY1305_TAG_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:101:9 +else: + static : + hint("Declaration of " & "PTLS_CHACHA20POLY1305_TAG_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_CHACHA20POLY1305_CONFIDENTIALITY_LIMIT): + when UINT64_MAX is typedesc: + type + PTLS_CHACHA20POLY1305_CONFIDENTIALITY_LIMIT* = UINT64_MAX ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:102:9 + else: + when UINT64_MAX is static: + const + PTLS_CHACHA20POLY1305_CONFIDENTIALITY_LIMIT* = UINT64_MAX ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:102:9 + else: + let PTLS_CHACHA20POLY1305_CONFIDENTIALITY_LIMIT* = UINT64_MAX ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:102:9 +else: + static : + hint("Declaration of " & "PTLS_CHACHA20POLY1305_CONFIDENTIALITY_LIMIT" & + " already exists, not redeclaring") +when not declared(PTLS_CHACHA20POLY1305_INTEGRITY_LIMIT): + when cast[culonglong](68719476736'i64) is static: + const + PTLS_CHACHA20POLY1305_INTEGRITY_LIMIT* = cast[culonglong](68719476736'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:103:9 + else: + let PTLS_CHACHA20POLY1305_INTEGRITY_LIMIT* = cast[culonglong](68719476736'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:103:9 +else: + static : + hint("Declaration of " & "PTLS_CHACHA20POLY1305_INTEGRITY_LIMIT" & + " already exists, not redeclaring") +when not declared(PTLS_AEGIS128L_KEY_SIZE): + when 16 is static: + const + PTLS_AEGIS128L_KEY_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:105:9 + else: + let PTLS_AEGIS128L_KEY_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:105:9 +else: + static : + hint("Declaration of " & "PTLS_AEGIS128L_KEY_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_AEGIS128L_IV_SIZE): + when 16 is static: + const + PTLS_AEGIS128L_IV_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:106:9 + else: + let PTLS_AEGIS128L_IV_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:106:9 +else: + static : + hint("Declaration of " & "PTLS_AEGIS128L_IV_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_AEGIS128L_TAG_SIZE): + when 16 is static: + const + PTLS_AEGIS128L_TAG_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:107:9 + else: + let PTLS_AEGIS128L_TAG_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:107:9 +else: + static : + hint("Declaration of " & "PTLS_AEGIS128L_TAG_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_AEGIS128L_CONFIDENTIALITY_LIMIT): + when UINT64_MAX is typedesc: + type + PTLS_AEGIS128L_CONFIDENTIALITY_LIMIT* = UINT64_MAX ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:108:9 + else: + when UINT64_MAX is static: + const + PTLS_AEGIS128L_CONFIDENTIALITY_LIMIT* = UINT64_MAX ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:108:9 + else: + let PTLS_AEGIS128L_CONFIDENTIALITY_LIMIT* = UINT64_MAX ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:108:9 +else: + static : + hint("Declaration of " & "PTLS_AEGIS128L_CONFIDENTIALITY_LIMIT" & + " already exists, not redeclaring") +when not declared(PTLS_AEGIS128L_INTEGRITY_LIMIT): + when cast[culonglong](281474976710656'i64) is static: + const + PTLS_AEGIS128L_INTEGRITY_LIMIT* = cast[culonglong](281474976710656'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:109:9 + else: + let PTLS_AEGIS128L_INTEGRITY_LIMIT* = cast[culonglong](281474976710656'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:109:9 +else: + static : + hint("Declaration of " & "PTLS_AEGIS128L_INTEGRITY_LIMIT" & + " already exists, not redeclaring") +when not declared(PTLS_AEGIS256_KEY_SIZE): + when 32 is static: + const + PTLS_AEGIS256_KEY_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:111:9 + else: + let PTLS_AEGIS256_KEY_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:111:9 +else: + static : + hint("Declaration of " & "PTLS_AEGIS256_KEY_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_AEGIS256_IV_SIZE): + when 32 is static: + const + PTLS_AEGIS256_IV_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:112:9 + else: + let PTLS_AEGIS256_IV_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:112:9 +else: + static : + hint("Declaration of " & "PTLS_AEGIS256_IV_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_AEGIS256_TAG_SIZE): + when 16 is static: + const + PTLS_AEGIS256_TAG_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:113:9 + else: + let PTLS_AEGIS256_TAG_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:113:9 +else: + static : + hint("Declaration of " & "PTLS_AEGIS256_TAG_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_AEGIS256_CONFIDENTIALITY_LIMIT): + when UINT64_MAX is typedesc: + type + PTLS_AEGIS256_CONFIDENTIALITY_LIMIT* = UINT64_MAX ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:114:9 + else: + when UINT64_MAX is static: + const + PTLS_AEGIS256_CONFIDENTIALITY_LIMIT* = UINT64_MAX ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:114:9 + else: + let PTLS_AEGIS256_CONFIDENTIALITY_LIMIT* = UINT64_MAX ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:114:9 +else: + static : + hint("Declaration of " & "PTLS_AEGIS256_CONFIDENTIALITY_LIMIT" & + " already exists, not redeclaring") +when not declared(PTLS_AEGIS256_INTEGRITY_LIMIT): + when cast[culonglong](281474976710656'i64) is static: + const + PTLS_AEGIS256_INTEGRITY_LIMIT* = cast[culonglong](281474976710656'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:115:9 + else: + let PTLS_AEGIS256_INTEGRITY_LIMIT* = cast[culonglong](281474976710656'i64) ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:115:9 +else: + static : + hint("Declaration of " & "PTLS_AEGIS256_INTEGRITY_LIMIT" & + " already exists, not redeclaring") +when not declared(PTLS_BLOWFISH_KEY_SIZE): + when 16 is static: + const + PTLS_BLOWFISH_KEY_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:117:9 + else: + let PTLS_BLOWFISH_KEY_SIZE* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:117:9 +else: + static : + hint("Declaration of " & "PTLS_BLOWFISH_KEY_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_BLOWFISH_BLOCK_SIZE): + when 8 is static: + const + PTLS_BLOWFISH_BLOCK_SIZE* = 8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:118:9 + else: + let PTLS_BLOWFISH_BLOCK_SIZE* = 8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:118:9 +else: + static : + hint("Declaration of " & "PTLS_BLOWFISH_BLOCK_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_SHA256_BLOCK_SIZE): + when 64 is static: + const + PTLS_SHA256_BLOCK_SIZE* = 64 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:120:9 + else: + let PTLS_SHA256_BLOCK_SIZE* = 64 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:120:9 +else: + static : + hint("Declaration of " & "PTLS_SHA256_BLOCK_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_SHA256_DIGEST_SIZE): + when 32 is static: + const + PTLS_SHA256_DIGEST_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:121:9 + else: + let PTLS_SHA256_DIGEST_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:121:9 +else: + static : + hint("Declaration of " & "PTLS_SHA256_DIGEST_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_SHA384_BLOCK_SIZE): + when 128 is static: + const + PTLS_SHA384_BLOCK_SIZE* = 128 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:123:9 + else: + let PTLS_SHA384_BLOCK_SIZE* = 128 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:123:9 +else: + static : + hint("Declaration of " & "PTLS_SHA384_BLOCK_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_SHA384_DIGEST_SIZE): + when 48 is static: + const + PTLS_SHA384_DIGEST_SIZE* = 48 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:124:9 + else: + let PTLS_SHA384_DIGEST_SIZE* = 48 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:124:9 +else: + static : + hint("Declaration of " & "PTLS_SHA384_DIGEST_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_SHA512_BLOCK_SIZE): + when 128 is static: + const + PTLS_SHA512_BLOCK_SIZE* = 128 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:126:9 + else: + let PTLS_SHA512_BLOCK_SIZE* = 128 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:126:9 +else: + static : + hint("Declaration of " & "PTLS_SHA512_BLOCK_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_SHA512_DIGEST_SIZE): + when 64 is static: + const + PTLS_SHA512_DIGEST_SIZE* = 64 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:127:9 + else: + let PTLS_SHA512_DIGEST_SIZE* = 64 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:127:9 +else: + static : + hint("Declaration of " & "PTLS_SHA512_DIGEST_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_MAX_SECRET_SIZE): + when 32 is static: + const + PTLS_MAX_SECRET_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:129:9 + else: + let PTLS_MAX_SECRET_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:129:9 +else: + static : + hint("Declaration of " & "PTLS_MAX_SECRET_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_MAX_IV_SIZE): + when 32 is static: + const + PTLS_MAX_IV_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:130:9 + else: + let PTLS_MAX_IV_SIZE* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:130:9 +else: + static : + hint("Declaration of " & "PTLS_MAX_IV_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_MAX_DIGEST_SIZE): + when 64 is static: + const + PTLS_MAX_DIGEST_SIZE* = 64 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:131:9 + else: + let PTLS_MAX_DIGEST_SIZE* = 64 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:131:9 +else: + static : + hint("Declaration of " & "PTLS_MAX_DIGEST_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_PROTOCOL_VERSION_TLS12): + when 771 is static: + const + PTLS_PROTOCOL_VERSION_TLS12* = 771 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:134:9 + else: + let PTLS_PROTOCOL_VERSION_TLS12* = 771 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:134:9 +else: + static : + hint("Declaration of " & "PTLS_PROTOCOL_VERSION_TLS12" & + " already exists, not redeclaring") +when not declared(PTLS_PROTOCOL_VERSION_TLS13): + when 772 is static: + const + PTLS_PROTOCOL_VERSION_TLS13* = 772 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:135:9 + else: + let PTLS_PROTOCOL_VERSION_TLS13* = 772 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:135:9 +else: + static : + hint("Declaration of " & "PTLS_PROTOCOL_VERSION_TLS13" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_AES_128_GCM_SHA256): + when 4865 is static: + const + PTLS_CIPHER_SUITE_AES_128_GCM_SHA256* = 4865 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:138:9 + else: + let PTLS_CIPHER_SUITE_AES_128_GCM_SHA256* = 4865 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:138:9 +else: + static : + hint("Declaration of " & "PTLS_CIPHER_SUITE_AES_128_GCM_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_NAME_AES_128_GCM_SHA256): + when "TLS_AES_128_GCM_SHA256" is static: + const + PTLS_CIPHER_SUITE_NAME_AES_128_GCM_SHA256* = "TLS_AES_128_GCM_SHA256" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:139:9 + else: + let PTLS_CIPHER_SUITE_NAME_AES_128_GCM_SHA256* = "TLS_AES_128_GCM_SHA256" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:139:9 +else: + static : + hint("Declaration of " & "PTLS_CIPHER_SUITE_NAME_AES_128_GCM_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_AES_256_GCM_SHA384): + when 4866 is static: + const + PTLS_CIPHER_SUITE_AES_256_GCM_SHA384* = 4866 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:140:9 + else: + let PTLS_CIPHER_SUITE_AES_256_GCM_SHA384* = 4866 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:140:9 +else: + static : + hint("Declaration of " & "PTLS_CIPHER_SUITE_AES_256_GCM_SHA384" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_NAME_AES_256_GCM_SHA384): + when "TLS_AES_256_GCM_SHA384" is static: + const + PTLS_CIPHER_SUITE_NAME_AES_256_GCM_SHA384* = "TLS_AES_256_GCM_SHA384" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:141:9 + else: + let PTLS_CIPHER_SUITE_NAME_AES_256_GCM_SHA384* = "TLS_AES_256_GCM_SHA384" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:141:9 +else: + static : + hint("Declaration of " & "PTLS_CIPHER_SUITE_NAME_AES_256_GCM_SHA384" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_CHACHA20_POLY1305_SHA256): + when 4867 is static: + const + PTLS_CIPHER_SUITE_CHACHA20_POLY1305_SHA256* = 4867 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:142:9 + else: + let PTLS_CIPHER_SUITE_CHACHA20_POLY1305_SHA256* = 4867 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:142:9 +else: + static : + hint("Declaration of " & "PTLS_CIPHER_SUITE_CHACHA20_POLY1305_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_NAME_CHACHA20_POLY1305_SHA256): + when "TLS_CHACHA20_POLY1305_SHA256" is static: + const + PTLS_CIPHER_SUITE_NAME_CHACHA20_POLY1305_SHA256* = "TLS_CHACHA20_POLY1305_SHA256" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:143:9 + else: + let PTLS_CIPHER_SUITE_NAME_CHACHA20_POLY1305_SHA256* = "TLS_CHACHA20_POLY1305_SHA256" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:143:9 +else: + static : + hint("Declaration of " & "PTLS_CIPHER_SUITE_NAME_CHACHA20_POLY1305_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_AEGIS256_SHA512): + when 4870 is static: + const + PTLS_CIPHER_SUITE_AEGIS256_SHA512* = 4870 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:144:9 + else: + let PTLS_CIPHER_SUITE_AEGIS256_SHA512* = 4870 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:144:9 +else: + static : + hint("Declaration of " & "PTLS_CIPHER_SUITE_AEGIS256_SHA512" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_NAME_AEGIS256_SHA512): + when "TLS_AEGIS_256_SHA512" is static: + const + PTLS_CIPHER_SUITE_NAME_AEGIS256_SHA512* = "TLS_AEGIS_256_SHA512" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:145:9 + else: + let PTLS_CIPHER_SUITE_NAME_AEGIS256_SHA512* = "TLS_AEGIS_256_SHA512" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:145:9 +else: + static : + hint("Declaration of " & "PTLS_CIPHER_SUITE_NAME_AEGIS256_SHA512" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_AEGIS128L_SHA256): + when 4871 is static: + const + PTLS_CIPHER_SUITE_AEGIS128L_SHA256* = 4871 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:146:9 + else: + let PTLS_CIPHER_SUITE_AEGIS128L_SHA256* = 4871 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:146:9 +else: + static : + hint("Declaration of " & "PTLS_CIPHER_SUITE_AEGIS128L_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_NAME_AEGIS128L_SHA256): + when "TLS_AEGIS_128L_SHA256" is static: + const + PTLS_CIPHER_SUITE_NAME_AEGIS128L_SHA256* = "TLS_AEGIS_128L_SHA256" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:147:9 + else: + let PTLS_CIPHER_SUITE_NAME_AEGIS128L_SHA256* = "TLS_AEGIS_128L_SHA256" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:147:9 +else: + static : + hint("Declaration of " & "PTLS_CIPHER_SUITE_NAME_AEGIS128L_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256): + when 49195 is static: + const + PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256* = 49195 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:150:9 + else: + let PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256* = 49195 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:150:9 +else: + static : + hint("Declaration of " & + "PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256): + when "ECDHE-ECDSA-AES128-GCM-SHA256" is static: + const + PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256* = "ECDHE-ECDSA-AES128-GCM-SHA256" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:151:9 + else: + let PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256* = "ECDHE-ECDSA-AES128-GCM-SHA256" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:151:9 +else: + static : + hint("Declaration of " & + "PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384): + when 49196 is static: + const + PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384* = 49196 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:152:9 + else: + let PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384* = 49196 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:152:9 +else: + static : + hint("Declaration of " & + "PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384): + when "ECDHE-ECDSA-AES256-GCM-SHA384" is static: + const + PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384* = "ECDHE-ECDSA-AES256-GCM-SHA384" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:153:9 + else: + let PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384* = "ECDHE-ECDSA-AES256-GCM-SHA384" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:153:9 +else: + static : + hint("Declaration of " & + "PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_AES_128_GCM_SHA256): + when 49199 is static: + const + PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_AES_128_GCM_SHA256* = 49199 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:154:9 + else: + let PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_AES_128_GCM_SHA256* = 49199 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:154:9 +else: + static : + hint("Declaration of " & + "PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_AES_128_GCM_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_AES_128_GCM_SHA256): + when "ECDHE-RSA-AES128-GCM-SHA256" is static: + const + PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_AES_128_GCM_SHA256* = "ECDHE-RSA-AES128-GCM-SHA256" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:155:9 + else: + let PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_AES_128_GCM_SHA256* = "ECDHE-RSA-AES128-GCM-SHA256" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:155:9 +else: + static : + hint("Declaration of " & + "PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_AES_128_GCM_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_AES_256_GCM_SHA384): + when 49200 is static: + const + PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_AES_256_GCM_SHA384* = 49200 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:156:9 + else: + let PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_AES_256_GCM_SHA384* = 49200 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:156:9 +else: + static : + hint("Declaration of " & + "PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_AES_256_GCM_SHA384" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_AES_256_GCM_SHA384): + when "ECDHE-RSA-AES256-GCM-SHA384" is static: + const + PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_AES_256_GCM_SHA384* = "ECDHE-RSA-AES256-GCM-SHA384" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:157:9 + else: + let PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_AES_256_GCM_SHA384* = "ECDHE-RSA-AES256-GCM-SHA384" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:157:9 +else: + static : + hint("Declaration of " & + "PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_AES_256_GCM_SHA384" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256): + when 52392 is static: + const + PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256* = 52392 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:158:9 + else: + let PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256* = 52392 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:158:9 +else: + static : + hint("Declaration of " & + "PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256): + when "ECDHE-RSA-CHACHA20-POLY1305" is static: + const + PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256* = "ECDHE-RSA-CHACHA20-POLY1305" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:159:9 + else: + let PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256* = "ECDHE-RSA-CHACHA20-POLY1305" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:159:9 +else: + static : + hint("Declaration of " & + "PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256): + when 52393 is static: + const + PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256* = 52393 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:160:9 + else: + let PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256* = 52393 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:160:9 +else: + static : + hint("Declaration of " & + "PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256): + when "ECDHE-ECDSA-CHACHA20-POLY1305" is static: + const + PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256* = "ECDHE-ECDSA-CHACHA20-POLY1305" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:161:9 + else: + let PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256* = "ECDHE-ECDSA-CHACHA20-POLY1305" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:161:9 +else: + static : + hint("Declaration of " & + "PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_GROUP_SECP256R1): + when 23 is static: + const + PTLS_GROUP_SECP256R1* = 23 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:164:9 + else: + let PTLS_GROUP_SECP256R1* = 23 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:164:9 +else: + static : + hint("Declaration of " & "PTLS_GROUP_SECP256R1" & + " already exists, not redeclaring") +when not declared(PTLS_GROUP_NAME_SECP256R1): + when "secp256r1" is static: + const + PTLS_GROUP_NAME_SECP256R1* = "secp256r1" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:165:9 + else: + let PTLS_GROUP_NAME_SECP256R1* = "secp256r1" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:165:9 +else: + static : + hint("Declaration of " & "PTLS_GROUP_NAME_SECP256R1" & + " already exists, not redeclaring") +when not declared(PTLS_GROUP_SECP384R1): + when 24 is static: + const + PTLS_GROUP_SECP384R1* = 24 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:166:9 + else: + let PTLS_GROUP_SECP384R1* = 24 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:166:9 +else: + static : + hint("Declaration of " & "PTLS_GROUP_SECP384R1" & + " already exists, not redeclaring") +when not declared(PTLS_GROUP_NAME_SECP384R1): + when "secp384r1" is static: + const + PTLS_GROUP_NAME_SECP384R1* = "secp384r1" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:167:9 + else: + let PTLS_GROUP_NAME_SECP384R1* = "secp384r1" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:167:9 +else: + static : + hint("Declaration of " & "PTLS_GROUP_NAME_SECP384R1" & + " already exists, not redeclaring") +when not declared(PTLS_GROUP_SECP521R1): + when 25 is static: + const + PTLS_GROUP_SECP521R1* = 25 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:168:9 + else: + let PTLS_GROUP_SECP521R1* = 25 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:168:9 +else: + static : + hint("Declaration of " & "PTLS_GROUP_SECP521R1" & + " already exists, not redeclaring") +when not declared(PTLS_GROUP_NAME_SECP521R1): + when "secp521r1" is static: + const + PTLS_GROUP_NAME_SECP521R1* = "secp521r1" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:169:9 + else: + let PTLS_GROUP_NAME_SECP521R1* = "secp521r1" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:169:9 +else: + static : + hint("Declaration of " & "PTLS_GROUP_NAME_SECP521R1" & + " already exists, not redeclaring") +when not declared(PTLS_GROUP_X25519): + when 29 is static: + const + PTLS_GROUP_X25519* = 29 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:170:9 + else: + let PTLS_GROUP_X25519* = 29 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:170:9 +else: + static : + hint("Declaration of " & "PTLS_GROUP_X25519" & + " already exists, not redeclaring") +when not declared(PTLS_GROUP_NAME_X25519): + when "x25519" is static: + const + PTLS_GROUP_NAME_X25519* = "x25519" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:171:9 + else: + let PTLS_GROUP_NAME_X25519* = "x25519" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:171:9 +else: + static : + hint("Declaration of " & "PTLS_GROUP_NAME_X25519" & + " already exists, not redeclaring") +when not declared(PTLS_GROUP_X448): + when 30 is static: + const + PTLS_GROUP_X448* = 30 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:172:9 + else: + let PTLS_GROUP_X448* = 30 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:172:9 +else: + static : + hint("Declaration of " & "PTLS_GROUP_X448" & + " already exists, not redeclaring") +when not declared(PTLS_GROUP_NAME_X448): + when "x448" is static: + const + PTLS_GROUP_NAME_X448* = "x448" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:173:9 + else: + let PTLS_GROUP_NAME_X448* = "x448" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:173:9 +else: + static : + hint("Declaration of " & "PTLS_GROUP_NAME_X448" & + " already exists, not redeclaring") +when not declared(PTLS_GROUP_X25519MLKEM768): + when 4588 is static: + const + PTLS_GROUP_X25519MLKEM768* = 4588 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:174:9 + else: + let PTLS_GROUP_X25519MLKEM768* = 4588 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:174:9 +else: + static : + hint("Declaration of " & "PTLS_GROUP_X25519MLKEM768" & + " already exists, not redeclaring") +when not declared(PTLS_GROUP_NAME_X25519MLKEM768): + when "X25519MLKEM768" is static: + const + PTLS_GROUP_NAME_X25519MLKEM768* = "X25519MLKEM768" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:175:9 + else: + let PTLS_GROUP_NAME_X25519MLKEM768* = "X25519MLKEM768" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:175:9 +else: + static : + hint("Declaration of " & "PTLS_GROUP_NAME_X25519MLKEM768" & + " already exists, not redeclaring") +when not declared(PTLS_SIGNATURE_RSA_PKCS1_SHA1): + when 513 is static: + const + PTLS_SIGNATURE_RSA_PKCS1_SHA1* = 513 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:178:9 + else: + let PTLS_SIGNATURE_RSA_PKCS1_SHA1* = 513 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:178:9 +else: + static : + hint("Declaration of " & "PTLS_SIGNATURE_RSA_PKCS1_SHA1" & + " already exists, not redeclaring") +when not declared(PTLS_SIGNATURE_RSA_PKCS1_SHA256): + when 1025 is static: + const + PTLS_SIGNATURE_RSA_PKCS1_SHA256* = 1025 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:179:9 + else: + let PTLS_SIGNATURE_RSA_PKCS1_SHA256* = 1025 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:179:9 +else: + static : + hint("Declaration of " & "PTLS_SIGNATURE_RSA_PKCS1_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_SIGNATURE_ECDSA_SECP256R1_SHA256): + when 1027 is static: + const + PTLS_SIGNATURE_ECDSA_SECP256R1_SHA256* = 1027 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:180:9 + else: + let PTLS_SIGNATURE_ECDSA_SECP256R1_SHA256* = 1027 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:180:9 +else: + static : + hint("Declaration of " & "PTLS_SIGNATURE_ECDSA_SECP256R1_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_SIGNATURE_ECDSA_SECP384R1_SHA384): + when 1283 is static: + const + PTLS_SIGNATURE_ECDSA_SECP384R1_SHA384* = 1283 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:181:9 + else: + let PTLS_SIGNATURE_ECDSA_SECP384R1_SHA384* = 1283 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:181:9 +else: + static : + hint("Declaration of " & "PTLS_SIGNATURE_ECDSA_SECP384R1_SHA384" & + " already exists, not redeclaring") +when not declared(PTLS_SIGNATURE_ECDSA_SECP521R1_SHA512): + when 1539 is static: + const + PTLS_SIGNATURE_ECDSA_SECP521R1_SHA512* = 1539 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:182:9 + else: + let PTLS_SIGNATURE_ECDSA_SECP521R1_SHA512* = 1539 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:182:9 +else: + static : + hint("Declaration of " & "PTLS_SIGNATURE_ECDSA_SECP521R1_SHA512" & + " already exists, not redeclaring") +when not declared(PTLS_SIGNATURE_RSA_PSS_RSAE_SHA256): + when 2052 is static: + const + PTLS_SIGNATURE_RSA_PSS_RSAE_SHA256* = 2052 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:183:9 + else: + let PTLS_SIGNATURE_RSA_PSS_RSAE_SHA256* = 2052 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:183:9 +else: + static : + hint("Declaration of " & "PTLS_SIGNATURE_RSA_PSS_RSAE_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_SIGNATURE_RSA_PSS_RSAE_SHA384): + when 2053 is static: + const + PTLS_SIGNATURE_RSA_PSS_RSAE_SHA384* = 2053 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:184:9 + else: + let PTLS_SIGNATURE_RSA_PSS_RSAE_SHA384* = 2053 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:184:9 +else: + static : + hint("Declaration of " & "PTLS_SIGNATURE_RSA_PSS_RSAE_SHA384" & + " already exists, not redeclaring") +when not declared(PTLS_SIGNATURE_RSA_PSS_RSAE_SHA512): + when 2054 is static: + const + PTLS_SIGNATURE_RSA_PSS_RSAE_SHA512* = 2054 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:185:9 + else: + let PTLS_SIGNATURE_RSA_PSS_RSAE_SHA512* = 2054 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:185:9 +else: + static : + hint("Declaration of " & "PTLS_SIGNATURE_RSA_PSS_RSAE_SHA512" & + " already exists, not redeclaring") +when not declared(PTLS_SIGNATURE_ED25519): + when 2055 is static: + const + PTLS_SIGNATURE_ED25519* = 2055 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:186:9 + else: + let PTLS_SIGNATURE_ED25519* = 2055 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:186:9 +else: + static : + hint("Declaration of " & "PTLS_SIGNATURE_ED25519" & + " already exists, not redeclaring") +when not declared(PTLS_HPKE_MODE_BASE): + when 0 is static: + const + PTLS_HPKE_MODE_BASE* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:189:9 + else: + let PTLS_HPKE_MODE_BASE* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:189:9 +else: + static : + hint("Declaration of " & "PTLS_HPKE_MODE_BASE" & + " already exists, not redeclaring") +when not declared(PTLS_HPKE_MODE_PSK): + when 1 is static: + const + PTLS_HPKE_MODE_PSK* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:190:9 + else: + let PTLS_HPKE_MODE_PSK* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:190:9 +else: + static : + hint("Declaration of " & "PTLS_HPKE_MODE_PSK" & + " already exists, not redeclaring") +when not declared(PTLS_HPKE_MODE_AUTH): + when 2 is static: + const + PTLS_HPKE_MODE_AUTH* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:191:9 + else: + let PTLS_HPKE_MODE_AUTH* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:191:9 +else: + static : + hint("Declaration of " & "PTLS_HPKE_MODE_AUTH" & + " already exists, not redeclaring") +when not declared(PTLS_HPKE_MODE_AUTH_PSK): + when 3 is static: + const + PTLS_HPKE_MODE_AUTH_PSK* = 3 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:192:9 + else: + let PTLS_HPKE_MODE_AUTH_PSK* = 3 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:192:9 +else: + static : + hint("Declaration of " & "PTLS_HPKE_MODE_AUTH_PSK" & + " already exists, not redeclaring") +when not declared(PTLS_HPKE_KEM_P256_SHA256): + when 16 is static: + const + PTLS_HPKE_KEM_P256_SHA256* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:193:9 + else: + let PTLS_HPKE_KEM_P256_SHA256* = 16 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:193:9 +else: + static : + hint("Declaration of " & "PTLS_HPKE_KEM_P256_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_HPKE_KEM_P384_SHA384): + when 17 is static: + const + PTLS_HPKE_KEM_P384_SHA384* = 17 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:194:9 + else: + let PTLS_HPKE_KEM_P384_SHA384* = 17 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:194:9 +else: + static : + hint("Declaration of " & "PTLS_HPKE_KEM_P384_SHA384" & + " already exists, not redeclaring") +when not declared(PTLS_HPKE_KEM_X25519_SHA256): + when 32 is static: + const + PTLS_HPKE_KEM_X25519_SHA256* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:195:9 + else: + let PTLS_HPKE_KEM_X25519_SHA256* = 32 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:195:9 +else: + static : + hint("Declaration of " & "PTLS_HPKE_KEM_X25519_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_HPKE_HKDF_SHA256): + when 1 is static: + const + PTLS_HPKE_HKDF_SHA256* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:196:9 + else: + let PTLS_HPKE_HKDF_SHA256* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:196:9 +else: + static : + hint("Declaration of " & "PTLS_HPKE_HKDF_SHA256" & + " already exists, not redeclaring") +when not declared(PTLS_HPKE_HKDF_SHA384): + when 2 is static: + const + PTLS_HPKE_HKDF_SHA384* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:197:9 + else: + let PTLS_HPKE_HKDF_SHA384* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:197:9 +else: + static : + hint("Declaration of " & "PTLS_HPKE_HKDF_SHA384" & + " already exists, not redeclaring") +when not declared(PTLS_HPKE_HKDF_SHA512): + when 3 is static: + const + PTLS_HPKE_HKDF_SHA512* = 3 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:198:9 + else: + let PTLS_HPKE_HKDF_SHA512* = 3 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:198:9 +else: + static : + hint("Declaration of " & "PTLS_HPKE_HKDF_SHA512" & + " already exists, not redeclaring") +when not declared(PTLS_HPKE_AEAD_AES_128_GCM): + when 1 is static: + const + PTLS_HPKE_AEAD_AES_128_GCM* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:199:9 + else: + let PTLS_HPKE_AEAD_AES_128_GCM* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:199:9 +else: + static : + hint("Declaration of " & "PTLS_HPKE_AEAD_AES_128_GCM" & + " already exists, not redeclaring") +when not declared(PTLS_HPKE_AEAD_AES_256_GCM): + when 2 is static: + const + PTLS_HPKE_AEAD_AES_256_GCM* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:200:9 + else: + let PTLS_HPKE_AEAD_AES_256_GCM* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:200:9 +else: + static : + hint("Declaration of " & "PTLS_HPKE_AEAD_AES_256_GCM" & + " already exists, not redeclaring") +when not declared(PTLS_HPKE_AEAD_CHACHA20POLY1305): + when 3 is static: + const + PTLS_HPKE_AEAD_CHACHA20POLY1305* = 3 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:201:9 + else: + let PTLS_HPKE_AEAD_CHACHA20POLY1305* = 3 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:201:9 +else: + static : + hint("Declaration of " & "PTLS_HPKE_AEAD_CHACHA20POLY1305" & + " already exists, not redeclaring") +when not declared(PTLS_ERROR_CLASS_SELF_ALERT): + when 0 is static: + const + PTLS_ERROR_CLASS_SELF_ALERT* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:204:9 + else: + let PTLS_ERROR_CLASS_SELF_ALERT* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:204:9 +else: + static : + hint("Declaration of " & "PTLS_ERROR_CLASS_SELF_ALERT" & + " already exists, not redeclaring") +when not declared(PTLS_ERROR_CLASS_PEER_ALERT): + when 256 is static: + const + PTLS_ERROR_CLASS_PEER_ALERT* = 256 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:205:9 + else: + let PTLS_ERROR_CLASS_PEER_ALERT* = 256 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:205:9 +else: + static : + hint("Declaration of " & "PTLS_ERROR_CLASS_PEER_ALERT" & + " already exists, not redeclaring") +when not declared(PTLS_ERROR_CLASS_INTERNAL): + when 512 is static: + const + PTLS_ERROR_CLASS_INTERNAL* = 512 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:206:9 + else: + let PTLS_ERROR_CLASS_INTERNAL* = 512 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:206:9 +else: + static : + hint("Declaration of " & "PTLS_ERROR_CLASS_INTERNAL" & + " already exists, not redeclaring") +when not declared(PTLS_HKDF_EXPAND_LABEL_PREFIX): + when "tls13 " is static: + const + PTLS_HKDF_EXPAND_LABEL_PREFIX* = "tls13 " ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:214:9 + else: + let PTLS_HKDF_EXPAND_LABEL_PREFIX* = "tls13 " ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:214:9 +else: + static : + hint("Declaration of " & "PTLS_HKDF_EXPAND_LABEL_PREFIX" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_LEVEL_WARNING): + when 1 is static: + const + PTLS_ALERT_LEVEL_WARNING* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:217:9 + else: + let PTLS_ALERT_LEVEL_WARNING* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:217:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_LEVEL_WARNING" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_LEVEL_FATAL): + when 2 is static: + const + PTLS_ALERT_LEVEL_FATAL* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:218:9 + else: + let PTLS_ALERT_LEVEL_FATAL* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:218:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_LEVEL_FATAL" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_CLOSE_NOTIFY): + when 0 is static: + const + PTLS_ALERT_CLOSE_NOTIFY* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:220:9 + else: + let PTLS_ALERT_CLOSE_NOTIFY* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:220:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_CLOSE_NOTIFY" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_UNEXPECTED_MESSAGE): + when 10 is static: + const + PTLS_ALERT_UNEXPECTED_MESSAGE* = 10 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:221:9 + else: + let PTLS_ALERT_UNEXPECTED_MESSAGE* = 10 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:221:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_UNEXPECTED_MESSAGE" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_BAD_RECORD_MAC): + when 20 is static: + const + PTLS_ALERT_BAD_RECORD_MAC* = 20 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:222:9 + else: + let PTLS_ALERT_BAD_RECORD_MAC* = 20 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:222:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_BAD_RECORD_MAC" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_HANDSHAKE_FAILURE): + when 40 is static: + const + PTLS_ALERT_HANDSHAKE_FAILURE* = 40 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:223:9 + else: + let PTLS_ALERT_HANDSHAKE_FAILURE* = 40 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:223:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_HANDSHAKE_FAILURE" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_BAD_CERTIFICATE): + when 42 is static: + const + PTLS_ALERT_BAD_CERTIFICATE* = 42 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:224:9 + else: + let PTLS_ALERT_BAD_CERTIFICATE* = 42 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:224:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_BAD_CERTIFICATE" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_UNSUPPORTED_CERTIFICATE): + when 43 is static: + const + PTLS_ALERT_UNSUPPORTED_CERTIFICATE* = 43 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:225:9 + else: + let PTLS_ALERT_UNSUPPORTED_CERTIFICATE* = 43 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:225:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_UNSUPPORTED_CERTIFICATE" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_CERTIFICATE_REVOKED): + when 44 is static: + const + PTLS_ALERT_CERTIFICATE_REVOKED* = 44 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:226:9 + else: + let PTLS_ALERT_CERTIFICATE_REVOKED* = 44 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:226:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_CERTIFICATE_REVOKED" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_CERTIFICATE_EXPIRED): + when 45 is static: + const + PTLS_ALERT_CERTIFICATE_EXPIRED* = 45 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:227:9 + else: + let PTLS_ALERT_CERTIFICATE_EXPIRED* = 45 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:227:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_CERTIFICATE_EXPIRED" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_CERTIFICATE_UNKNOWN): + when 46 is static: + const + PTLS_ALERT_CERTIFICATE_UNKNOWN* = 46 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:228:9 + else: + let PTLS_ALERT_CERTIFICATE_UNKNOWN* = 46 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:228:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_CERTIFICATE_UNKNOWN" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_ILLEGAL_PARAMETER): + when 47 is static: + const + PTLS_ALERT_ILLEGAL_PARAMETER* = 47 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:229:9 + else: + let PTLS_ALERT_ILLEGAL_PARAMETER* = 47 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:229:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_ILLEGAL_PARAMETER" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_UNKNOWN_CA): + when 48 is static: + const + PTLS_ALERT_UNKNOWN_CA* = 48 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:230:9 + else: + let PTLS_ALERT_UNKNOWN_CA* = 48 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:230:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_UNKNOWN_CA" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_ACCESS_DENIED): + when 49 is static: + const + PTLS_ALERT_ACCESS_DENIED* = 49 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:231:9 + else: + let PTLS_ALERT_ACCESS_DENIED* = 49 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:231:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_ACCESS_DENIED" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_DECODE_ERROR): + when 50 is static: + const + PTLS_ALERT_DECODE_ERROR* = 50 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:232:9 + else: + let PTLS_ALERT_DECODE_ERROR* = 50 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:232:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_DECODE_ERROR" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_DECRYPT_ERROR): + when 51 is static: + const + PTLS_ALERT_DECRYPT_ERROR* = 51 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:233:9 + else: + let PTLS_ALERT_DECRYPT_ERROR* = 51 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:233:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_DECRYPT_ERROR" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_PROTOCOL_VERSION): + when 70 is static: + const + PTLS_ALERT_PROTOCOL_VERSION* = 70 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:234:9 + else: + let PTLS_ALERT_PROTOCOL_VERSION* = 70 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:234:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_PROTOCOL_VERSION" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_INTERNAL_ERROR): + when 80 is static: + const + PTLS_ALERT_INTERNAL_ERROR* = 80 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:235:9 + else: + let PTLS_ALERT_INTERNAL_ERROR* = 80 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:235:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_INTERNAL_ERROR" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_USER_CANCELED): + when 90 is static: + const + PTLS_ALERT_USER_CANCELED* = 90 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:236:9 + else: + let PTLS_ALERT_USER_CANCELED* = 90 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:236:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_USER_CANCELED" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_MISSING_EXTENSION): + when 109 is static: + const + PTLS_ALERT_MISSING_EXTENSION* = 109 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:237:9 + else: + let PTLS_ALERT_MISSING_EXTENSION* = 109 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:237:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_MISSING_EXTENSION" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_UNSUPPORTED_EXTENSION): + when 110 is static: + const + PTLS_ALERT_UNSUPPORTED_EXTENSION* = 110 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:238:9 + else: + let PTLS_ALERT_UNSUPPORTED_EXTENSION* = 110 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:238:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_UNSUPPORTED_EXTENSION" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_UNRECOGNIZED_NAME): + when 112 is static: + const + PTLS_ALERT_UNRECOGNIZED_NAME* = 112 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:239:9 + else: + let PTLS_ALERT_UNRECOGNIZED_NAME* = 112 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:239:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_UNRECOGNIZED_NAME" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_UNKNOWN_PSK_IDENTITY): + when 115 is static: + const + PTLS_ALERT_UNKNOWN_PSK_IDENTITY* = 115 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:240:9 + else: + let PTLS_ALERT_UNKNOWN_PSK_IDENTITY* = 115 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:240:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_UNKNOWN_PSK_IDENTITY" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_CERTIFICATE_REQUIRED): + when 116 is static: + const + PTLS_ALERT_CERTIFICATE_REQUIRED* = 116 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:241:9 + else: + let PTLS_ALERT_CERTIFICATE_REQUIRED* = 116 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:241:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_CERTIFICATE_REQUIRED" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_NO_APPLICATION_PROTOCOL): + when 120 is static: + const + PTLS_ALERT_NO_APPLICATION_PROTOCOL* = 120 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:242:9 + else: + let PTLS_ALERT_NO_APPLICATION_PROTOCOL* = 120 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:242:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_NO_APPLICATION_PROTOCOL" & + " already exists, not redeclaring") +when not declared(PTLS_ALERT_ECH_REQUIRED): + when 121 is static: + const + PTLS_ALERT_ECH_REQUIRED* = 121 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:243:9 + else: + let PTLS_ALERT_ECH_REQUIRED* = 121 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:243:9 +else: + static : + hint("Declaration of " & "PTLS_ALERT_ECH_REQUIRED" & + " already exists, not redeclaring") +when not declared(PTLS_TLS12_MASTER_SECRET_SIZE): + when 48 is static: + const + PTLS_TLS12_MASTER_SECRET_SIZE* = 48 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:246:9 + else: + let PTLS_TLS12_MASTER_SECRET_SIZE* = 48 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:246:9 +else: + static : + hint("Declaration of " & "PTLS_TLS12_MASTER_SECRET_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_TLS12_AAD_SIZE): + when 13 is static: + const + PTLS_TLS12_AAD_SIZE* = 13 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:247:9 + else: + let PTLS_TLS12_AAD_SIZE* = 13 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:247:9 +else: + static : + hint("Declaration of " & "PTLS_TLS12_AAD_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_TLS12_AESGCM_FIXED_IV_SIZE): + when 4 is static: + const + PTLS_TLS12_AESGCM_FIXED_IV_SIZE* = 4 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:248:9 + else: + let PTLS_TLS12_AESGCM_FIXED_IV_SIZE* = 4 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:248:9 +else: + static : + hint("Declaration of " & "PTLS_TLS12_AESGCM_FIXED_IV_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_TLS12_AESGCM_RECORD_IV_SIZE): + when 8 is static: + const + PTLS_TLS12_AESGCM_RECORD_IV_SIZE* = 8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:249:9 + else: + let PTLS_TLS12_AESGCM_RECORD_IV_SIZE* = 8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:249:9 +else: + static : + hint("Declaration of " & "PTLS_TLS12_AESGCM_RECORD_IV_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_TLS12_CHACHAPOLY_FIXED_IV_SIZE): + when 12 is static: + const + PTLS_TLS12_CHACHAPOLY_FIXED_IV_SIZE* = 12 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:250:9 + else: + let PTLS_TLS12_CHACHAPOLY_FIXED_IV_SIZE* = 12 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:250:9 +else: + static : + hint("Declaration of " & "PTLS_TLS12_CHACHAPOLY_FIXED_IV_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_TLS12_CHACHAPOLY_RECORD_IV_SIZE): + when 0 is static: + const + PTLS_TLS12_CHACHAPOLY_RECORD_IV_SIZE* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:251:9 + else: + let PTLS_TLS12_CHACHAPOLY_RECORD_IV_SIZE* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:251:9 +else: + static : + hint("Declaration of " & "PTLS_TLS12_CHACHAPOLY_RECORD_IV_SIZE" & + " already exists, not redeclaring") +when not declared(PTLS_HANDSHAKE_TYPE_CLIENT_HELLO): + when 1 is static: + const + PTLS_HANDSHAKE_TYPE_CLIENT_HELLO* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:283:9 + else: + let PTLS_HANDSHAKE_TYPE_CLIENT_HELLO* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:283:9 +else: + static : + hint("Declaration of " & "PTLS_HANDSHAKE_TYPE_CLIENT_HELLO" & + " already exists, not redeclaring") +when not declared(PTLS_HANDSHAKE_TYPE_SERVER_HELLO): + when 2 is static: + const + PTLS_HANDSHAKE_TYPE_SERVER_HELLO* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:284:9 + else: + let PTLS_HANDSHAKE_TYPE_SERVER_HELLO* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:284:9 +else: + static : + hint("Declaration of " & "PTLS_HANDSHAKE_TYPE_SERVER_HELLO" & + " already exists, not redeclaring") +when not declared(PTLS_HANDSHAKE_TYPE_NEW_SESSION_TICKET): + when 4 is static: + const + PTLS_HANDSHAKE_TYPE_NEW_SESSION_TICKET* = 4 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:285:9 + else: + let PTLS_HANDSHAKE_TYPE_NEW_SESSION_TICKET* = 4 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:285:9 +else: + static : + hint("Declaration of " & "PTLS_HANDSHAKE_TYPE_NEW_SESSION_TICKET" & + " already exists, not redeclaring") +when not declared(PTLS_HANDSHAKE_TYPE_END_OF_EARLY_DATA): + when 5 is static: + const + PTLS_HANDSHAKE_TYPE_END_OF_EARLY_DATA* = 5 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:286:9 + else: + let PTLS_HANDSHAKE_TYPE_END_OF_EARLY_DATA* = 5 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:286:9 +else: + static : + hint("Declaration of " & "PTLS_HANDSHAKE_TYPE_END_OF_EARLY_DATA" & + " already exists, not redeclaring") +when not declared(PTLS_HANDSHAKE_TYPE_ENCRYPTED_EXTENSIONS): + when 8 is static: + const + PTLS_HANDSHAKE_TYPE_ENCRYPTED_EXTENSIONS* = 8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:287:9 + else: + let PTLS_HANDSHAKE_TYPE_ENCRYPTED_EXTENSIONS* = 8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:287:9 +else: + static : + hint("Declaration of " & "PTLS_HANDSHAKE_TYPE_ENCRYPTED_EXTENSIONS" & + " already exists, not redeclaring") +when not declared(PTLS_HANDSHAKE_TYPE_CERTIFICATE): + when 11 is static: + const + PTLS_HANDSHAKE_TYPE_CERTIFICATE* = 11 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:288:9 + else: + let PTLS_HANDSHAKE_TYPE_CERTIFICATE* = 11 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:288:9 +else: + static : + hint("Declaration of " & "PTLS_HANDSHAKE_TYPE_CERTIFICATE" & + " already exists, not redeclaring") +when not declared(PTLS_HANDSHAKE_TYPE_CERTIFICATE_REQUEST): + when 13 is static: + const + PTLS_HANDSHAKE_TYPE_CERTIFICATE_REQUEST* = 13 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:289:9 + else: + let PTLS_HANDSHAKE_TYPE_CERTIFICATE_REQUEST* = 13 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:289:9 +else: + static : + hint("Declaration of " & "PTLS_HANDSHAKE_TYPE_CERTIFICATE_REQUEST" & + " already exists, not redeclaring") +when not declared(PTLS_HANDSHAKE_TYPE_CERTIFICATE_VERIFY): + when 15 is static: + const + PTLS_HANDSHAKE_TYPE_CERTIFICATE_VERIFY* = 15 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:290:9 + else: + let PTLS_HANDSHAKE_TYPE_CERTIFICATE_VERIFY* = 15 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:290:9 +else: + static : + hint("Declaration of " & "PTLS_HANDSHAKE_TYPE_CERTIFICATE_VERIFY" & + " already exists, not redeclaring") +when not declared(PTLS_HANDSHAKE_TYPE_FINISHED): + when 20 is static: + const + PTLS_HANDSHAKE_TYPE_FINISHED* = 20 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:291:9 + else: + let PTLS_HANDSHAKE_TYPE_FINISHED* = 20 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:291:9 +else: + static : + hint("Declaration of " & "PTLS_HANDSHAKE_TYPE_FINISHED" & + " already exists, not redeclaring") +when not declared(PTLS_HANDSHAKE_TYPE_KEY_UPDATE): + when 24 is static: + const + PTLS_HANDSHAKE_TYPE_KEY_UPDATE* = 24 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:292:9 + else: + let PTLS_HANDSHAKE_TYPE_KEY_UPDATE* = 24 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:292:9 +else: + static : + hint("Declaration of " & "PTLS_HANDSHAKE_TYPE_KEY_UPDATE" & + " already exists, not redeclaring") +when not declared(PTLS_HANDSHAKE_TYPE_COMPRESSED_CERTIFICATE): + when 25 is static: + const + PTLS_HANDSHAKE_TYPE_COMPRESSED_CERTIFICATE* = 25 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:293:9 + else: + let PTLS_HANDSHAKE_TYPE_COMPRESSED_CERTIFICATE* = 25 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:293:9 +else: + static : + hint("Declaration of " & "PTLS_HANDSHAKE_TYPE_COMPRESSED_CERTIFICATE" & + " already exists, not redeclaring") +when not declared(PTLS_HANDSHAKE_TYPE_MESSAGE_HASH): + when 254 is static: + const + PTLS_HANDSHAKE_TYPE_MESSAGE_HASH* = 254 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:294:9 + else: + let PTLS_HANDSHAKE_TYPE_MESSAGE_HASH* = 254 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:294:9 +else: + static : + hint("Declaration of " & "PTLS_HANDSHAKE_TYPE_MESSAGE_HASH" & + " already exists, not redeclaring") +when not declared(PTLS_HANDSHAKE_TYPE_PSEUDO_HRR): + when -1 is static: + const + PTLS_HANDSHAKE_TYPE_PSEUDO_HRR* = -1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:295:9 + else: + let PTLS_HANDSHAKE_TYPE_PSEUDO_HRR* = -1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:295:9 +else: + static : + hint("Declaration of " & "PTLS_HANDSHAKE_TYPE_PSEUDO_HRR" & + " already exists, not redeclaring") +when not declared(PTLS_CERTIFICATE_TYPE_X509): + when 0 is static: + const + PTLS_CERTIFICATE_TYPE_X509* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:297:9 + else: + let PTLS_CERTIFICATE_TYPE_X509* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:297:9 +else: + static : + hint("Declaration of " & "PTLS_CERTIFICATE_TYPE_X509" & + " already exists, not redeclaring") +when not declared(PTLS_CERTIFICATE_TYPE_RAW_PUBLIC_KEY): + when 2 is static: + const + PTLS_CERTIFICATE_TYPE_RAW_PUBLIC_KEY* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:298:9 + else: + let PTLS_CERTIFICATE_TYPE_RAW_PUBLIC_KEY* = 2 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:298:9 +else: + static : + hint("Declaration of " & "PTLS_CERTIFICATE_TYPE_RAW_PUBLIC_KEY" & + " already exists, not redeclaring") +when not declared(PTLS_DEFAULT_MAX_TICKETS_TO_SERVE): + when 4 is static: + const + PTLS_DEFAULT_MAX_TICKETS_TO_SERVE* = 4 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:321:9 + else: + let PTLS_DEFAULT_MAX_TICKETS_TO_SERVE* = 4 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:321:9 +else: + static : + hint("Declaration of " & "PTLS_DEFAULT_MAX_TICKETS_TO_SERVE" & + " already exists, not redeclaring") +when not declared(PTLS_ENCODE_QUICINT_CAPACITY): + when 8 is static: + const + PTLS_ENCODE_QUICINT_CAPACITY* = 8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1219:9 + else: + let PTLS_ENCODE_QUICINT_CAPACITY* = 8 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1219:9 +else: + static : + hint("Declaration of " & "PTLS_ENCODE_QUICINT_CAPACITY" & + " already exists, not redeclaring") +when not declared(PTLS_QUICINT_MAX): + when 4611686018427387903 is static: + const + PTLS_QUICINT_MAX* = 4611686018427387903'i64 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1221:9 + else: + let PTLS_QUICINT_MAX* = 4611686018427387903'i64 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1221:9 +else: + static : + hint("Declaration of " & "PTLS_QUICINT_MAX" & + " already exists, not redeclaring") +when not declared(PTLS_QUICINT_LONGEST_STR): + when "4611686018427387903" is static: + const + PTLS_QUICINT_LONGEST_STR* = "4611686018427387903" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1222:9 + else: + let PTLS_QUICINT_LONGEST_STR* = "4611686018427387903" ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls.h:1222:9 +else: + static : + hint("Declaration of " & "PTLS_QUICINT_LONGEST_STR" & + " already exists, not redeclaring") +when not declared(PTLS_OPENSSL_HAVE_CHACHA20_POLY1305): + when 1 is static: + const + PTLS_OPENSSL_HAVE_CHACHA20_POLY1305* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:37:9 + else: + let PTLS_OPENSSL_HAVE_CHACHA20_POLY1305* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:37:9 +else: + static : + hint("Declaration of " & "PTLS_OPENSSL_HAVE_CHACHA20_POLY1305" & + " already exists, not redeclaring") +when not declared(PTLS_OPENSSL_HAVE_ASYNC): + when 1 is static: + const + PTLS_OPENSSL_HAVE_ASYNC* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:44:9 + else: + let PTLS_OPENSSL_HAVE_ASYNC* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:44:9 +else: + static : + hint("Declaration of " & "PTLS_OPENSSL_HAVE_ASYNC" & + " already exists, not redeclaring") +when not declared(PTLS_OPENSSL_HAVE_SECP384R1): + when 1 is static: + const + PTLS_OPENSSL_HAVE_SECP384R1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:51:9 + else: + let PTLS_OPENSSL_HAVE_SECP384R1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:51:9 +else: + static : + hint("Declaration of " & "PTLS_OPENSSL_HAVE_SECP384R1" & + " already exists, not redeclaring") +when not declared(PTLS_OPENSSL_HAS_SECP384R1): + when 1 is static: + const + PTLS_OPENSSL_HAS_SECP384R1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:52:9 + else: + let PTLS_OPENSSL_HAS_SECP384R1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:52:9 +else: + static : + hint("Declaration of " & "PTLS_OPENSSL_HAS_SECP384R1" & + " already exists, not redeclaring") +when not declared(PTLS_OPENSSL_HAVE_SECP521R1): + when 1 is static: + const + PTLS_OPENSSL_HAVE_SECP521R1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:56:9 + else: + let PTLS_OPENSSL_HAVE_SECP521R1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:56:9 +else: + static : + hint("Declaration of " & "PTLS_OPENSSL_HAVE_SECP521R1" & + " already exists, not redeclaring") +when not declared(PTLS_OPENSSL_HAS_SECP521R1): + when 1 is static: + const + PTLS_OPENSSL_HAS_SECP521R1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:57:9 + else: + let PTLS_OPENSSL_HAS_SECP521R1* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:57:9 +else: + static : + hint("Declaration of " & "PTLS_OPENSSL_HAS_SECP521R1" & + " already exists, not redeclaring") +when not declared(PTLS_OPENSSL_HAVE_ED25519): + when 1 is static: + const + PTLS_OPENSSL_HAVE_ED25519* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:61:9 + else: + let PTLS_OPENSSL_HAVE_ED25519* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:61:9 +else: + static : + hint("Declaration of " & "PTLS_OPENSSL_HAVE_ED25519" & + " already exists, not redeclaring") +when not declared(PTLS_OPENSSL_HAVE_X25519): + when 1 is static: + const + PTLS_OPENSSL_HAVE_X25519* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:64:9 + else: + let PTLS_OPENSSL_HAVE_X25519* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:64:9 +else: + static : + hint("Declaration of " & "PTLS_OPENSSL_HAVE_X25519" & + " already exists, not redeclaring") +when not declared(PTLS_OPENSSL_HAS_X25519): + when 1 is static: + const + PTLS_OPENSSL_HAS_X25519* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:65:9 + else: + let PTLS_OPENSSL_HAS_X25519* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:65:9 +else: + static : + hint("Declaration of " & "PTLS_OPENSSL_HAS_X25519" & + " already exists, not redeclaring") +when not declared(PTLS_OPENSSL_HAVE_X25519MLKEM768): + when 0 is static: + const + PTLS_OPENSSL_HAVE_X25519MLKEM768* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:75:9 + else: + let PTLS_OPENSSL_HAVE_X25519MLKEM768* = 0 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:75:9 +else: + static : + hint("Declaration of " & "PTLS_OPENSSL_HAVE_X25519MLKEM768" & + " already exists, not redeclaring") +when not declared(PTLS_OPENSSL_HAVE_BF): + when 1 is static: + const + PTLS_OPENSSL_HAVE_BF* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:80:9 + else: + let PTLS_OPENSSL_HAVE_BF* = 1 ## Generated based on /home/r/vacp2p/nim-ngtcp2/libs/picotls/include/picotls/openssl.h:80:9 +else: + static : + hint("Declaration of " & "PTLS_OPENSSL_HAVE_BF" & + " already exists, not redeclaring") +when not declared(ngtcp2_cid_init): + proc ngtcp2_cid_init*(cid: ptr ngtcp2_cid_536871405; data: ptr uint8; + datalen: csize_t): void {.cdecl, + importc: "ngtcp2_cid_init".} +else: + static : + hint("Declaration of " & "ngtcp2_cid_init" & + " already exists, not redeclaring") +when not declared(ngtcp2_cid_eq): + proc ngtcp2_cid_eq*(a: ptr ngtcp2_cid_536871405; b: ptr ngtcp2_cid_536871405): cint {. + cdecl, importc: "ngtcp2_cid_eq".} +else: + static : + hint("Declaration of " & "ngtcp2_cid_eq" & + " already exists, not redeclaring") +when not declared(ngtcp2_transport_params_encode_versioned): + proc ngtcp2_transport_params_encode_versioned*(dest: ptr uint8; + destlen: csize_t; transport_params_version: cint; + params: ptr ngtcp2_transport_params_536871449): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_transport_params_encode_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_transport_params_encode_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_transport_params_decode_versioned): + proc ngtcp2_transport_params_decode_versioned*(transport_params_version: cint; + params: ptr ngtcp2_transport_params_536871449; data: ptr uint8; + datalen: csize_t): cint {.cdecl, importc: "ngtcp2_transport_params_decode_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_transport_params_decode_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_transport_params_decode_new): + proc ngtcp2_transport_params_decode_new*( + pparams: ptr ptr ngtcp2_transport_params_536871449; data: ptr uint8; + datalen: csize_t; mem: ptr ngtcp2_mem_536871385): cint {.cdecl, + importc: "ngtcp2_transport_params_decode_new".} +else: + static : + hint("Declaration of " & "ngtcp2_transport_params_decode_new" & + " already exists, not redeclaring") +when not declared(ngtcp2_transport_params_del): + proc ngtcp2_transport_params_del*(params: ptr ngtcp2_transport_params_536871449; + mem: ptr ngtcp2_mem_536871385): void {. + cdecl, importc: "ngtcp2_transport_params_del".} +else: + static : + hint("Declaration of " & "ngtcp2_transport_params_del" & + " already exists, not redeclaring") +when not declared(ngtcp2_pkt_decode_version_cid): + proc ngtcp2_pkt_decode_version_cid*(dest: ptr ngtcp2_version_cid_536871520; + data: ptr uint8; datalen: csize_t; + short_dcidlen: csize_t): cint {.cdecl, + importc: "ngtcp2_pkt_decode_version_cid".} +else: + static : + hint("Declaration of " & "ngtcp2_pkt_decode_version_cid" & + " already exists, not redeclaring") +when not declared(ngtcp2_pkt_decode_hd_long): + proc ngtcp2_pkt_decode_hd_long*(dest: ptr ngtcp2_pkt_hd_536871413; + pkt: ptr uint8; pktlen: csize_t): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_pkt_decode_hd_long".} +else: + static : + hint("Declaration of " & "ngtcp2_pkt_decode_hd_long" & + " already exists, not redeclaring") +when not declared(ngtcp2_pkt_decode_hd_short): + proc ngtcp2_pkt_decode_hd_short*(dest: ptr ngtcp2_pkt_hd_536871413; + pkt: ptr uint8; pktlen: csize_t; + dcidlen: csize_t): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_pkt_decode_hd_short".} +else: + static : + hint("Declaration of " & "ngtcp2_pkt_decode_hd_short" & + " already exists, not redeclaring") +when not declared(ngtcp2_pkt_write_stateless_reset): + proc ngtcp2_pkt_write_stateless_reset*(dest: ptr uint8; destlen: csize_t; + stateless_reset_token: ptr uint8; rand: ptr uint8; randlen: csize_t): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_pkt_write_stateless_reset".} +else: + static : + hint("Declaration of " & "ngtcp2_pkt_write_stateless_reset" & + " already exists, not redeclaring") +when not declared(ngtcp2_pkt_write_version_negotiation): + proc ngtcp2_pkt_write_version_negotiation*(dest: ptr uint8; destlen: csize_t; + unused_random: uint8; dcid: ptr uint8; dcidlen: csize_t; scid: ptr uint8; + scidlen: csize_t; sv: ptr uint32; nsv: csize_t): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_pkt_write_version_negotiation".} +else: + static : + hint("Declaration of " & "ngtcp2_pkt_write_version_negotiation" & + " already exists, not redeclaring") +when not declared(ngtcp2_pkt_write_connection_close): + proc ngtcp2_pkt_write_connection_close*(dest: ptr uint8; destlen: csize_t; + version: uint32; dcid: ptr ngtcp2_cid_536871405; scid: ptr ngtcp2_cid_536871405; + error_code: uint64; reason: ptr uint8; reasonlen: csize_t; + encrypt: ngtcp2_encrypt_536871542; aead: ptr ngtcp2_crypto_aead_536871500; + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; iv: ptr uint8; + hp_mask: ngtcp2_hp_mask_536871546; hp: ptr ngtcp2_crypto_cipher_536871504; + hp_ctx: ptr ngtcp2_crypto_cipher_ctx_536871512): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_pkt_write_connection_close".} +else: + static : + hint("Declaration of " & "ngtcp2_pkt_write_connection_close" & + " already exists, not redeclaring") +when not declared(ngtcp2_pkt_write_retry): + proc ngtcp2_pkt_write_retry*(dest: ptr uint8; destlen: csize_t; + version: uint32; dcid: ptr ngtcp2_cid_536871405; + scid: ptr ngtcp2_cid_536871405; + odcid: ptr ngtcp2_cid_536871405; + token: ptr uint8; tokenlen: csize_t; + encrypt: ngtcp2_encrypt_536871542; + aead: ptr ngtcp2_crypto_aead_536871500; + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_pkt_write_retry".} +else: + static : + hint("Declaration of " & "ngtcp2_pkt_write_retry" & + " already exists, not redeclaring") +when not declared(ngtcp2_accept): + proc ngtcp2_accept*(dest: ptr ngtcp2_pkt_hd_536871413; pkt: ptr uint8; + pktlen: csize_t): cint {.cdecl, importc: "ngtcp2_accept".} +else: + static : + hint("Declaration of " & "ngtcp2_accept" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_client_new_versioned): + proc ngtcp2_conn_client_new_versioned*(pconn: ptr ptr ngtcp2_conn_536871522; + dcid: ptr ngtcp2_cid_536871405; scid: ptr ngtcp2_cid_536871405; + path: ptr ngtcp2_path_536871488; client_chosen_version: uint32; + callbacks_version: cint; callbacks: ptr ngtcp2_callbacks_536871606; + settings_version: cint; settings: ptr ngtcp2_settings_536871480; + transport_params_version: cint; params: ptr ngtcp2_transport_params_536871449; + mem: ptr ngtcp2_mem_536871385; user_data: pointer): cint {.cdecl, + importc: "ngtcp2_conn_client_new_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_client_new_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_server_new_versioned): + proc ngtcp2_conn_server_new_versioned*(pconn: ptr ptr ngtcp2_conn_536871522; + dcid: ptr ngtcp2_cid_536871405; scid: ptr ngtcp2_cid_536871405; + path: ptr ngtcp2_path_536871488; client_chosen_version: uint32; + callbacks_version: cint; callbacks: ptr ngtcp2_callbacks_536871606; + settings_version: cint; settings: ptr ngtcp2_settings_536871480; + transport_params_version: cint; params: ptr ngtcp2_transport_params_536871449; + mem: ptr ngtcp2_mem_536871385; user_data: pointer): cint {.cdecl, + importc: "ngtcp2_conn_server_new_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_server_new_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_del): + proc ngtcp2_conn_del*(conn: ptr ngtcp2_conn_536871522): void {.cdecl, + importc: "ngtcp2_conn_del".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_del" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_read_pkt_versioned): + proc ngtcp2_conn_read_pkt_versioned*(conn: ptr ngtcp2_conn_536871522; + path: ptr ngtcp2_path_536871488; + pkt_info_version: cint; + pi: ptr ngtcp2_pkt_info_536871389; + pkt: ptr uint8; pktlen: csize_t; + ts: ngtcp2_tstamp_536871399): cint {. + cdecl, importc: "ngtcp2_conn_read_pkt_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_read_pkt_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_write_pkt_versioned): + proc ngtcp2_conn_write_pkt_versioned*(conn: ptr ngtcp2_conn_536871522; + path: ptr ngtcp2_path_536871488; + pkt_info_version: cint; + pi: ptr ngtcp2_pkt_info_536871389; + dest: ptr uint8; destlen: csize_t; + ts: ngtcp2_tstamp_536871399): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_conn_write_pkt_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_write_pkt_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_tls_handshake_completed): + proc ngtcp2_conn_tls_handshake_completed*(conn: ptr ngtcp2_conn_536871522): void {. + cdecl, importc: "ngtcp2_conn_tls_handshake_completed".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_tls_handshake_completed" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_handshake_completed): + proc ngtcp2_conn_get_handshake_completed*(conn: ptr ngtcp2_conn_536871522): cint {. + cdecl, importc: "ngtcp2_conn_get_handshake_completed".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_handshake_completed" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_install_initial_key): + proc ngtcp2_conn_install_initial_key*(conn: ptr ngtcp2_conn_536871522; + rx_aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; rx_iv: ptr uint8; + rx_hp_ctx: ptr ngtcp2_crypto_cipher_ctx_536871512; tx_aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + tx_iv: ptr uint8; tx_hp_ctx: ptr ngtcp2_crypto_cipher_ctx_536871512; + ivlen: csize_t): cint {.cdecl, + importc: "ngtcp2_conn_install_initial_key".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_install_initial_key" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_install_vneg_initial_key): + proc ngtcp2_conn_install_vneg_initial_key*(conn: ptr ngtcp2_conn_536871522; + version: uint32; rx_aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + rx_iv: ptr uint8; rx_hp_ctx: ptr ngtcp2_crypto_cipher_ctx_536871512; + tx_aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; tx_iv: ptr uint8; + tx_hp_ctx: ptr ngtcp2_crypto_cipher_ctx_536871512; ivlen: csize_t): cint {. + cdecl, importc: "ngtcp2_conn_install_vneg_initial_key".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_install_vneg_initial_key" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_install_rx_handshake_key): + proc ngtcp2_conn_install_rx_handshake_key*(conn: ptr ngtcp2_conn_536871522; + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; iv: ptr uint8; + ivlen: csize_t; hp_ctx: ptr ngtcp2_crypto_cipher_ctx_536871512): cint {. + cdecl, importc: "ngtcp2_conn_install_rx_handshake_key".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_install_rx_handshake_key" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_install_tx_handshake_key): + proc ngtcp2_conn_install_tx_handshake_key*(conn: ptr ngtcp2_conn_536871522; + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; iv: ptr uint8; + ivlen: csize_t; hp_ctx: ptr ngtcp2_crypto_cipher_ctx_536871512): cint {. + cdecl, importc: "ngtcp2_conn_install_tx_handshake_key".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_install_tx_handshake_key" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_install_0rtt_key): + proc ngtcp2_conn_install_0rtt_key*(conn: ptr ngtcp2_conn_536871522; + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + iv: ptr uint8; ivlen: csize_t; + hp_ctx: ptr ngtcp2_crypto_cipher_ctx_536871512): cint {. + cdecl, importc: "ngtcp2_conn_install_0rtt_key".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_install_0rtt_key" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_install_rx_key): + proc ngtcp2_conn_install_rx_key*(conn: ptr ngtcp2_conn_536871522; + secret: ptr uint8; secretlen: csize_t; + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + iv: ptr uint8; ivlen: csize_t; + hp_ctx: ptr ngtcp2_crypto_cipher_ctx_536871512): cint {. + cdecl, importc: "ngtcp2_conn_install_rx_key".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_install_rx_key" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_install_tx_key): + proc ngtcp2_conn_install_tx_key*(conn: ptr ngtcp2_conn_536871522; + secret: ptr uint8; secretlen: csize_t; + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + iv: ptr uint8; ivlen: csize_t; + hp_ctx: ptr ngtcp2_crypto_cipher_ctx_536871512): cint {. + cdecl, importc: "ngtcp2_conn_install_tx_key".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_install_tx_key" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_initiate_key_update): + proc ngtcp2_conn_initiate_key_update*(conn: ptr ngtcp2_conn_536871522; + ts: ngtcp2_tstamp_536871399): cint {. + cdecl, importc: "ngtcp2_conn_initiate_key_update".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_initiate_key_update" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_set_tls_error): + proc ngtcp2_conn_set_tls_error*(conn: ptr ngtcp2_conn_536871522; liberr: cint): void {. + cdecl, importc: "ngtcp2_conn_set_tls_error".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_set_tls_error" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_tls_error): + proc ngtcp2_conn_get_tls_error*(conn: ptr ngtcp2_conn_536871522): cint {. + cdecl, importc: "ngtcp2_conn_get_tls_error".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_tls_error" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_set_tls_alert): + proc ngtcp2_conn_set_tls_alert*(conn: ptr ngtcp2_conn_536871522; alert: uint8): void {. + cdecl, importc: "ngtcp2_conn_set_tls_alert".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_set_tls_alert" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_tls_alert): + proc ngtcp2_conn_get_tls_alert*(conn: ptr ngtcp2_conn_536871522): uint8 {. + cdecl, importc: "ngtcp2_conn_get_tls_alert".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_tls_alert" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_set_keep_alive_timeout): + proc ngtcp2_conn_set_keep_alive_timeout*(conn: ptr ngtcp2_conn_536871522; + timeout: ngtcp2_duration_536871401): void {.cdecl, + importc: "ngtcp2_conn_set_keep_alive_timeout".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_set_keep_alive_timeout" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_expiry): + proc ngtcp2_conn_get_expiry*(conn: ptr ngtcp2_conn_536871522): ngtcp2_tstamp_536871399 {. + cdecl, importc: "ngtcp2_conn_get_expiry".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_expiry" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_handle_expiry): + proc ngtcp2_conn_handle_expiry*(conn: ptr ngtcp2_conn_536871522; + ts: ngtcp2_tstamp_536871399): cint {.cdecl, + importc: "ngtcp2_conn_handle_expiry".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_handle_expiry" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_pto): + proc ngtcp2_conn_get_pto*(conn: ptr ngtcp2_conn_536871522): ngtcp2_duration_536871401 {. + cdecl, importc: "ngtcp2_conn_get_pto".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_pto" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_decode_and_set_remote_transport_params): + proc ngtcp2_conn_decode_and_set_remote_transport_params*( + conn: ptr ngtcp2_conn_536871522; data: ptr uint8; datalen: csize_t): cint {. + cdecl, importc: "ngtcp2_conn_decode_and_set_remote_transport_params".} +else: + static : + hint("Declaration of " & + "ngtcp2_conn_decode_and_set_remote_transport_params" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_remote_transport_params): + proc ngtcp2_conn_get_remote_transport_params*(conn: ptr ngtcp2_conn_536871522): ptr ngtcp2_transport_params_536871449 {. + cdecl, importc: "ngtcp2_conn_get_remote_transport_params".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_remote_transport_params" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_encode_0rtt_transport_params): + proc ngtcp2_conn_encode_0rtt_transport_params*(conn: ptr ngtcp2_conn_536871522; + dest: ptr uint8; destlen: csize_t): ngtcp2_ssize_536871371 {.cdecl, + importc: "ngtcp2_conn_encode_0rtt_transport_params".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_encode_0rtt_transport_params" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_decode_and_set_0rtt_transport_params): + proc ngtcp2_conn_decode_and_set_0rtt_transport_params*(conn: ptr ngtcp2_conn_536871522; + data: ptr uint8; datalen: csize_t): cint {.cdecl, + importc: "ngtcp2_conn_decode_and_set_0rtt_transport_params".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_decode_and_set_0rtt_transport_params" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_set_local_transport_params_versioned): + proc ngtcp2_conn_set_local_transport_params_versioned*(conn: ptr ngtcp2_conn_536871522; + transport_params_version: cint; params: ptr ngtcp2_transport_params_536871449): cint {. + cdecl, importc: "ngtcp2_conn_set_local_transport_params_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_set_local_transport_params_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_local_transport_params): + proc ngtcp2_conn_get_local_transport_params*(conn: ptr ngtcp2_conn_536871522): ptr ngtcp2_transport_params_536871449 {. + cdecl, importc: "ngtcp2_conn_get_local_transport_params".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_local_transport_params" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_encode_local_transport_params): + proc ngtcp2_conn_encode_local_transport_params*(conn: ptr ngtcp2_conn_536871522; + dest: ptr uint8; destlen: csize_t): ngtcp2_ssize_536871371 {.cdecl, + importc: "ngtcp2_conn_encode_local_transport_params".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_encode_local_transport_params" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_open_bidi_stream): + proc ngtcp2_conn_open_bidi_stream*(conn: ptr ngtcp2_conn_536871522; + pstream_id: ptr int64; + stream_user_data: pointer): cint {.cdecl, + importc: "ngtcp2_conn_open_bidi_stream".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_open_bidi_stream" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_open_uni_stream): + proc ngtcp2_conn_open_uni_stream*(conn: ptr ngtcp2_conn_536871522; + pstream_id: ptr int64; + stream_user_data: pointer): cint {.cdecl, + importc: "ngtcp2_conn_open_uni_stream".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_open_uni_stream" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_shutdown_stream): + proc ngtcp2_conn_shutdown_stream*(conn: ptr ngtcp2_conn_536871522; + flags: uint32; stream_id: int64; + app_error_code: uint64): cint {.cdecl, + importc: "ngtcp2_conn_shutdown_stream".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_shutdown_stream" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_shutdown_stream_write): + proc ngtcp2_conn_shutdown_stream_write*(conn: ptr ngtcp2_conn_536871522; + flags: uint32; stream_id: int64; app_error_code: uint64): cint {.cdecl, + importc: "ngtcp2_conn_shutdown_stream_write".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_shutdown_stream_write" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_shutdown_stream_read): + proc ngtcp2_conn_shutdown_stream_read*(conn: ptr ngtcp2_conn_536871522; + flags: uint32; stream_id: int64; app_error_code: uint64): cint {.cdecl, + importc: "ngtcp2_conn_shutdown_stream_read".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_shutdown_stream_read" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_write_stream_versioned): + proc ngtcp2_conn_write_stream_versioned*(conn: ptr ngtcp2_conn_536871522; + path: ptr ngtcp2_path_536871488; pkt_info_version: cint; + pi: ptr ngtcp2_pkt_info_536871389; dest: ptr uint8; destlen: csize_t; + pdatalen: ptr ngtcp2_ssize_536871371; flags: uint32; stream_id: int64; + data: ptr uint8; datalen: csize_t; ts: ngtcp2_tstamp_536871399): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_conn_write_stream_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_write_stream_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_writev_stream_versioned): + proc ngtcp2_conn_writev_stream_versioned*(conn: ptr ngtcp2_conn_536871522; + path: ptr ngtcp2_path_536871488; pkt_info_version: cint; + pi: ptr ngtcp2_pkt_info_536871389; dest: ptr uint8; destlen: csize_t; + pdatalen: ptr ngtcp2_ssize_536871371; flags: uint32; stream_id: int64; + datav: ptr ngtcp2_vec_536871409; datavcnt: csize_t; ts: ngtcp2_tstamp_536871399): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_conn_writev_stream_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_writev_stream_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_write_datagram_versioned): + proc ngtcp2_conn_write_datagram_versioned*(conn: ptr ngtcp2_conn_536871522; + path: ptr ngtcp2_path_536871488; pkt_info_version: cint; + pi: ptr ngtcp2_pkt_info_536871389; dest: ptr uint8; destlen: csize_t; + paccepted: ptr cint; flags: uint32; dgram_id: uint64; data: ptr uint8; + datalen: csize_t; ts: ngtcp2_tstamp_536871399): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_conn_write_datagram_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_write_datagram_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_writev_datagram_versioned): + proc ngtcp2_conn_writev_datagram_versioned*(conn: ptr ngtcp2_conn_536871522; + path: ptr ngtcp2_path_536871488; pkt_info_version: cint; + pi: ptr ngtcp2_pkt_info_536871389; dest: ptr uint8; destlen: csize_t; + paccepted: ptr cint; flags: uint32; dgram_id: uint64; + datav: ptr ngtcp2_vec_536871409; datavcnt: csize_t; ts: ngtcp2_tstamp_536871399): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_conn_writev_datagram_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_writev_datagram_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_in_closing_period): + proc ngtcp2_conn_in_closing_period*(conn: ptr ngtcp2_conn_536871522): cint {. + cdecl, importc: "ngtcp2_conn_in_closing_period".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_in_closing_period" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_in_draining_period): + proc ngtcp2_conn_in_draining_period*(conn: ptr ngtcp2_conn_536871522): cint {. + cdecl, importc: "ngtcp2_conn_in_draining_period".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_in_draining_period" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_extend_max_stream_offset): + proc ngtcp2_conn_extend_max_stream_offset*(conn: ptr ngtcp2_conn_536871522; + stream_id: int64; datalen: uint64): cint {.cdecl, + importc: "ngtcp2_conn_extend_max_stream_offset".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_extend_max_stream_offset" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_extend_max_offset): + proc ngtcp2_conn_extend_max_offset*(conn: ptr ngtcp2_conn_536871522; + datalen: uint64): void {.cdecl, + importc: "ngtcp2_conn_extend_max_offset".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_extend_max_offset" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_extend_max_streams_bidi): + proc ngtcp2_conn_extend_max_streams_bidi*(conn: ptr ngtcp2_conn_536871522; + n: csize_t): void {.cdecl, importc: "ngtcp2_conn_extend_max_streams_bidi".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_extend_max_streams_bidi" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_extend_max_streams_uni): + proc ngtcp2_conn_extend_max_streams_uni*(conn: ptr ngtcp2_conn_536871522; + n: csize_t): void {.cdecl, importc: "ngtcp2_conn_extend_max_streams_uni".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_extend_max_streams_uni" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_dcid): + proc ngtcp2_conn_get_dcid*(conn: ptr ngtcp2_conn_536871522): ptr ngtcp2_cid_536871405 {. + cdecl, importc: "ngtcp2_conn_get_dcid".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_dcid" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_client_initial_dcid): + proc ngtcp2_conn_get_client_initial_dcid*(conn: ptr ngtcp2_conn_536871522): ptr ngtcp2_cid_536871405 {. + cdecl, importc: "ngtcp2_conn_get_client_initial_dcid".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_client_initial_dcid" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_scid): + proc ngtcp2_conn_get_scid*(conn: ptr ngtcp2_conn_536871522; + dest: ptr ngtcp2_cid_536871405): csize_t {.cdecl, + importc: "ngtcp2_conn_get_scid".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_scid" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_active_dcid): + proc ngtcp2_conn_get_active_dcid*(conn: ptr ngtcp2_conn_536871522; + dest: ptr ngtcp2_cid_token_536871610): csize_t {. + cdecl, importc: "ngtcp2_conn_get_active_dcid".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_active_dcid" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_client_chosen_version): + proc ngtcp2_conn_get_client_chosen_version*(conn: ptr ngtcp2_conn_536871522): uint32 {. + cdecl, importc: "ngtcp2_conn_get_client_chosen_version".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_client_chosen_version" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_negotiated_version): + proc ngtcp2_conn_get_negotiated_version*(conn: ptr ngtcp2_conn_536871522): uint32 {. + cdecl, importc: "ngtcp2_conn_get_negotiated_version".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_negotiated_version" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_tls_early_data_rejected): + proc ngtcp2_conn_tls_early_data_rejected*(conn: ptr ngtcp2_conn_536871522): cint {. + cdecl, importc: "ngtcp2_conn_tls_early_data_rejected".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_tls_early_data_rejected" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_tls_early_data_rejected): + proc ngtcp2_conn_get_tls_early_data_rejected*(conn: ptr ngtcp2_conn_536871522): cint {. + cdecl, importc: "ngtcp2_conn_get_tls_early_data_rejected".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_tls_early_data_rejected" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_conn_info_versioned): + proc ngtcp2_conn_get_conn_info_versioned*(conn: ptr ngtcp2_conn_536871522; + conn_info_version: cint; cinfo: ptr ngtcp2_conn_info_536871460): void {. + cdecl, importc: "ngtcp2_conn_get_conn_info_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_conn_info_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_submit_crypto_data): + proc ngtcp2_conn_submit_crypto_data*(conn: ptr ngtcp2_conn_536871522; + encryption_level: ngtcp2_encryption_level_536871530; data: ptr uint8; + datalen: csize_t): cint {.cdecl, + importc: "ngtcp2_conn_submit_crypto_data".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_submit_crypto_data" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_submit_new_token): + proc ngtcp2_conn_submit_new_token*(conn: ptr ngtcp2_conn_536871522; + token: ptr uint8; tokenlen: csize_t): cint {. + cdecl, importc: "ngtcp2_conn_submit_new_token".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_submit_new_token" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_set_local_addr): + proc ngtcp2_conn_set_local_addr*(conn: ptr ngtcp2_conn_536871522; + addr_arg: ptr ngtcp2_addr_536871484): void {. + cdecl, importc: "ngtcp2_conn_set_local_addr".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_set_local_addr" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_set_path_user_data): + proc ngtcp2_conn_set_path_user_data*(conn: ptr ngtcp2_conn_536871522; + path_user_data: pointer): void {.cdecl, + importc: "ngtcp2_conn_set_path_user_data".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_set_path_user_data" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_path): + proc ngtcp2_conn_get_path*(conn: ptr ngtcp2_conn_536871522): ptr ngtcp2_path_536871488 {. + cdecl, importc: "ngtcp2_conn_get_path".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_path" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_max_tx_udp_payload_size): + proc ngtcp2_conn_get_max_tx_udp_payload_size*(conn: ptr ngtcp2_conn_536871522): csize_t {. + cdecl, importc: "ngtcp2_conn_get_max_tx_udp_payload_size".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_max_tx_udp_payload_size" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_path_max_tx_udp_payload_size): + proc ngtcp2_conn_get_path_max_tx_udp_payload_size*(conn: ptr ngtcp2_conn_536871522): csize_t {. + cdecl, importc: "ngtcp2_conn_get_path_max_tx_udp_payload_size".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_path_max_tx_udp_payload_size" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_initiate_immediate_migration): + proc ngtcp2_conn_initiate_immediate_migration*(conn: ptr ngtcp2_conn_536871522; + path: ptr ngtcp2_path_536871488; ts: ngtcp2_tstamp_536871399): cint {. + cdecl, importc: "ngtcp2_conn_initiate_immediate_migration".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_initiate_immediate_migration" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_initiate_migration): + proc ngtcp2_conn_initiate_migration*(conn: ptr ngtcp2_conn_536871522; + path: ptr ngtcp2_path_536871488; + ts: ngtcp2_tstamp_536871399): cint {. + cdecl, importc: "ngtcp2_conn_initiate_migration".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_initiate_migration" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_max_data_left): + proc ngtcp2_conn_get_max_data_left*(conn: ptr ngtcp2_conn_536871522): uint64 {. + cdecl, importc: "ngtcp2_conn_get_max_data_left".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_max_data_left" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_max_stream_data_left): + proc ngtcp2_conn_get_max_stream_data_left*(conn: ptr ngtcp2_conn_536871522; + stream_id: int64): uint64 {.cdecl, importc: "ngtcp2_conn_get_max_stream_data_left".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_max_stream_data_left" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_streams_bidi_left): + proc ngtcp2_conn_get_streams_bidi_left*(conn: ptr ngtcp2_conn_536871522): uint64 {. + cdecl, importc: "ngtcp2_conn_get_streams_bidi_left".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_streams_bidi_left" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_streams_uni_left): + proc ngtcp2_conn_get_streams_uni_left*(conn: ptr ngtcp2_conn_536871522): uint64 {. + cdecl, importc: "ngtcp2_conn_get_streams_uni_left".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_streams_uni_left" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_cwnd_left): + proc ngtcp2_conn_get_cwnd_left*(conn: ptr ngtcp2_conn_536871522): uint64 {. + cdecl, importc: "ngtcp2_conn_get_cwnd_left".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_cwnd_left" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_set_initial_crypto_ctx): + proc ngtcp2_conn_set_initial_crypto_ctx*(conn: ptr ngtcp2_conn_536871522; + ctx: ptr ngtcp2_crypto_ctx_536871516): void {.cdecl, + importc: "ngtcp2_conn_set_initial_crypto_ctx".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_set_initial_crypto_ctx" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_initial_crypto_ctx): + proc ngtcp2_conn_get_initial_crypto_ctx*(conn: ptr ngtcp2_conn_536871522): ptr ngtcp2_crypto_ctx_536871516 {. + cdecl, importc: "ngtcp2_conn_get_initial_crypto_ctx".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_initial_crypto_ctx" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_set_crypto_ctx): + proc ngtcp2_conn_set_crypto_ctx*(conn: ptr ngtcp2_conn_536871522; + ctx: ptr ngtcp2_crypto_ctx_536871516): void {. + cdecl, importc: "ngtcp2_conn_set_crypto_ctx".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_set_crypto_ctx" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_crypto_ctx): + proc ngtcp2_conn_get_crypto_ctx*(conn: ptr ngtcp2_conn_536871522): ptr ngtcp2_crypto_ctx_536871516 {. + cdecl, importc: "ngtcp2_conn_get_crypto_ctx".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_crypto_ctx" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_set_0rtt_crypto_ctx): + proc ngtcp2_conn_set_0rtt_crypto_ctx*(conn: ptr ngtcp2_conn_536871522; + ctx: ptr ngtcp2_crypto_ctx_536871516): void {. + cdecl, importc: "ngtcp2_conn_set_0rtt_crypto_ctx".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_set_0rtt_crypto_ctx" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_0rtt_crypto_ctx): + proc ngtcp2_conn_get_0rtt_crypto_ctx*(conn: ptr ngtcp2_conn_536871522): ptr ngtcp2_crypto_ctx_536871516 {. + cdecl, importc: "ngtcp2_conn_get_0rtt_crypto_ctx".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_0rtt_crypto_ctx" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_tls_native_handle): + proc ngtcp2_conn_get_tls_native_handle*(conn: ptr ngtcp2_conn_536871522): pointer {. + cdecl, importc: "ngtcp2_conn_get_tls_native_handle".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_tls_native_handle" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_set_tls_native_handle): + proc ngtcp2_conn_set_tls_native_handle*(conn: ptr ngtcp2_conn_536871522; + tls_native_handle: pointer): void {.cdecl, + importc: "ngtcp2_conn_set_tls_native_handle".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_set_tls_native_handle" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_set_retry_aead): + proc ngtcp2_conn_set_retry_aead*(conn: ptr ngtcp2_conn_536871522; + aead: ptr ngtcp2_crypto_aead_536871500; + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508): void {. + cdecl, importc: "ngtcp2_conn_set_retry_aead".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_set_retry_aead" & + " already exists, not redeclaring") +when not declared(ngtcp2_ccerr_default): + proc ngtcp2_ccerr_default*(ccerr: ptr ngtcp2_ccerr_536871618): void {.cdecl, + importc: "ngtcp2_ccerr_default".} +else: + static : + hint("Declaration of " & "ngtcp2_ccerr_default" & + " already exists, not redeclaring") +when not declared(ngtcp2_ccerr_set_transport_error): + proc ngtcp2_ccerr_set_transport_error*(ccerr: ptr ngtcp2_ccerr_536871618; + error_code: uint64; reason: ptr uint8; reasonlen: csize_t): void {.cdecl, + importc: "ngtcp2_ccerr_set_transport_error".} +else: + static : + hint("Declaration of " & "ngtcp2_ccerr_set_transport_error" & + " already exists, not redeclaring") +when not declared(ngtcp2_ccerr_set_liberr): + proc ngtcp2_ccerr_set_liberr*(ccerr: ptr ngtcp2_ccerr_536871618; liberr: cint; + reason: ptr uint8; reasonlen: csize_t): void {. + cdecl, importc: "ngtcp2_ccerr_set_liberr".} +else: + static : + hint("Declaration of " & "ngtcp2_ccerr_set_liberr" & + " already exists, not redeclaring") +when not declared(ngtcp2_ccerr_set_tls_alert): + proc ngtcp2_ccerr_set_tls_alert*(ccerr: ptr ngtcp2_ccerr_536871618; + tls_alert: uint8; reason: ptr uint8; + reasonlen: csize_t): void {.cdecl, + importc: "ngtcp2_ccerr_set_tls_alert".} +else: + static : + hint("Declaration of " & "ngtcp2_ccerr_set_tls_alert" & + " already exists, not redeclaring") +when not declared(ngtcp2_ccerr_set_application_error): + proc ngtcp2_ccerr_set_application_error*(ccerr: ptr ngtcp2_ccerr_536871618; + error_code: uint64; reason: ptr uint8; reasonlen: csize_t): void {.cdecl, + importc: "ngtcp2_ccerr_set_application_error".} +else: + static : + hint("Declaration of " & "ngtcp2_ccerr_set_application_error" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_write_connection_close_versioned): + proc ngtcp2_conn_write_connection_close_versioned*(conn: ptr ngtcp2_conn_536871522; + path: ptr ngtcp2_path_536871488; pkt_info_version: cint; + pi: ptr ngtcp2_pkt_info_536871389; dest: ptr uint8; destlen: csize_t; + ccerr: ptr ngtcp2_ccerr_536871618; ts: ngtcp2_tstamp_536871399): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_conn_write_connection_close_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_write_connection_close_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_ccerr): + proc ngtcp2_conn_get_ccerr*(conn: ptr ngtcp2_conn_536871522): ptr ngtcp2_ccerr_536871618 {. + cdecl, importc: "ngtcp2_conn_get_ccerr".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_ccerr" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_is_local_stream): + proc ngtcp2_conn_is_local_stream*(conn: ptr ngtcp2_conn_536871522; + stream_id: int64): cint {.cdecl, + importc: "ngtcp2_conn_is_local_stream".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_is_local_stream" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_is_server): + proc ngtcp2_conn_is_server*(conn: ptr ngtcp2_conn_536871522): cint {.cdecl, + importc: "ngtcp2_conn_is_server".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_is_server" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_after_retry): + proc ngtcp2_conn_after_retry*(conn: ptr ngtcp2_conn_536871522): cint {.cdecl, + importc: "ngtcp2_conn_after_retry".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_after_retry" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_set_stream_user_data): + proc ngtcp2_conn_set_stream_user_data*(conn: ptr ngtcp2_conn_536871522; + stream_id: int64; stream_user_data: pointer): cint {.cdecl, + importc: "ngtcp2_conn_set_stream_user_data".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_set_stream_user_data" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_update_pkt_tx_time): + proc ngtcp2_conn_update_pkt_tx_time*(conn: ptr ngtcp2_conn_536871522; + ts: ngtcp2_tstamp_536871399): void {. + cdecl, importc: "ngtcp2_conn_update_pkt_tx_time".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_update_pkt_tx_time" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_send_quantum): + proc ngtcp2_conn_get_send_quantum*(conn: ptr ngtcp2_conn_536871522): csize_t {. + cdecl, importc: "ngtcp2_conn_get_send_quantum".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_send_quantum" & + " already exists, not redeclaring") +when not declared(ngtcp2_conn_get_stream_loss_count): + proc ngtcp2_conn_get_stream_loss_count*(conn: ptr ngtcp2_conn_536871522; + stream_id: int64): csize_t {.cdecl, + importc: "ngtcp2_conn_get_stream_loss_count".} +else: + static : + hint("Declaration of " & "ngtcp2_conn_get_stream_loss_count" & + " already exists, not redeclaring") +when not declared(ngtcp2_strerror): + proc ngtcp2_strerror*(liberr: cint): cstring {.cdecl, + importc: "ngtcp2_strerror".} +else: + static : + hint("Declaration of " & "ngtcp2_strerror" & + " already exists, not redeclaring") +when not declared(ngtcp2_err_is_fatal): + proc ngtcp2_err_is_fatal*(liberr: cint): cint {.cdecl, + importc: "ngtcp2_err_is_fatal".} +else: + static : + hint("Declaration of " & "ngtcp2_err_is_fatal" & + " already exists, not redeclaring") +when not declared(ngtcp2_err_infer_quic_transport_error_code): + proc ngtcp2_err_infer_quic_transport_error_code*(liberr: cint): uint64 {. + cdecl, importc: "ngtcp2_err_infer_quic_transport_error_code".} +else: + static : + hint("Declaration of " & "ngtcp2_err_infer_quic_transport_error_code" & + " already exists, not redeclaring") +when not declared(ngtcp2_addr_init): + proc ngtcp2_addr_init*(dest: ptr ngtcp2_addr_536871484; + addr_arg: ptr ngtcp2_sockaddr_536871419; + addrlen: ngtcp2_socklen_536871431): ptr ngtcp2_addr_536871484 {. + cdecl, importc: "ngtcp2_addr_init".} +else: + static : + hint("Declaration of " & "ngtcp2_addr_init" & + " already exists, not redeclaring") +when not declared(ngtcp2_addr_copy_byte): + proc ngtcp2_addr_copy_byte*(dest: ptr ngtcp2_addr_536871484; + addr_arg: ptr ngtcp2_sockaddr_536871419; + addrlen: ngtcp2_socklen_536871431): void {.cdecl, + importc: "ngtcp2_addr_copy_byte".} +else: + static : + hint("Declaration of " & "ngtcp2_addr_copy_byte" & + " already exists, not redeclaring") +when not declared(ngtcp2_path_storage_init): + proc ngtcp2_path_storage_init*(ps: ptr ngtcp2_path_storage_536871492; + local_addr: ptr ngtcp2_sockaddr_536871419; + local_addrlen: ngtcp2_socklen_536871431; + remote_addr: ptr ngtcp2_sockaddr_536871419; + remote_addrlen: ngtcp2_socklen_536871431; + user_data: pointer): void {.cdecl, + importc: "ngtcp2_path_storage_init".} +else: + static : + hint("Declaration of " & "ngtcp2_path_storage_init" & + " already exists, not redeclaring") +when not declared(ngtcp2_path_storage_zero): + proc ngtcp2_path_storage_zero*(ps: ptr ngtcp2_path_storage_536871492): void {. + cdecl, importc: "ngtcp2_path_storage_zero".} +else: + static : + hint("Declaration of " & "ngtcp2_path_storage_zero" & + " already exists, not redeclaring") +when not declared(ngtcp2_settings_default_versioned): + proc ngtcp2_settings_default_versioned*(settings_version: cint; + settings: ptr ngtcp2_settings_536871480): void {.cdecl, + importc: "ngtcp2_settings_default_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_settings_default_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_transport_params_default_versioned): + proc ngtcp2_transport_params_default_versioned*( + transport_params_version: cint; params: ptr ngtcp2_transport_params_536871449): void {. + cdecl, importc: "ngtcp2_transport_params_default_versioned".} +else: + static : + hint("Declaration of " & "ngtcp2_transport_params_default_versioned" & + " already exists, not redeclaring") +when not declared(ngtcp2_mem_default): + proc ngtcp2_mem_default*(): ptr ngtcp2_mem_536871385 {.cdecl, + importc: "ngtcp2_mem_default".} +else: + static : + hint("Declaration of " & "ngtcp2_mem_default" & + " already exists, not redeclaring") +when not declared(ngtcp2_version): + proc ngtcp2_version*(least_version: cint): ptr ngtcp2_info_536871622 {.cdecl, + importc: "ngtcp2_version".} +else: + static : + hint("Declaration of " & "ngtcp2_version" & + " already exists, not redeclaring") +when not declared(ngtcp2_is_bidi_stream): + proc ngtcp2_is_bidi_stream*(stream_id: int64): cint {.cdecl, + importc: "ngtcp2_is_bidi_stream".} +else: + static : + hint("Declaration of " & "ngtcp2_is_bidi_stream" & + " already exists, not redeclaring") +when not declared(ngtcp2_path_copy): + proc ngtcp2_path_copy*(dest: ptr ngtcp2_path_536871488; src: ptr ngtcp2_path_536871488): void {. + cdecl, importc: "ngtcp2_path_copy".} +else: + static : + hint("Declaration of " & "ngtcp2_path_copy" & + " already exists, not redeclaring") +when not declared(ngtcp2_path_eq): + proc ngtcp2_path_eq*(a: ptr ngtcp2_path_536871488; b: ptr ngtcp2_path_536871488): cint {. + cdecl, importc: "ngtcp2_path_eq".} +else: + static : + hint("Declaration of " & "ngtcp2_path_eq" & + " already exists, not redeclaring") +when not declared(ngtcp2_is_supported_version): + proc ngtcp2_is_supported_version*(version: uint32): cint {.cdecl, + importc: "ngtcp2_is_supported_version".} +else: + static : + hint("Declaration of " & "ngtcp2_is_supported_version" & + " already exists, not redeclaring") +when not declared(ngtcp2_is_reserved_version): + proc ngtcp2_is_reserved_version*(version: uint32): cint {.cdecl, + importc: "ngtcp2_is_reserved_version".} +else: + static : + hint("Declaration of " & "ngtcp2_is_reserved_version" & + " already exists, not redeclaring") +when not declared(ngtcp2_select_version): + proc ngtcp2_select_version*(preferred_versions: ptr uint32; + preferred_versionslen: csize_t; + offered_versions: ptr uint32; + offered_versionslen: csize_t): uint32 {.cdecl, + importc: "ngtcp2_select_version".} +else: + static : + hint("Declaration of " & "ngtcp2_select_version" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_ctx_tls): + proc ngtcp2_crypto_ctx_tls*(ctx: ptr ngtcp2_crypto_ctx_536871516; + tls_native_handle: pointer): ptr ngtcp2_crypto_ctx_536871516 {. + cdecl, importc: "ngtcp2_crypto_ctx_tls".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_ctx_tls" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_ctx_tls_early): + proc ngtcp2_crypto_ctx_tls_early*(ctx: ptr ngtcp2_crypto_ctx_536871516; + tls_native_handle: pointer): ptr ngtcp2_crypto_ctx_536871516 {. + cdecl, importc: "ngtcp2_crypto_ctx_tls_early".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_ctx_tls_early" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_md_init): + proc ngtcp2_crypto_md_init*(md: ptr ngtcp2_crypto_md_536871496; + md_native_handle: pointer): ptr ngtcp2_crypto_md_536871496 {. + cdecl, importc: "ngtcp2_crypto_md_init".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_md_init" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_md_hashlen): + proc ngtcp2_crypto_md_hashlen*(md: ptr ngtcp2_crypto_md_536871496): csize_t {. + cdecl, importc: "ngtcp2_crypto_md_hashlen".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_md_hashlen" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_aead_keylen): + proc ngtcp2_crypto_aead_keylen*(aead: ptr ngtcp2_crypto_aead_536871500): csize_t {. + cdecl, importc: "ngtcp2_crypto_aead_keylen".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_aead_keylen" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_aead_noncelen): + proc ngtcp2_crypto_aead_noncelen*(aead: ptr ngtcp2_crypto_aead_536871500): csize_t {. + cdecl, importc: "ngtcp2_crypto_aead_noncelen".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_aead_noncelen" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_hkdf_extract): + proc ngtcp2_crypto_hkdf_extract*(dest: ptr uint8; md: ptr ngtcp2_crypto_md_536871496; + secret: ptr uint8; secretlen: csize_t; + salt: ptr uint8; saltlen: csize_t): cint {. + cdecl, importc: "ngtcp2_crypto_hkdf_extract".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_hkdf_extract" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_hkdf_expand): + proc ngtcp2_crypto_hkdf_expand*(dest: ptr uint8; destlen: csize_t; + md: ptr ngtcp2_crypto_md_536871496; + secret: ptr uint8; secretlen: csize_t; + info: ptr uint8; infolen: csize_t): cint {. + cdecl, importc: "ngtcp2_crypto_hkdf_expand".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_hkdf_expand" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_hkdf): + proc ngtcp2_crypto_hkdf*(dest: ptr uint8; destlen: csize_t; + md: ptr ngtcp2_crypto_md_536871496; + secret: ptr uint8; secretlen: csize_t; + salt: ptr uint8; saltlen: csize_t; info: ptr uint8; + infolen: csize_t): cint {.cdecl, + importc: "ngtcp2_crypto_hkdf".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_hkdf" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_packet_protection_ivlen): + proc ngtcp2_crypto_packet_protection_ivlen*(aead: ptr ngtcp2_crypto_aead_536871500): csize_t {. + cdecl, importc: "ngtcp2_crypto_packet_protection_ivlen".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_packet_protection_ivlen" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_encrypt): + proc ngtcp2_crypto_encrypt*(dest: ptr uint8; aead: ptr ngtcp2_crypto_aead_536871500; + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + plaintext: ptr uint8; plaintextlen: csize_t; + nonce: ptr uint8; noncelen: csize_t; + aad: ptr uint8; aadlen: csize_t): cint {.cdecl, + importc: "ngtcp2_crypto_encrypt".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_encrypt" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_encrypt_cb): + proc ngtcp2_crypto_encrypt_cb*(dest: ptr uint8; aead: ptr ngtcp2_crypto_aead_536871500; + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + plaintext: ptr uint8; plaintextlen: csize_t; + nonce: ptr uint8; noncelen: csize_t; + aad: ptr uint8; aadlen: csize_t): cint {.cdecl, + importc: "ngtcp2_crypto_encrypt_cb".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_encrypt_cb" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_decrypt): + proc ngtcp2_crypto_decrypt*(dest: ptr uint8; aead: ptr ngtcp2_crypto_aead_536871500; + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + ciphertext: ptr uint8; ciphertextlen: csize_t; + nonce: ptr uint8; noncelen: csize_t; + aad: ptr uint8; aadlen: csize_t): cint {.cdecl, + importc: "ngtcp2_crypto_decrypt".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_decrypt" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_decrypt_cb): + proc ngtcp2_crypto_decrypt_cb*(dest: ptr uint8; aead: ptr ngtcp2_crypto_aead_536871500; + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + ciphertext: ptr uint8; ciphertextlen: csize_t; + nonce: ptr uint8; noncelen: csize_t; + aad: ptr uint8; aadlen: csize_t): cint {.cdecl, + importc: "ngtcp2_crypto_decrypt_cb".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_decrypt_cb" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_hp_mask): + proc ngtcp2_crypto_hp_mask*(dest: ptr uint8; hp: ptr ngtcp2_crypto_cipher_536871504; + hp_ctx: ptr ngtcp2_crypto_cipher_ctx_536871512; + sample: ptr uint8): cint {.cdecl, + importc: "ngtcp2_crypto_hp_mask".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_hp_mask" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_hp_mask_cb): + proc ngtcp2_crypto_hp_mask_cb*(dest: ptr uint8; hp: ptr ngtcp2_crypto_cipher_536871504; + hp_ctx: ptr ngtcp2_crypto_cipher_ctx_536871512; + sample: ptr uint8): cint {.cdecl, + importc: "ngtcp2_crypto_hp_mask_cb".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_hp_mask_cb" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_derive_and_install_rx_key): + proc ngtcp2_crypto_derive_and_install_rx_key*(conn: ptr ngtcp2_conn_536871522; + key: ptr uint8; iv: ptr uint8; hp: ptr uint8; + level: ngtcp2_encryption_level_536871530; secret: ptr uint8; + secretlen: csize_t): cint {.cdecl, importc: "ngtcp2_crypto_derive_and_install_rx_key".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_derive_and_install_rx_key" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_derive_and_install_tx_key): + proc ngtcp2_crypto_derive_and_install_tx_key*(conn: ptr ngtcp2_conn_536871522; + key: ptr uint8; iv: ptr uint8; hp: ptr uint8; + level: ngtcp2_encryption_level_536871530; secret: ptr uint8; + secretlen: csize_t): cint {.cdecl, importc: "ngtcp2_crypto_derive_and_install_tx_key".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_derive_and_install_tx_key" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_update_key): + proc ngtcp2_crypto_update_key*(conn: ptr ngtcp2_conn_536871522; + rx_secret: ptr uint8; tx_secret: ptr uint8; + rx_aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + rx_key: ptr uint8; rx_iv: ptr uint8; + tx_aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + tx_key: ptr uint8; tx_iv: ptr uint8; + current_rx_secret: ptr uint8; + current_tx_secret: ptr uint8; + secretlen: csize_t): cint {.cdecl, + importc: "ngtcp2_crypto_update_key".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_update_key" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_update_key_cb): + proc ngtcp2_crypto_update_key_cb*(conn: ptr ngtcp2_conn_536871522; + rx_secret: ptr uint8; tx_secret: ptr uint8; + rx_aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + rx_iv: ptr uint8; + tx_aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + tx_iv: ptr uint8; + current_rx_secret: ptr uint8; + current_tx_secret: ptr uint8; + secretlen: csize_t; user_data: pointer): cint {. + cdecl, importc: "ngtcp2_crypto_update_key_cb".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_update_key_cb" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_client_initial_cb): + proc ngtcp2_crypto_client_initial_cb*(conn: ptr ngtcp2_conn_536871522; + user_data: pointer): cint {.cdecl, + importc: "ngtcp2_crypto_client_initial_cb".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_client_initial_cb" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_recv_retry_cb): + proc ngtcp2_crypto_recv_retry_cb*(conn: ptr ngtcp2_conn_536871522; + hd: ptr ngtcp2_pkt_hd_536871413; + user_data: pointer): cint {.cdecl, + importc: "ngtcp2_crypto_recv_retry_cb".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_recv_retry_cb" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_recv_client_initial_cb): + proc ngtcp2_crypto_recv_client_initial_cb*(conn: ptr ngtcp2_conn_536871522; + dcid: ptr ngtcp2_cid_536871405; user_data: pointer): cint {.cdecl, + importc: "ngtcp2_crypto_recv_client_initial_cb".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_recv_client_initial_cb" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_read_write_crypto_data): + proc ngtcp2_crypto_read_write_crypto_data*(conn: ptr ngtcp2_conn_536871522; + encryption_level: ngtcp2_encryption_level_536871530; data: ptr uint8; + datalen: csize_t): cint {.cdecl, + importc: "ngtcp2_crypto_read_write_crypto_data".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_read_write_crypto_data" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_recv_crypto_data_cb): + proc ngtcp2_crypto_recv_crypto_data_cb*(conn: ptr ngtcp2_conn_536871522; + encryption_level: ngtcp2_encryption_level_536871530; offset: uint64; + data: ptr uint8; datalen: csize_t; user_data: pointer): cint {.cdecl, + importc: "ngtcp2_crypto_recv_crypto_data_cb".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_recv_crypto_data_cb" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_generate_stateless_reset_token): + proc ngtcp2_crypto_generate_stateless_reset_token*(token: ptr uint8; + secret: ptr uint8; secretlen: csize_t; cid: ptr ngtcp2_cid_536871405): cint {. + cdecl, importc: "ngtcp2_crypto_generate_stateless_reset_token".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_generate_stateless_reset_token" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_generate_retry_token): + proc ngtcp2_crypto_generate_retry_token*(token: ptr uint8; secret: ptr uint8; + secretlen: csize_t; version: uint32; remote_addr: ptr ngtcp2_sockaddr_536871419; + remote_addrlen: ngtcp2_socklen_536871431; retry_scid: ptr ngtcp2_cid_536871405; + odcid: ptr ngtcp2_cid_536871405; ts: ngtcp2_tstamp_536871399): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_crypto_generate_retry_token".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_generate_retry_token" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_verify_retry_token): + proc ngtcp2_crypto_verify_retry_token*(odcid: ptr ngtcp2_cid_536871405; + token: ptr uint8; tokenlen: csize_t; secret: ptr uint8; + secretlen: csize_t; version: uint32; remote_addr: ptr ngtcp2_sockaddr_536871419; + remote_addrlen: ngtcp2_socklen_536871431; dcid: ptr ngtcp2_cid_536871405; + timeout: ngtcp2_duration_536871401; ts: ngtcp2_tstamp_536871399): cint {. + cdecl, importc: "ngtcp2_crypto_verify_retry_token".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_verify_retry_token" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_generate_retry_token2): + proc ngtcp2_crypto_generate_retry_token2*(token: ptr uint8; secret: ptr uint8; + secretlen: csize_t; version: uint32; remote_addr: ptr ngtcp2_sockaddr_536871419; + remote_addrlen: ngtcp2_socklen_536871431; retry_scid: ptr ngtcp2_cid_536871405; + odcid: ptr ngtcp2_cid_536871405; ts: ngtcp2_tstamp_536871399): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_crypto_generate_retry_token2".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_generate_retry_token2" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_verify_retry_token2): + proc ngtcp2_crypto_verify_retry_token2*(odcid: ptr ngtcp2_cid_536871405; + token: ptr uint8; tokenlen: csize_t; secret: ptr uint8; + secretlen: csize_t; version: uint32; remote_addr: ptr ngtcp2_sockaddr_536871419; + remote_addrlen: ngtcp2_socklen_536871431; dcid: ptr ngtcp2_cid_536871405; + timeout: ngtcp2_duration_536871401; ts: ngtcp2_tstamp_536871399): cint {. + cdecl, importc: "ngtcp2_crypto_verify_retry_token2".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_verify_retry_token2" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_generate_regular_token): + proc ngtcp2_crypto_generate_regular_token*(token: ptr uint8; + secret: ptr uint8; secretlen: csize_t; remote_addr: ptr ngtcp2_sockaddr_536871419; + remote_addrlen: ngtcp2_socklen_536871431; ts: ngtcp2_tstamp_536871399): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_crypto_generate_regular_token".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_generate_regular_token" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_verify_regular_token): + proc ngtcp2_crypto_verify_regular_token*(token: ptr uint8; tokenlen: csize_t; + secret: ptr uint8; secretlen: csize_t; remote_addr: ptr ngtcp2_sockaddr_536871419; + remote_addrlen: ngtcp2_socklen_536871431; timeout: ngtcp2_duration_536871401; + ts: ngtcp2_tstamp_536871399): cint {.cdecl, + importc: "ngtcp2_crypto_verify_regular_token".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_verify_regular_token" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_write_connection_close): + proc ngtcp2_crypto_write_connection_close*(dest: ptr uint8; destlen: csize_t; + version: uint32; dcid: ptr ngtcp2_cid_536871405; scid: ptr ngtcp2_cid_536871405; + error_code: uint64; reason: ptr uint8; reasonlen: csize_t): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_crypto_write_connection_close".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_write_connection_close" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_write_retry): + proc ngtcp2_crypto_write_retry*(dest: ptr uint8; destlen: csize_t; + version: uint32; dcid: ptr ngtcp2_cid_536871405; + scid: ptr ngtcp2_cid_536871405; + odcid: ptr ngtcp2_cid_536871405; + token: ptr uint8; tokenlen: csize_t): ngtcp2_ssize_536871371 {. + cdecl, importc: "ngtcp2_crypto_write_retry".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_write_retry" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_aead_ctx_encrypt_init): + proc ngtcp2_crypto_aead_ctx_encrypt_init*( + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + aead: ptr ngtcp2_crypto_aead_536871500; key: ptr uint8; noncelen: csize_t): cint {. + cdecl, importc: "ngtcp2_crypto_aead_ctx_encrypt_init".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_aead_ctx_encrypt_init" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_aead_ctx_decrypt_init): + proc ngtcp2_crypto_aead_ctx_decrypt_init*( + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; + aead: ptr ngtcp2_crypto_aead_536871500; key: ptr uint8; noncelen: csize_t): cint {. + cdecl, importc: "ngtcp2_crypto_aead_ctx_decrypt_init".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_aead_ctx_decrypt_init" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_aead_ctx_free): + proc ngtcp2_crypto_aead_ctx_free*(aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508): void {. + cdecl, importc: "ngtcp2_crypto_aead_ctx_free".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_aead_ctx_free" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_delete_crypto_aead_ctx_cb): + proc ngtcp2_crypto_delete_crypto_aead_ctx_cb*(conn: ptr ngtcp2_conn_536871522; + aead_ctx: ptr ngtcp2_crypto_aead_ctx_536871508; user_data: pointer): void {. + cdecl, importc: "ngtcp2_crypto_delete_crypto_aead_ctx_cb".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_delete_crypto_aead_ctx_cb" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_delete_crypto_cipher_ctx_cb): + proc ngtcp2_crypto_delete_crypto_cipher_ctx_cb*(conn: ptr ngtcp2_conn_536871522; + cipher_ctx: ptr ngtcp2_crypto_cipher_ctx_536871512; user_data: pointer): void {. + cdecl, importc: "ngtcp2_crypto_delete_crypto_cipher_ctx_cb".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_delete_crypto_cipher_ctx_cb" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_get_path_challenge_data_cb): + proc ngtcp2_crypto_get_path_challenge_data_cb*(conn: ptr ngtcp2_conn_536871522; + data: ptr uint8; user_data: pointer): cint {.cdecl, + importc: "ngtcp2_crypto_get_path_challenge_data_cb".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_get_path_challenge_data_cb" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_version_negotiation_cb): + proc ngtcp2_crypto_version_negotiation_cb*(conn: ptr ngtcp2_conn_536871522; + version: uint32; client_dcid: ptr ngtcp2_cid_536871405; user_data: pointer): cint {. + cdecl, importc: "ngtcp2_crypto_version_negotiation_cb".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_version_negotiation_cb" & + " already exists, not redeclaring") +when not declared(ptls_buffer_release_memory): + proc ptls_buffer_release_memory*(buf: ptr ptls_buffer_t_536871644): void {. + cdecl, importc: "ptls_buffer__release_memory".} +else: + static : + hint("Declaration of " & "ptls_buffer_release_memory" & + " already exists, not redeclaring") +when not declared(ptls_buffer_reserve): + proc ptls_buffer_reserve*(buf: ptr ptls_buffer_t_536871644; delta: csize_t): cint {. + cdecl, importc: "ptls_buffer_reserve".} +else: + static : + hint("Declaration of " & "ptls_buffer_reserve" & + " already exists, not redeclaring") +when not declared(ptls_buffer_reserve_aligned): + proc ptls_buffer_reserve_aligned*(buf: ptr ptls_buffer_t_536871644; + delta: csize_t; align_bits: uint8): cint {. + cdecl, importc: "ptls_buffer_reserve_aligned".} +else: + static : + hint("Declaration of " & "ptls_buffer_reserve_aligned" & + " already exists, not redeclaring") +when not declared(ptls_buffer_do_pushv): + proc ptls_buffer_do_pushv*(buf: ptr ptls_buffer_t_536871644; src: pointer; + len: csize_t): cint {.cdecl, + importc: "ptls_buffer__do_pushv".} +else: + static : + hint("Declaration of " & "ptls_buffer_do_pushv" & + " already exists, not redeclaring") +when not declared(ptls_buffer_adjust_quic_blocksize): + proc ptls_buffer_adjust_quic_blocksize*(buf: ptr ptls_buffer_t_536871644; + body_size: csize_t): cint {.cdecl, + importc: "ptls_buffer__adjust_quic_blocksize".} +else: + static : + hint("Declaration of " & "ptls_buffer_adjust_quic_blocksize" & + " already exists, not redeclaring") +when not declared(ptls_buffer_adjust_asn1_blocksize): + proc ptls_buffer_adjust_asn1_blocksize*(buf: ptr ptls_buffer_t_536871644; + body_size: csize_t): cint {.cdecl, + importc: "ptls_buffer__adjust_asn1_blocksize".} +else: + static : + hint("Declaration of " & "ptls_buffer_adjust_asn1_blocksize" & + " already exists, not redeclaring") +when not declared(ptls_buffer_push_asn1_ubigint): + proc ptls_buffer_push_asn1_ubigint*(buf: ptr ptls_buffer_t_536871644; + bignum: pointer; size: csize_t): cint {. + cdecl, importc: "ptls_buffer_push_asn1_ubigint".} +else: + static : + hint("Declaration of " & "ptls_buffer_push_asn1_ubigint" & + " already exists, not redeclaring") +when not declared(ptls_decode8): + proc ptls_decode8*(value: ptr uint8; src: ptr ptr uint8; end_arg: ptr uint8): cint {. + cdecl, importc: "ptls_decode8".} +else: + static : + hint("Declaration of " & "ptls_decode8" & " already exists, not redeclaring") +when not declared(ptls_decode16): + proc ptls_decode16*(value: ptr uint16; src: ptr ptr uint8; end_arg: ptr uint8): cint {. + cdecl, importc: "ptls_decode16".} +else: + static : + hint("Declaration of " & "ptls_decode16" & + " already exists, not redeclaring") +when not declared(ptls_decode24): + proc ptls_decode24*(value: ptr uint32; src: ptr ptr uint8; end_arg: ptr uint8): cint {. + cdecl, importc: "ptls_decode24".} +else: + static : + hint("Declaration of " & "ptls_decode24" & + " already exists, not redeclaring") +when not declared(ptls_decode32): + proc ptls_decode32*(value: ptr uint32; src: ptr ptr uint8; end_arg: ptr uint8): cint {. + cdecl, importc: "ptls_decode32".} +else: + static : + hint("Declaration of " & "ptls_decode32" & + " already exists, not redeclaring") +when not declared(ptls_decode64): + proc ptls_decode64*(value: ptr uint64; src: ptr ptr uint8; end_arg: ptr uint8): cint {. + cdecl, importc: "ptls_decode64".} +else: + static : + hint("Declaration of " & "ptls_decode64" & + " already exists, not redeclaring") +when not declared(ptls_decode_quicint): + proc ptls_decode_quicint*(src: ptr ptr uint8; end_arg: ptr uint8): uint64 {. + cdecl, importc: "ptls_decode_quicint".} +else: + static : + hint("Declaration of " & "ptls_decode_quicint" & + " already exists, not redeclaring") +when not declared(ptls_log_conn_state_override): + var ptls_log_conn_state_override* {.importc: "ptls_log_conn_state_override".}: ptr ptls_log_conn_state_t_536871794 +else: + static : + hint("Declaration of " & "ptls_log_conn_state_override" & + " already exists, not redeclaring") +when not declared(ptls_log): + var ptls_log* {.importc: "ptls_log".}: struct_st_ptls_log_t_536871796 +else: + static : + hint("Declaration of " & "ptls_log" & " already exists, not redeclaring") +when not declared(ptls_log_init_conn_state): + proc ptls_log_init_conn_state*(state: ptr ptls_log_conn_state_t_536871794; + random_bytes: proc (a0: pointer; a1: csize_t): void {.cdecl.}): void {. + cdecl, importc: "ptls_log_init_conn_state".} +else: + static : + hint("Declaration of " & "ptls_log_init_conn_state" & + " already exists, not redeclaring") +when not declared(ptls_log_num_lost): + proc ptls_log_num_lost*(): csize_t {.cdecl, importc: "ptls_log_num_lost".} +else: + static : + hint("Declaration of " & "ptls_log_num_lost" & + " already exists, not redeclaring") +when not declared(ptls_log_add_fd): + proc ptls_log_add_fd*(fd: cint; sample_ratio: cfloat; points: cstring; + snis: cstring; addresses: cstring; appdata: cint): cint {. + cdecl, importc: "ptls_log_add_fd".} +else: + static : + hint("Declaration of " & "ptls_log_add_fd" & + " already exists, not redeclaring") +when not declared(ptls_log_recalc_point): + proc ptls_log_recalc_point*(caller_locked: cint; + point: ptr struct_st_ptls_log_point_t_536871788): void {. + cdecl, importc: "ptls_log__recalc_point".} +else: + static : + hint("Declaration of " & "ptls_log_recalc_point" & + " already exists, not redeclaring") +when not declared(ptls_log_recalc_conn): + proc ptls_log_recalc_conn*(caller_locked: cint; + conn: ptr struct_st_ptls_log_conn_state_t_536871790; + get_sni: proc (a0: pointer): cstring {.cdecl.}; + get_sni_arg: pointer): void {.cdecl, + importc: "ptls_log__recalc_conn".} +else: + static : + hint("Declaration of " & "ptls_log_recalc_conn" & + " already exists, not redeclaring") +when not declared(ptls_log_do_push_element_safestr): + proc ptls_log_do_push_element_safestr*(prefix: cstring; prefix_len: csize_t; + s: cstring; l: csize_t): void {.cdecl, importc: "ptls_log__do_push_element_safestr".} +else: + static : + hint("Declaration of " & "ptls_log_do_push_element_safestr" & + " already exists, not redeclaring") +when not declared(ptls_log_do_push_element_unsafestr): + proc ptls_log_do_push_element_unsafestr*(prefix: cstring; prefix_len: csize_t; + s: cstring; l: csize_t): void {.cdecl, importc: "ptls_log__do_push_element_unsafestr".} +else: + static : + hint("Declaration of " & "ptls_log_do_push_element_unsafestr" & + " already exists, not redeclaring") +when not declared(ptls_log_do_push_element_hexdump): + proc ptls_log_do_push_element_hexdump*(prefix: cstring; prefix_len: csize_t; + s: pointer; l: csize_t): void {.cdecl, importc: "ptls_log__do_push_element_hexdump".} +else: + static : + hint("Declaration of " & "ptls_log_do_push_element_hexdump" & + " already exists, not redeclaring") +when not declared(ptls_log_do_push_element_signed32): + proc ptls_log_do_push_element_signed32*(prefix: cstring; prefix_len: csize_t; + v: int32): void {.cdecl, importc: "ptls_log__do_push_element_signed32".} +else: + static : + hint("Declaration of " & "ptls_log_do_push_element_signed32" & + " already exists, not redeclaring") +when not declared(ptls_log_do_push_element_signed64): + proc ptls_log_do_push_element_signed64*(prefix: cstring; prefix_len: csize_t; + v: int64): void {.cdecl, importc: "ptls_log__do_push_element_signed64".} +else: + static : + hint("Declaration of " & "ptls_log_do_push_element_signed64" & + " already exists, not redeclaring") +when not declared(ptls_log_do_push_element_unsigned32): + proc ptls_log_do_push_element_unsigned32*(prefix: cstring; + prefix_len: csize_t; v: uint32): void {.cdecl, + importc: "ptls_log__do_push_element_unsigned32".} +else: + static : + hint("Declaration of " & "ptls_log_do_push_element_unsigned32" & + " already exists, not redeclaring") +when not declared(ptls_log_do_push_element_unsigned64): + proc ptls_log_do_push_element_unsigned64*(prefix: cstring; + prefix_len: csize_t; v: uint64): void {.cdecl, + importc: "ptls_log__do_push_element_unsigned64".} +else: + static : + hint("Declaration of " & "ptls_log_do_push_element_unsigned64" & + " already exists, not redeclaring") +when not declared(ptls_log_do_push_element_bool): + proc ptls_log_do_push_element_bool*(prefix: cstring; prefix_len: csize_t; + v: cint): void {.cdecl, + importc: "ptls_log__do_push_element_bool".} +else: + static : + hint("Declaration of " & "ptls_log_do_push_element_bool" & + " already exists, not redeclaring") +when not declared(ptls_log_do_push_appdata_element_unsafestr): + proc ptls_log_do_push_appdata_element_unsafestr*(includes_appdata: cint; + prefix: cstring; prefix_len: csize_t; s: cstring; l: csize_t): void {. + cdecl, importc: "ptls_log__do_push_appdata_element_unsafestr".} +else: + static : + hint("Declaration of " & "ptls_log_do_push_appdata_element_unsafestr" & + " already exists, not redeclaring") +when not declared(ptls_log_do_push_appdata_element_hexdump): + proc ptls_log_do_push_appdata_element_hexdump*(includes_appdata: cint; + prefix: cstring; prefix_len: csize_t; s: pointer; l: csize_t): void {. + cdecl, importc: "ptls_log__do_push_appdata_element_hexdump".} +else: + static : + hint("Declaration of " & "ptls_log_do_push_appdata_element_hexdump" & + " already exists, not redeclaring") +when not declared(ptls_log_do_write_start): + proc ptls_log_do_write_start*(point: ptr struct_st_ptls_log_point_t_536871788; + add_time: cint): void {.cdecl, + importc: "ptls_log__do_write_start".} +else: + static : + hint("Declaration of " & "ptls_log_do_write_start" & + " already exists, not redeclaring") +when not declared(ptls_log_do_write_end): + proc ptls_log_do_write_end*(point: ptr struct_st_ptls_log_point_t_536871788; + conn: ptr struct_st_ptls_log_conn_state_t_536871790; + get_sni: proc (a0: pointer): cstring {.cdecl.}; + get_sni_arg: pointer; includes_appdata: cint): cint {. + cdecl, importc: "ptls_log__do_write_end".} +else: + static : + hint("Declaration of " & "ptls_log_do_write_end" & + " already exists, not redeclaring") +when not declared(ptls_client_new): + proc ptls_client_new*(ctx: ptr ptls_context_t_536871632): ptr ptls_t_536871630 {. + cdecl, importc: "ptls_client_new".} +else: + static : + hint("Declaration of " & "ptls_client_new" & + " already exists, not redeclaring") +when not declared(ptls_server_new): + proc ptls_server_new*(ctx: ptr ptls_context_t_536871632): ptr ptls_t_536871630 {. + cdecl, importc: "ptls_server_new".} +else: + static : + hint("Declaration of " & "ptls_server_new" & + " already exists, not redeclaring") +when not declared(ptls_build_tls12_export_params): + proc ptls_build_tls12_export_params*(ctx: ptr ptls_context_t_536871632; + output: ptr ptls_buffer_t_536871644; + is_server: cint; session_reused: cint; + cipher: ptr ptls_cipher_suite_t_536871690; + master_secret: pointer; + hello_randoms: pointer; + next_send_record_iv: uint64; + server_name: cstring; + negotiated_protocol: ptls_iovec_t_536871640): cint {. + cdecl, importc: "ptls_build_tls12_export_params".} +else: + static : + hint("Declaration of " & "ptls_build_tls12_export_params" & + " already exists, not redeclaring") +when not declared(ptls_export): + proc ptls_export*(tls: ptr ptls_t_536871630; output: ptr ptls_buffer_t_536871644): cint {. + cdecl, importc: "ptls_export".} +else: + static : + hint("Declaration of " & "ptls_export" & " already exists, not redeclaring") +when not declared(ptls_import): + proc ptls_import*(ctx: ptr ptls_context_t_536871632; tls: ptr ptr ptls_t_536871630; + params: ptls_iovec_t_536871640): cint {.cdecl, + importc: "ptls_import".} +else: + static : + hint("Declaration of " & "ptls_import" & " already exists, not redeclaring") +when not declared(ptls_free): + proc ptls_free*(tls: ptr ptls_t_536871630): void {.cdecl, importc: "ptls_free".} +else: + static : + hint("Declaration of " & "ptls_free" & " already exists, not redeclaring") +when not declared(ptls_get_context): + proc ptls_get_context*(tls: ptr ptls_t_536871630): ptr ptls_context_t_536871632 {. + cdecl, importc: "ptls_get_context".} +else: + static : + hint("Declaration of " & "ptls_get_context" & + " already exists, not redeclaring") +when not declared(ptls_set_context): + proc ptls_set_context*(tls: ptr ptls_t_536871630; ctx: ptr ptls_context_t_536871632): void {. + cdecl, importc: "ptls_set_context".} +else: + static : + hint("Declaration of " & "ptls_set_context" & + " already exists, not redeclaring") +when not declared(ptls_get_async_job): + proc ptls_get_async_job*(tls: ptr ptls_t_536871630): ptr ptls_async_job_t_536871730 {. + cdecl, importc: "ptls_get_async_job".} +else: + static : + hint("Declaration of " & "ptls_get_async_job" & + " already exists, not redeclaring") +when not declared(ptls_get_client_random): + proc ptls_get_client_random*(tls: ptr ptls_t_536871630): ptls_iovec_t_536871640 {. + cdecl, importc: "ptls_get_client_random".} +else: + static : + hint("Declaration of " & "ptls_get_client_random" & + " already exists, not redeclaring") +when not declared(ptls_get_cipher): + proc ptls_get_cipher*(tls: ptr ptls_t_536871630): ptr ptls_cipher_suite_t_536871690 {. + cdecl, importc: "ptls_get_cipher".} +else: + static : + hint("Declaration of " & "ptls_get_cipher" & + " already exists, not redeclaring") +when not declared(ptls_find_cipher_suite): + proc ptls_find_cipher_suite*(cipher_suites: ptr ptr ptls_cipher_suite_t_536871690; + id: uint16): ptr ptls_cipher_suite_t_536871690 {. + cdecl, importc: "ptls_find_cipher_suite".} +else: + static : + hint("Declaration of " & "ptls_find_cipher_suite" & + " already exists, not redeclaring") +when not declared(ptls_get_protocol_version): + proc ptls_get_protocol_version*(tls: ptr ptls_t_536871630): uint16 {.cdecl, + importc: "ptls_get_protocol_version".} +else: + static : + hint("Declaration of " & "ptls_get_protocol_version" & + " already exists, not redeclaring") +when not declared(ptls_get_traffic_keys): + proc ptls_get_traffic_keys*(tls: ptr ptls_t_536871630; is_enc: cint; + key: ptr uint8; iv: ptr uint8; seq: ptr uint64): cint {. + cdecl, importc: "ptls_get_traffic_keys".} +else: + static : + hint("Declaration of " & "ptls_get_traffic_keys" & + " already exists, not redeclaring") +when not declared(ptls_get_server_name): + proc ptls_get_server_name*(tls: ptr ptls_t_536871630): cstring {.cdecl, + importc: "ptls_get_server_name".} +else: + static : + hint("Declaration of " & "ptls_get_server_name" & + " already exists, not redeclaring") +when not declared(ptls_set_server_name): + proc ptls_set_server_name*(tls: ptr ptls_t_536871630; server_name: cstring; + server_name_len: csize_t): cint {.cdecl, + importc: "ptls_set_server_name".} +else: + static : + hint("Declaration of " & "ptls_set_server_name" & + " already exists, not redeclaring") +when not declared(ptls_get_negotiated_protocol): + proc ptls_get_negotiated_protocol*(tls: ptr ptls_t_536871630): cstring {. + cdecl, importc: "ptls_get_negotiated_protocol".} +else: + static : + hint("Declaration of " & "ptls_get_negotiated_protocol" & + " already exists, not redeclaring") +when not declared(ptls_set_negotiated_protocol): + proc ptls_set_negotiated_protocol*(tls: ptr ptls_t_536871630; + protocol: cstring; protocol_len: csize_t): cint {. + cdecl, importc: "ptls_set_negotiated_protocol".} +else: + static : + hint("Declaration of " & "ptls_set_negotiated_protocol" & + " already exists, not redeclaring") +when not declared(ptls_handshake_is_complete): + proc ptls_handshake_is_complete*(tls: ptr ptls_t_536871630): cint {.cdecl, + importc: "ptls_handshake_is_complete".} +else: + static : + hint("Declaration of " & "ptls_handshake_is_complete" & + " already exists, not redeclaring") +when not declared(ptls_is_psk_handshake): + proc ptls_is_psk_handshake*(tls: ptr ptls_t_536871630): cint {.cdecl, + importc: "ptls_is_psk_handshake".} +else: + static : + hint("Declaration of " & "ptls_is_psk_handshake" & + " already exists, not redeclaring") +when not declared(ptls_is_ech_handshake): + proc ptls_is_ech_handshake*(tls: ptr ptls_t_536871630; config_id: ptr uint8; + kem: ptr ptr ptls_hpke_kem_t_536871698; + cipher: ptr ptr ptls_hpke_cipher_suite_t_536871706): cint {. + cdecl, importc: "ptls_is_ech_handshake".} +else: + static : + hint("Declaration of " & "ptls_is_ech_handshake" & + " already exists, not redeclaring") +when not declared(ptls_get_data_ptr): + proc ptls_get_data_ptr*(tls: ptr ptls_t_536871630): ptr pointer {.cdecl, + importc: "ptls_get_data_ptr".} +else: + static : + hint("Declaration of " & "ptls_get_data_ptr" & + " already exists, not redeclaring") +when not declared(ptls_get_log_state): + proc ptls_get_log_state*(tls: ptr ptls_t_536871630): ptr ptls_log_conn_state_t_536871794 {. + cdecl, importc: "ptls_get_log_state".} +else: + static : + hint("Declaration of " & "ptls_get_log_state" & + " already exists, not redeclaring") +when not declared(ptls_handshake): + proc ptls_handshake*(tls: ptr ptls_t_536871630; sendbuf: ptr ptls_buffer_t_536871644; + input: pointer; inlen: ptr csize_t; + args: ptr ptls_handshake_properties_t_536871784): cint {. + cdecl, importc: "ptls_handshake".} +else: + static : + hint("Declaration of " & "ptls_handshake" & + " already exists, not redeclaring") +when not declared(ptls_receive): + proc ptls_receive*(tls: ptr ptls_t_536871630; plaintextbuf: ptr ptls_buffer_t_536871644; + input: pointer; len: ptr csize_t): cint {.cdecl, + importc: "ptls_receive".} +else: + static : + hint("Declaration of " & "ptls_receive" & " already exists, not redeclaring") +when not declared(ptls_send): + proc ptls_send*(tls: ptr ptls_t_536871630; sendbuf: ptr ptls_buffer_t_536871644; + input: pointer; inlen: csize_t): cint {.cdecl, + importc: "ptls_send".} +else: + static : + hint("Declaration of " & "ptls_send" & " already exists, not redeclaring") +when not declared(ptls_update_key): + proc ptls_update_key*(tls: ptr ptls_t_536871630; request_update: cint): cint {. + cdecl, importc: "ptls_update_key".} +else: + static : + hint("Declaration of " & "ptls_update_key" & + " already exists, not redeclaring") +when not declared(ptls_is_server): + proc ptls_is_server*(tls: ptr ptls_t_536871630): cint {.cdecl, + importc: "ptls_is_server".} +else: + static : + hint("Declaration of " & "ptls_is_server" & + " already exists, not redeclaring") +when not declared(ptls_get_record_overhead): + proc ptls_get_record_overhead*(tls: ptr ptls_t_536871630): csize_t {.cdecl, + importc: "ptls_get_record_overhead".} +else: + static : + hint("Declaration of " & "ptls_get_record_overhead" & + " already exists, not redeclaring") +when not declared(ptls_send_alert): + proc ptls_send_alert*(tls: ptr ptls_t_536871630; sendbuf: ptr ptls_buffer_t_536871644; + level: uint8; description: uint8): cint {.cdecl, + importc: "ptls_send_alert".} +else: + static : + hint("Declaration of " & "ptls_send_alert" & + " already exists, not redeclaring") +when not declared(ptls_export_secret): + proc ptls_export_secret*(tls: ptr ptls_t_536871630; output: pointer; + outlen: csize_t; label: cstring; + context_value: ptls_iovec_t_536871640; is_early: cint): cint {. + cdecl, importc: "ptls_export_secret".} +else: + static : + hint("Declaration of " & "ptls_export_secret" & + " already exists, not redeclaring") +when not declared(ptls_build_certificate_message): + proc ptls_build_certificate_message*(buf: ptr ptls_buffer_t_536871644; + request_context: ptls_iovec_t_536871640; + certificates: ptr ptls_iovec_t_536871640; + num_certificates: csize_t; + ocsp_status: ptls_iovec_t_536871640): cint {. + cdecl, importc: "ptls_build_certificate_message".} +else: + static : + hint("Declaration of " & "ptls_build_certificate_message" & + " already exists, not redeclaring") +when not declared(ptls_calc_hash): + proc ptls_calc_hash*(algo: ptr ptls_hash_algorithm_t_536871686; + output: pointer; src: pointer; len: csize_t): cint {. + cdecl, importc: "ptls_calc_hash".} +else: + static : + hint("Declaration of " & "ptls_calc_hash" & + " already exists, not redeclaring") +when not declared(ptls_hmac_create): + proc ptls_hmac_create*(algo: ptr ptls_hash_algorithm_t_536871686; + key: pointer; key_size: csize_t): ptr ptls_hash_context_t_536871682 {. + cdecl, importc: "ptls_hmac_create".} +else: + static : + hint("Declaration of " & "ptls_hmac_create" & + " already exists, not redeclaring") +when not declared(ptls_hkdf_extract): + proc ptls_hkdf_extract*(hash: ptr ptls_hash_algorithm_t_536871686; + output: pointer; salt: ptls_iovec_t_536871640; + ikm: ptls_iovec_t_536871640): cint {.cdecl, + importc: "ptls_hkdf_extract".} +else: + static : + hint("Declaration of " & "ptls_hkdf_extract" & + " already exists, not redeclaring") +when not declared(ptls_hkdf_expand): + proc ptls_hkdf_expand*(hash: ptr ptls_hash_algorithm_t_536871686; + output: pointer; outlen: csize_t; prk: ptls_iovec_t_536871640; + info: ptls_iovec_t_536871640): cint {.cdecl, + importc: "ptls_hkdf_expand".} +else: + static : + hint("Declaration of " & "ptls_hkdf_expand" & + " already exists, not redeclaring") +when not declared(ptls_hkdf_expand_label): + proc ptls_hkdf_expand_label*(algo: ptr ptls_hash_algorithm_t_536871686; + output: pointer; outlen: csize_t; + secret: ptls_iovec_t_536871640; label: cstring; + hash_value: ptls_iovec_t_536871640; + label_prefix: cstring): cint {.cdecl, + importc: "ptls_hkdf_expand_label".} +else: + static : + hint("Declaration of " & "ptls_hkdf_expand_label" & + " already exists, not redeclaring") +when not declared(ptls_tls12_phash): + proc ptls_tls12_phash*(algo: ptr ptls_hash_algorithm_t_536871686; + output: pointer; outlen: csize_t; secret: ptls_iovec_t_536871640; + label: cstring; seed: ptls_iovec_t_536871640): cint {. + cdecl, importc: "ptls_tls12_phash".} +else: + static : + hint("Declaration of " & "ptls_tls12_phash" & + " already exists, not redeclaring") +when not declared(ptls_cipher_new): + proc ptls_cipher_new*(algo: ptr ptls_cipher_algorithm_t_536871662; + is_enc: cint; key: pointer): ptr ptls_cipher_context_t_536871660 {. + cdecl, importc: "ptls_cipher_new".} +else: + static : + hint("Declaration of " & "ptls_cipher_new" & + " already exists, not redeclaring") +when not declared(ptls_cipher_free): + proc ptls_cipher_free*(ctx: ptr ptls_cipher_context_t_536871660): void {. + cdecl, importc: "ptls_cipher_free".} +else: + static : + hint("Declaration of " & "ptls_cipher_free" & + " already exists, not redeclaring") +when not declared(ptls_aead_new): + proc ptls_aead_new*(aead: ptr ptls_aead_algorithm_t_536871674; + hash: ptr ptls_hash_algorithm_t_536871686; is_enc: cint; + secret: pointer; label_prefix: cstring): ptr ptls_aead_context_t_536871672 {. + cdecl, importc: "ptls_aead_new".} +else: + static : + hint("Declaration of " & "ptls_aead_new" & + " already exists, not redeclaring") +when not declared(ptls_aead_new_direct): + proc ptls_aead_new_direct*(aead: ptr ptls_aead_algorithm_t_536871674; + is_enc: cint; key: pointer; iv: pointer): ptr ptls_aead_context_t_536871672 {. + cdecl, importc: "ptls_aead_new_direct".} +else: + static : + hint("Declaration of " & "ptls_aead_new_direct" & + " already exists, not redeclaring") +when not declared(ptls_aead_free): + proc ptls_aead_free*(ctx: ptr ptls_aead_context_t_536871672): void {.cdecl, + importc: "ptls_aead_free".} +else: + static : + hint("Declaration of " & "ptls_aead_free" & + " already exists, not redeclaring") +when not declared(ptls_aead_xor_iv): + proc ptls_aead_xor_iv*(ctx: ptr ptls_aead_context_t_536871672; bytes: pointer; + len: csize_t): void {.cdecl, + importc: "ptls_aead_xor_iv".} +else: + static : + hint("Declaration of " & "ptls_aead_xor_iv" & + " already exists, not redeclaring") +when not declared(ptls_get_read_epoch): + proc ptls_get_read_epoch*(tls: ptr ptls_t_536871630): csize_t {.cdecl, + importc: "ptls_get_read_epoch".} +else: + static : + hint("Declaration of " & "ptls_get_read_epoch" & + " already exists, not redeclaring") +when not declared(ptls_handle_message): + proc ptls_handle_message*(tls: ptr ptls_t_536871630; + sendbuf: ptr ptls_buffer_t_536871644; + epoch_offsets: array[5'i64, csize_t]; + in_epoch: csize_t; input: pointer; inlen: csize_t; + properties: ptr ptls_handshake_properties_t_536871784): cint {. + cdecl, importc: "ptls_handle_message".} +else: + static : + hint("Declaration of " & "ptls_handle_message" & + " already exists, not redeclaring") +when not declared(ptls_client_handle_message): + proc ptls_client_handle_message*(tls: ptr ptls_t_536871630; + sendbuf: ptr ptls_buffer_t_536871644; + epoch_offsets: array[5'i64, csize_t]; + in_epoch: csize_t; input: pointer; + inlen: csize_t; + properties: ptr ptls_handshake_properties_t_536871784): cint {. + cdecl, importc: "ptls_client_handle_message".} +else: + static : + hint("Declaration of " & "ptls_client_handle_message" & + " already exists, not redeclaring") +when not declared(ptls_server_handle_message): + proc ptls_server_handle_message*(tls: ptr ptls_t_536871630; + sendbuf: ptr ptls_buffer_t_536871644; + epoch_offsets: array[5'i64, csize_t]; + in_epoch: csize_t; input: pointer; + inlen: csize_t; + properties: ptr ptls_handshake_properties_t_536871784): cint {. + cdecl, importc: "ptls_server_handle_message".} +else: + static : + hint("Declaration of " & "ptls_server_handle_message" & + " already exists, not redeclaring") +when not declared(ptls_aead_build_iv): + proc ptls_aead_build_iv*(algo: ptr ptls_aead_algorithm_t_536871674; + iv: ptr uint8; static_iv: ptr uint8; seq: uint64): void {. + cdecl, importc: "ptls_aead__build_iv".} +else: + static : + hint("Declaration of " & "ptls_aead_build_iv" & + " already exists, not redeclaring") +when not declared(ptls_key_schedule_update_hash): + proc ptls_key_schedule_update_hash*(sched: ptr ptls_key_schedule_t_536871636; + msg: ptr uint8; msglen: csize_t; + use_outer: cint): void {.cdecl, + importc: "ptls__key_schedule_update_hash".} +else: + static : + hint("Declaration of " & "ptls_key_schedule_update_hash" & + " already exists, not redeclaring") +when not declared(ptls_clear_memory): + var ptls_clear_memory* {.importc: "ptls_clear_memory".}: proc (a0: pointer; + a1: csize_t): void {.cdecl.} +else: + static : + hint("Declaration of " & "ptls_clear_memory" & + " already exists, not redeclaring") +when not declared(ptls_mem_equal): + var ptls_mem_equal* {.importc: "ptls_mem_equal".}: proc (a0: pointer; + a1: pointer; a2: csize_t): cint {.cdecl.} +else: + static : + hint("Declaration of " & "ptls_mem_equal" & + " already exists, not redeclaring") +when not declared(ptls_server_name_is_ipaddr): + proc ptls_server_name_is_ipaddr*(name: cstring): cint {.cdecl, + importc: "ptls_server_name_is_ipaddr".} +else: + static : + hint("Declaration of " & "ptls_server_name_is_ipaddr" & + " already exists, not redeclaring") +when not declared(ptls_ech_encode_config): + proc ptls_ech_encode_config*(buf: ptr ptls_buffer_t_536871644; + config_id: uint8; kem: ptr ptls_hpke_kem_t_536871698; + public_key: ptls_iovec_t_536871640; + ciphers: ptr ptr ptls_hpke_cipher_suite_t_536871706; + max_name_length: uint8; public_name: cstring): cint {. + cdecl, importc: "ptls_ech_encode_config".} +else: + static : + hint("Declaration of " & "ptls_ech_encode_config" & + " already exists, not redeclaring") +when not declared(ptls_load_certificates): + proc ptls_load_certificates*(ctx: ptr ptls_context_t_536871632; + cert_pem_file: cstring): cint {.cdecl, + importc: "ptls_load_certificates".} +else: + static : + hint("Declaration of " & "ptls_load_certificates" & + " already exists, not redeclaring") +when not declared(ptls_hpke_setup_base_s): + proc ptls_hpke_setup_base_s*(kem: ptr ptls_hpke_kem_t_536871698; + cipher: ptr ptls_hpke_cipher_suite_t_536871706; + pk_s: ptr ptls_iovec_t_536871640; + ctx: ptr ptr ptls_aead_context_t_536871672; + pk_r: ptls_iovec_t_536871640; info: ptls_iovec_t_536871640): cint {. + cdecl, importc: "ptls_hpke_setup_base_s".} +else: + static : + hint("Declaration of " & "ptls_hpke_setup_base_s" & + " already exists, not redeclaring") +when not declared(ptls_hpke_setup_base_r): + proc ptls_hpke_setup_base_r*(kem: ptr ptls_hpke_kem_t_536871698; + cipher: ptr ptls_hpke_cipher_suite_t_536871706; + keyex: ptr ptls_key_exchange_context_t_536871650; + ctx: ptr ptr ptls_aead_context_t_536871672; + pk_s: ptls_iovec_t_536871640; info: ptls_iovec_t_536871640): cint {. + cdecl, importc: "ptls_hpke_setup_base_r".} +else: + static : + hint("Declaration of " & "ptls_hpke_setup_base_r" & + " already exists, not redeclaring") +when not declared(ptls_hexdump): + proc ptls_hexdump*(dst: cstring; src: pointer; len: csize_t): cstring {.cdecl, + importc: "ptls_hexdump".} +else: + static : + hint("Declaration of " & "ptls_hexdump" & " already exists, not redeclaring") +when not declared(ptls_jsonescape): + proc ptls_jsonescape*(buf: cstring; s: cstring; len: csize_t): cstring {. + cdecl, importc: "ptls_jsonescape".} +else: + static : + hint("Declaration of " & "ptls_jsonescape" & + " already exists, not redeclaring") +when not declared(ptls_build_v4_mapped_v6_address): + proc ptls_build_v4_mapped_v6_address*(v6: ptr struct_in6_addr_536871792; + v4: ptr struct_in_addr_536871798): void {. + cdecl, importc: "ptls_build_v4_mapped_v6_address".} +else: + static : + hint("Declaration of " & "ptls_build_v4_mapped_v6_address" & + " already exists, not redeclaring") +when not declared(ptls_get_time): + var ptls_get_time* {.importc: "ptls_get_time".}: ptls_get_time_t_536871718 +else: + static : + hint("Declaration of " & "ptls_get_time" & + " already exists, not redeclaring") +when not declared(ptls_openssl_secp256r1): + var ptls_openssl_secp256r1* {.importc: "ptls_openssl_secp256r1".}: ptls_key_exchange_algorithm_t_536871654 +else: + static : + hint("Declaration of " & "ptls_openssl_secp256r1" & + " already exists, not redeclaring") +when not declared(ptls_openssl_secp384r1): + var ptls_openssl_secp384r1* {.importc: "ptls_openssl_secp384r1".}: ptls_key_exchange_algorithm_t_536871654 +else: + static : + hint("Declaration of " & "ptls_openssl_secp384r1" & + " already exists, not redeclaring") +when not declared(ptls_openssl_secp521r1): + var ptls_openssl_secp521r1* {.importc: "ptls_openssl_secp521r1".}: ptls_key_exchange_algorithm_t_536871654 +else: + static : + hint("Declaration of " & "ptls_openssl_secp521r1" & + " already exists, not redeclaring") +when not declared(ptls_openssl_x25519): + var ptls_openssl_x25519* {.importc: "ptls_openssl_x25519".}: ptls_key_exchange_algorithm_t_536871654 +else: + static : + hint("Declaration of " & "ptls_openssl_x25519" & + " already exists, not redeclaring") +when not declared(ptls_openssl_key_exchanges): + var ptls_openssl_key_exchanges* {.importc: "ptls_openssl_key_exchanges".}: ptr UncheckedArray[ + ptr ptls_key_exchange_algorithm_t_536871654] +else: + static : + hint("Declaration of " & "ptls_openssl_key_exchanges" & + " already exists, not redeclaring") +when not declared(ptls_openssl_key_exchanges_all): + var ptls_openssl_key_exchanges_all* {.importc: "ptls_openssl_key_exchanges_all".}: ptr UncheckedArray[ + ptr ptls_key_exchange_algorithm_t_536871654] +else: + static : + hint("Declaration of " & "ptls_openssl_key_exchanges_all" & + " already exists, not redeclaring") +when not declared(ptls_openssl_aes128ecb): + var ptls_openssl_aes128ecb* {.importc: "ptls_openssl_aes128ecb".}: ptls_cipher_algorithm_t_536871662 +else: + static : + hint("Declaration of " & "ptls_openssl_aes128ecb" & + " already exists, not redeclaring") +when not declared(ptls_openssl_aes128ctr): + var ptls_openssl_aes128ctr* {.importc: "ptls_openssl_aes128ctr".}: ptls_cipher_algorithm_t_536871662 +else: + static : + hint("Declaration of " & "ptls_openssl_aes128ctr" & + " already exists, not redeclaring") +when not declared(ptls_openssl_aes128gcm): + var ptls_openssl_aes128gcm* {.importc: "ptls_openssl_aes128gcm".}: ptls_aead_algorithm_t_536871674 +else: + static : + hint("Declaration of " & "ptls_openssl_aes128gcm" & + " already exists, not redeclaring") +when not declared(ptls_openssl_aes256ecb): + var ptls_openssl_aes256ecb* {.importc: "ptls_openssl_aes256ecb".}: ptls_cipher_algorithm_t_536871662 +else: + static : + hint("Declaration of " & "ptls_openssl_aes256ecb" & + " already exists, not redeclaring") +when not declared(ptls_openssl_aes256ctr): + var ptls_openssl_aes256ctr* {.importc: "ptls_openssl_aes256ctr".}: ptls_cipher_algorithm_t_536871662 +else: + static : + hint("Declaration of " & "ptls_openssl_aes256ctr" & + " already exists, not redeclaring") +when not declared(ptls_openssl_aes256gcm): + var ptls_openssl_aes256gcm* {.importc: "ptls_openssl_aes256gcm".}: ptls_aead_algorithm_t_536871674 +else: + static : + hint("Declaration of " & "ptls_openssl_aes256gcm" & + " already exists, not redeclaring") +when not declared(ptls_openssl_sha256): + var ptls_openssl_sha256* {.importc: "ptls_openssl_sha256".}: ptls_hash_algorithm_t_536871686 +else: + static : + hint("Declaration of " & "ptls_openssl_sha256" & + " already exists, not redeclaring") +when not declared(ptls_openssl_sha384): + var ptls_openssl_sha384* {.importc: "ptls_openssl_sha384".}: ptls_hash_algorithm_t_536871686 +else: + static : + hint("Declaration of " & "ptls_openssl_sha384" & + " already exists, not redeclaring") +when not declared(ptls_openssl_sha512): + var ptls_openssl_sha512* {.importc: "ptls_openssl_sha512".}: ptls_hash_algorithm_t_536871686 +else: + static : + hint("Declaration of " & "ptls_openssl_sha512" & + " already exists, not redeclaring") +when not declared(ptls_openssl_aes128gcmsha256): + var ptls_openssl_aes128gcmsha256* {.importc: "ptls_openssl_aes128gcmsha256".}: ptls_cipher_suite_t_536871690 +else: + static : + hint("Declaration of " & "ptls_openssl_aes128gcmsha256" & + " already exists, not redeclaring") +when not declared(ptls_openssl_aes256gcmsha384): + var ptls_openssl_aes256gcmsha384* {.importc: "ptls_openssl_aes256gcmsha384".}: ptls_cipher_suite_t_536871690 +else: + static : + hint("Declaration of " & "ptls_openssl_aes256gcmsha384" & + " already exists, not redeclaring") +when not declared(ptls_openssl_cipher_suites): + var ptls_openssl_cipher_suites* {.importc: "ptls_openssl_cipher_suites".}: ptr UncheckedArray[ + ptr ptls_cipher_suite_t_536871690] +else: + static : + hint("Declaration of " & "ptls_openssl_cipher_suites" & + " already exists, not redeclaring") +when not declared(ptls_openssl_cipher_suites_all): + var ptls_openssl_cipher_suites_all* {.importc: "ptls_openssl_cipher_suites_all".}: ptr UncheckedArray[ + ptr ptls_cipher_suite_t_536871690] +else: + static : + hint("Declaration of " & "ptls_openssl_cipher_suites_all" & + " already exists, not redeclaring") +when not declared(ptls_openssl_tls12_cipher_suites): + var ptls_openssl_tls12_cipher_suites* {. + importc: "ptls_openssl_tls12_cipher_suites".}: ptr UncheckedArray[ + ptr ptls_cipher_suite_t_536871690] +else: + static : + hint("Declaration of " & "ptls_openssl_tls12_cipher_suites" & + " already exists, not redeclaring") +when not declared(ptls_openssl_chacha20): + var ptls_openssl_chacha20* {.importc: "ptls_openssl_chacha20".}: ptls_cipher_algorithm_t_536871662 +else: + static : + hint("Declaration of " & "ptls_openssl_chacha20" & + " already exists, not redeclaring") +when not declared(ptls_openssl_chacha20poly1305): + var ptls_openssl_chacha20poly1305* {.importc: "ptls_openssl_chacha20poly1305".}: ptls_aead_algorithm_t_536871674 +else: + static : + hint("Declaration of " & "ptls_openssl_chacha20poly1305" & + " already exists, not redeclaring") +when not declared(ptls_openssl_chacha20poly1305sha256): + var ptls_openssl_chacha20poly1305sha256* + {.importc: "ptls_openssl_chacha20poly1305sha256".}: ptls_cipher_suite_t_536871690 +else: + static : + hint("Declaration of " & "ptls_openssl_chacha20poly1305sha256" & + " already exists, not redeclaring") +when not declared(ptls_openssl_tls12_ecdhe_rsa_aes128gcmsha256): + var ptls_openssl_tls12_ecdhe_rsa_aes128gcmsha256* + {.importc: "ptls_openssl_tls12_ecdhe_rsa_aes128gcmsha256".}: ptls_cipher_suite_t_536871690 +else: + static : + hint("Declaration of " & "ptls_openssl_tls12_ecdhe_rsa_aes128gcmsha256" & + " already exists, not redeclaring") +when not declared(ptls_openssl_tls12_ecdhe_ecdsa_aes128gcmsha256): + var ptls_openssl_tls12_ecdhe_ecdsa_aes128gcmsha256* + {.importc: "ptls_openssl_tls12_ecdhe_ecdsa_aes128gcmsha256".}: ptls_cipher_suite_t_536871690 +else: + static : + hint("Declaration of " & "ptls_openssl_tls12_ecdhe_ecdsa_aes128gcmsha256" & + " already exists, not redeclaring") +when not declared(ptls_openssl_tls12_ecdhe_rsa_aes256gcmsha384): + var ptls_openssl_tls12_ecdhe_rsa_aes256gcmsha384* + {.importc: "ptls_openssl_tls12_ecdhe_rsa_aes256gcmsha384".}: ptls_cipher_suite_t_536871690 +else: + static : + hint("Declaration of " & "ptls_openssl_tls12_ecdhe_rsa_aes256gcmsha384" & + " already exists, not redeclaring") +when not declared(ptls_openssl_tls12_ecdhe_ecdsa_aes256gcmsha384): + var ptls_openssl_tls12_ecdhe_ecdsa_aes256gcmsha384* + {.importc: "ptls_openssl_tls12_ecdhe_ecdsa_aes256gcmsha384".}: ptls_cipher_suite_t_536871690 +else: + static : + hint("Declaration of " & "ptls_openssl_tls12_ecdhe_ecdsa_aes256gcmsha384" & + " already exists, not redeclaring") +when not declared(ptls_openssl_tls12_ecdhe_rsa_chacha20poly1305sha256): + var ptls_openssl_tls12_ecdhe_rsa_chacha20poly1305sha256* + {.importc: "ptls_openssl_tls12_ecdhe_rsa_chacha20poly1305sha256".}: ptls_cipher_suite_t_536871690 +else: + static : + hint("Declaration of " & + "ptls_openssl_tls12_ecdhe_rsa_chacha20poly1305sha256" & + " already exists, not redeclaring") +when not declared(ptls_openssl_tls12_ecdhe_ecdsa_chacha20poly1305sha256): + var ptls_openssl_tls12_ecdhe_ecdsa_chacha20poly1305sha256* + {.importc: "ptls_openssl_tls12_ecdhe_ecdsa_chacha20poly1305sha256".}: ptls_cipher_suite_t_536871690 +else: + static : + hint("Declaration of " & + "ptls_openssl_tls12_ecdhe_ecdsa_chacha20poly1305sha256" & + " already exists, not redeclaring") +when not declared(ptls_openssl_bfecb): + var ptls_openssl_bfecb* {.importc: "ptls_openssl_bfecb".}: ptls_cipher_algorithm_t_536871662 +else: + static : + hint("Declaration of " & "ptls_openssl_bfecb" & + " already exists, not redeclaring") +when not declared(ptls_openssl_hpke_kem_p256sha256): + var ptls_openssl_hpke_kem_p256sha256* {. + importc: "ptls_openssl_hpke_kem_p256sha256".}: ptls_hpke_kem_t_536871698 +else: + static : + hint("Declaration of " & "ptls_openssl_hpke_kem_p256sha256" & + " already exists, not redeclaring") +when not declared(ptls_openssl_hpke_kem_p384sha384): + var ptls_openssl_hpke_kem_p384sha384* {. + importc: "ptls_openssl_hpke_kem_p384sha384".}: ptls_hpke_kem_t_536871698 +else: + static : + hint("Declaration of " & "ptls_openssl_hpke_kem_p384sha384" & + " already exists, not redeclaring") +when not declared(ptls_openssl_hpke_kem_x25519sha256): + var ptls_openssl_hpke_kem_x25519sha256* + {.importc: "ptls_openssl_hpke_kem_x25519sha256".}: ptls_hpke_kem_t_536871698 +else: + static : + hint("Declaration of " & "ptls_openssl_hpke_kem_x25519sha256" & + " already exists, not redeclaring") +when not declared(ptls_openssl_hpke_kems): + var ptls_openssl_hpke_kems* {.importc: "ptls_openssl_hpke_kems".}: ptr UncheckedArray[ + ptr ptls_hpke_kem_t_536871698] +else: + static : + hint("Declaration of " & "ptls_openssl_hpke_kems" & + " already exists, not redeclaring") +when not declared(ptls_openssl_hpke_aes128gcmsha256): + var ptls_openssl_hpke_aes128gcmsha256* {. + importc: "ptls_openssl_hpke_aes128gcmsha256".}: ptls_hpke_cipher_suite_t_536871706 +else: + static : + hint("Declaration of " & "ptls_openssl_hpke_aes128gcmsha256" & + " already exists, not redeclaring") +when not declared(ptls_openssl_hpke_aes128gcmsha512): + var ptls_openssl_hpke_aes128gcmsha512* {. + importc: "ptls_openssl_hpke_aes128gcmsha512".}: ptls_hpke_cipher_suite_t_536871706 +else: + static : + hint("Declaration of " & "ptls_openssl_hpke_aes128gcmsha512" & + " already exists, not redeclaring") +when not declared(ptls_openssl_hpke_aes256gcmsha384): + var ptls_openssl_hpke_aes256gcmsha384* {. + importc: "ptls_openssl_hpke_aes256gcmsha384".}: ptls_hpke_cipher_suite_t_536871706 +else: + static : + hint("Declaration of " & "ptls_openssl_hpke_aes256gcmsha384" & + " already exists, not redeclaring") +when not declared(ptls_openssl_hpke_chacha20poly1305sha256): + var ptls_openssl_hpke_chacha20poly1305sha256* + {.importc: "ptls_openssl_hpke_chacha20poly1305sha256".}: ptls_hpke_cipher_suite_t_536871706 +else: + static : + hint("Declaration of " & "ptls_openssl_hpke_chacha20poly1305sha256" & + " already exists, not redeclaring") +when not declared(ptls_openssl_hpke_cipher_suites): + var ptls_openssl_hpke_cipher_suites* {. + importc: "ptls_openssl_hpke_cipher_suites".}: ptr UncheckedArray[ + ptr ptls_hpke_cipher_suite_t_536871706] +else: + static : + hint("Declaration of " & "ptls_openssl_hpke_cipher_suites" & + " already exists, not redeclaring") +when not declared(ptls_openssl_random_bytes): + proc ptls_openssl_random_bytes*(buf: pointer; len: csize_t): void {.cdecl, + importc: "ptls_openssl_random_bytes".} +else: + static : + hint("Declaration of " & "ptls_openssl_random_bytes" & + " already exists, not redeclaring") +when not declared(ptls_openssl_create_key_exchange): + proc ptls_openssl_create_key_exchange*( + ctx: ptr ptr ptls_key_exchange_context_t_536871650; pkey: ptr EVP_PKEY_536871800): cint {. + cdecl, importc: "ptls_openssl_create_key_exchange".} +else: + static : + hint("Declaration of " & "ptls_openssl_create_key_exchange" & + " already exists, not redeclaring") +when not declared(ptls_openssl_lookup_signature_schemes): + proc ptls_openssl_lookup_signature_schemes*(key: ptr EVP_PKEY_536871800): ptr ptls_openssl_signature_scheme_t_536871806 {. + cdecl, importc: "ptls_openssl_lookup_signature_schemes".} +else: + static : + hint("Declaration of " & "ptls_openssl_lookup_signature_schemes" & + " already exists, not redeclaring") +when not declared(ptls_openssl_select_signature_scheme): + proc ptls_openssl_select_signature_scheme*( + available: ptr ptls_openssl_signature_scheme_t_536871806; + algorithms: ptr uint16; num_algorithms: csize_t): ptr ptls_openssl_signature_scheme_t_536871806 {. + cdecl, importc: "ptls_openssl_select_signature_scheme".} +else: + static : + hint("Declaration of " & "ptls_openssl_select_signature_scheme" & + " already exists, not redeclaring") +when not declared(ptls_openssl_init_sign_certificate): + proc ptls_openssl_init_sign_certificate*( + self: ptr ptls_openssl_sign_certificate_t_536871810; key: ptr EVP_PKEY_536871800): cint {. + cdecl, importc: "ptls_openssl_init_sign_certificate".} +else: + static : + hint("Declaration of " & "ptls_openssl_init_sign_certificate" & + " already exists, not redeclaring") +when not declared(ptls_openssl_dispose_sign_certificate): + proc ptls_openssl_dispose_sign_certificate*( + self: ptr ptls_openssl_sign_certificate_t_536871810): void {.cdecl, + importc: "ptls_openssl_dispose_sign_certificate".} +else: + static : + hint("Declaration of " & "ptls_openssl_dispose_sign_certificate" & + " already exists, not redeclaring") +when not declared(ptls_openssl_load_certificates): + proc ptls_openssl_load_certificates*(ctx: ptr ptls_context_t_536871632; + cert: ptr X509_536871812; + chain: ptr struct_stack_st_X509): cint {. + cdecl, importc: "ptls_openssl_load_certificates".} +else: + static : + hint("Declaration of " & "ptls_openssl_load_certificates" & + " already exists, not redeclaring") +when not declared(ptls_openssl_init_verify_certificate): + proc ptls_openssl_init_verify_certificate*( + self: ptr ptls_openssl_verify_certificate_t_536871826; + store: ptr X509_STORE_536871824): cint {.cdecl, + importc: "ptls_openssl_init_verify_certificate".} +else: + static : + hint("Declaration of " & "ptls_openssl_init_verify_certificate" & + " already exists, not redeclaring") +when not declared(ptls_openssl_dispose_verify_certificate): + proc ptls_openssl_dispose_verify_certificate*( + self: ptr ptls_openssl_verify_certificate_t_536871826): void {.cdecl, + importc: "ptls_openssl_dispose_verify_certificate".} +else: + static : + hint("Declaration of " & "ptls_openssl_dispose_verify_certificate" & + " already exists, not redeclaring") +when not declared(ptls_openssl_create_default_certificate_store): + proc ptls_openssl_create_default_certificate_store*(): ptr X509_STORE_536871824 {. + cdecl, importc: "ptls_openssl_create_default_certificate_store".} +else: + static : + hint("Declaration of " & "ptls_openssl_create_default_certificate_store" & + " already exists, not redeclaring") +when not declared(ptls_openssl_raw_pubkey_init_verify_certificate): + proc ptls_openssl_raw_pubkey_init_verify_certificate*( + self: ptr ptls_openssl_raw_pubkey_verify_certificate_t_536871816; + pubkey: ptr EVP_PKEY_536871800): cint {.cdecl, + importc: "ptls_openssl_raw_pubkey_init_verify_certificate".} +else: + static : + hint("Declaration of " & "ptls_openssl_raw_pubkey_init_verify_certificate" & + " already exists, not redeclaring") +when not declared(ptls_openssl_raw_pubkey_dispose_verify_certificate): + proc ptls_openssl_raw_pubkey_dispose_verify_certificate*( + self: ptr ptls_openssl_raw_pubkey_verify_certificate_t_536871816): void {. + cdecl, importc: "ptls_openssl_raw_pubkey_dispose_verify_certificate".} +else: + static : + hint("Declaration of " & + "ptls_openssl_raw_pubkey_dispose_verify_certificate" & + " already exists, not redeclaring") +when not declared(ptls_openssl_encrypt_ticket): + proc ptls_openssl_encrypt_ticket*(dst: ptr ptls_buffer_t_536871644; + src: ptls_iovec_t_536871640; cb: proc ( + a0: ptr uint8; a1: ptr uint8; a2: ptr EVP_CIPHER_CTX_536871828; + a3: ptr HMAC_CTX_536871830; a4: cint): cint {.cdecl.}): cint {.cdecl, + importc: "ptls_openssl_encrypt_ticket".} +else: + static : + hint("Declaration of " & "ptls_openssl_encrypt_ticket" & + " already exists, not redeclaring") +when not declared(ptls_openssl_decrypt_ticket): + proc ptls_openssl_decrypt_ticket*(dst: ptr ptls_buffer_t_536871644; + src: ptls_iovec_t_536871640; cb: proc ( + a0: ptr uint8; a1: ptr uint8; a2: ptr EVP_CIPHER_CTX_536871828; + a3: ptr HMAC_CTX_536871830; a4: cint): cint {.cdecl.}): cint {.cdecl, + importc: "ptls_openssl_decrypt_ticket".} +else: + static : + hint("Declaration of " & "ptls_openssl_decrypt_ticket" & + " already exists, not redeclaring") +when not declared(ptls_openssl_encrypt_ticket_evp): + proc ptls_openssl_encrypt_ticket_evp*(dst: ptr ptls_buffer_t_536871644; + src: ptls_iovec_t_536871640; cb: proc ( + a0: ptr uint8; a1: ptr uint8; a2: ptr EVP_CIPHER_CTX_536871828; + a3: ptr EVP_MAC_CTX_536871832; a4: cint): cint {.cdecl.}): cint {.cdecl, + importc: "ptls_openssl_encrypt_ticket_evp".} +else: + static : + hint("Declaration of " & "ptls_openssl_encrypt_ticket_evp" & + " already exists, not redeclaring") +when not declared(ptls_openssl_decrypt_ticket_evp): + proc ptls_openssl_decrypt_ticket_evp*(dst: ptr ptls_buffer_t_536871644; + src: ptls_iovec_t_536871640; cb: proc ( + a0: ptr uint8; a1: ptr uint8; a2: ptr EVP_CIPHER_CTX_536871828; + a3: ptr EVP_MAC_CTX_536871832; a4: cint): cint {.cdecl.}): cint {.cdecl, + importc: "ptls_openssl_decrypt_ticket_evp".} +else: + static : + hint("Declaration of " & "ptls_openssl_decrypt_ticket_evp" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_picotls_ctx_init): + proc ngtcp2_crypto_picotls_ctx_init*(cptls: ptr ngtcp2_crypto_picotls_ctx_536871836): void {. + cdecl, importc: "ngtcp2_crypto_picotls_ctx_init".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_picotls_ctx_init" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_picotls_from_epoch): + proc ngtcp2_crypto_picotls_from_epoch*(epoch: csize_t): ngtcp2_encryption_level_536871530 {. + cdecl, importc: "ngtcp2_crypto_picotls_from_epoch".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_picotls_from_epoch" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_picotls_from_ngtcp2_encryption_level): + proc ngtcp2_crypto_picotls_from_ngtcp2_encryption_level*( + encryption_level: ngtcp2_encryption_level_536871530): csize_t {.cdecl, + importc: "ngtcp2_crypto_picotls_from_ngtcp2_encryption_level".} +else: + static : + hint("Declaration of " & + "ngtcp2_crypto_picotls_from_ngtcp2_encryption_level" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_picotls_configure_server_context): + proc ngtcp2_crypto_picotls_configure_server_context*(ctx: ptr ptls_context_t_536871632): cint {. + cdecl, importc: "ngtcp2_crypto_picotls_configure_server_context".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_picotls_configure_server_context" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_picotls_configure_client_context): + proc ngtcp2_crypto_picotls_configure_client_context*(ctx: ptr ptls_context_t_536871632): cint {. + cdecl, importc: "ngtcp2_crypto_picotls_configure_client_context".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_picotls_configure_client_context" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_picotls_configure_server_session): + proc ngtcp2_crypto_picotls_configure_server_session*( + cptls: ptr ngtcp2_crypto_picotls_ctx_536871836): cint {.cdecl, + importc: "ngtcp2_crypto_picotls_configure_server_session".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_picotls_configure_server_session" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_picotls_configure_client_session): + proc ngtcp2_crypto_picotls_configure_client_session*( + cptls: ptr ngtcp2_crypto_picotls_ctx_536871836; conn: ptr ngtcp2_conn_536871522): cint {. + cdecl, importc: "ngtcp2_crypto_picotls_configure_client_session".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_picotls_configure_client_session" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_picotls_deconfigure_session): + proc ngtcp2_crypto_picotls_deconfigure_session*( + cptls: ptr ngtcp2_crypto_picotls_ctx_536871836): void {.cdecl, + importc: "ngtcp2_crypto_picotls_deconfigure_session".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_picotls_deconfigure_session" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_picotls_collect_extension): + proc ngtcp2_crypto_picotls_collect_extension*(ptls: ptr ptls_t_536871630; + properties: ptr struct_st_ptls_handshake_properties_t_536871782; + type_arg: uint16): cint {.cdecl, importc: "ngtcp2_crypto_picotls_collect_extension".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_picotls_collect_extension" & + " already exists, not redeclaring") +when not declared(ngtcp2_crypto_picotls_collected_extensions): + proc ngtcp2_crypto_picotls_collected_extensions*(ptls: ptr ptls_t_536871630; + properties: ptr struct_st_ptls_handshake_properties_t_536871782; + extensions: ptr ptls_raw_extension_t_536871776): cint {.cdecl, + importc: "ngtcp2_crypto_picotls_collected_extensions".} +else: + static : + hint("Declaration of " & "ngtcp2_crypto_picotls_collected_extensions" & + " already exists, not redeclaring") +when not declared(ptls_cred_buffer_set_from_file): + proc ptls_cred_buffer_set_from_file*(buf: ptr ptls_cred_buffer_t_536871840; + fname: cstring): cint {.cdecl, + importc: "ptls_cred_buffer_set_from_file".} +else: + static : + hint("Declaration of " & "ptls_cred_buffer_set_from_file" & + " already exists, not redeclaring") +when not declared(ptls_cred_buffer_set_from_string): + proc ptls_cred_buffer_set_from_string*(buf: ptr ptls_cred_buffer_t_536871840; + s: cstring): cint {.cdecl, importc: "ptls_cred_buffer_set_from_string".} +else: + static : + hint("Declaration of " & "ptls_cred_buffer_set_from_string" & + " already exists, not redeclaring") +when not declared(ptls_cred_buffer_dispose): + proc ptls_cred_buffer_dispose*(buf: ptr ptls_cred_buffer_t_536871840): void {. + cdecl, importc: "ptls_cred_buffer_dispose".} +else: + static : + hint("Declaration of " & "ptls_cred_buffer_dispose" & + " already exists, not redeclaring") +when not declared(ptls_cred_buffer_rewind): + proc ptls_cred_buffer_rewind*(buf: ptr ptls_cred_buffer_t_536871840): void {. + cdecl, importc: "ptls_cred_buffer_rewind".} +else: + static : + hint("Declaration of " & "ptls_cred_buffer_rewind" & + " already exists, not redeclaring") +when not declared(ptls_cred_buffer_gets): + proc ptls_cred_buffer_gets*(s: cstring; n: cint; buf: ptr ptls_cred_buffer_t_536871840): cstring {. + cdecl, importc: "ptls_cred_buffer_gets".} +else: + static : + hint("Declaration of " & "ptls_cred_buffer_gets" & + " already exists, not redeclaring") +when not declared(ptls_load_certificates_from_memory): + proc ptls_load_certificates_from_memory*(ctx: ptr ptls_context_t_536871632; + mem: ptr ptls_cred_buffer_t_536871840): cint {.cdecl, + importc: "ptls_load_certificates_from_memory".} +else: + static : + hint("Declaration of " & "ptls_load_certificates_from_memory" & + " already exists, not redeclaring") +when not declared(ptls_openssl_init_sign_certificate_with_mem_key): + proc ptls_openssl_init_sign_certificate_with_mem_key*( + self: ptr ptls_openssl_sign_certificate_t_536871810; buf: pointer; + len: cint): cint {.cdecl, importc: "ptls_openssl_init_sign_certificate_with_mem_key".} +else: + static : + hint("Declaration of " & "ptls_openssl_init_sign_certificate_with_mem_key" & + " already exists, not redeclaring") +when not declared(PF_INET): + when 2 is static: + const + PF_INET* = 2 ## Generated based on /usr/include/x86_64-linux-gnu/bits/socket.h:45:9 + else: + let PF_INET* = 2 ## Generated based on /usr/include/x86_64-linux-gnu/bits/socket.h:45:9 +else: + static : + hint("Declaration of " & "PF_INET" & " already exists, not redeclaring") +when not declared(PF_INET6): + when 10 is static: + const + PF_INET6* = 10 ## Generated based on /usr/include/x86_64-linux-gnu/bits/socket.h:53:9 + else: + let PF_INET6* = 10 ## Generated based on /usr/include/x86_64-linux-gnu/bits/socket.h:53:9 +else: + static : + hint("Declaration of " & "PF_INET6" & " already exists, not redeclaring") \ No newline at end of file diff --git a/ngtcp2.nimble b/ngtcp2.nimble index 39b5ae4..b3e0f38 100644 --- a/ngtcp2.nimble +++ b/ngtcp2.nimble @@ -3,7 +3,7 @@ version = "0.34.0" author = "Status Research & Development GmbH" description = "Nim wrapper around the ngtcp2 library" license = "MIT" -installDirs = @["sources", "build"] +installDirs = @["libs", "build"] installFiles = @["ngtcp2.nim"] requires "nim >= 1.6.0" diff --git a/prelude.nim b/prelude.nim index f8d1efb..f978cae 100644 --- a/prelude.nim +++ b/prelude.nim @@ -6,12 +6,28 @@ import nativesockets when defined(windows): {.passl: "-lws2_32".} + {.passc: "-D_WINDOWS".} else: - {.passC: "-DHAVE_UNISTD_H".} + {.passc: "-DHAVE_UNISTD_H".} + +when defined(macosx): + {.passl: "-L/opt/homebrew/opt/openssl@3/lib -lcrypto".} + {.passc: "-I/opt/homebrew/opt/openssl@3/include".} +else: + {.passl: "-lcrypto".} -# C include directories const root = currentSourcePath.parentDir -const sourceInclude = root/"sources"/"lib"/"includes" -const buildInclude = root/"build"/"lib"/"includes" +const libIncludes = root/"build"/"lib"/"includes" +const ngtcp2Crypto = root/"libs"/"ngtcp2"/"crypto" +const ngtcp2CryptoIncludes = root/"libs"/"ngtcp2"/"crypto"/"includes" +const ngtcp2Lib = root/"libs"/"ngtcp2"/"lib" +const ngtcp2LibIncludes = root/"libs"/"ngtcp2"/"lib"/"includes" +const picotlsInclude = root/"libs"/"picotls"/"include" + +{.passc: fmt"-I{libIncludes}".} +{.passc: fmt"-I{ngtcp2Crypto}".} +{.passc: fmt"-I{ngtcp2CryptoIncludes}".} +{.passc: fmt"-I{ngtcp2Lib}".} +{.passc: fmt"-I{ngtcp2LibIncludes}".} +{.passc: fmt"-I{picotlsInclude}".} -{.passc: fmt"-I{sourceInclude} -I{buildInclude}".} diff --git a/sources b/sources deleted file mode 160000 index 5f8bd54..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5f8bd54ad7e46d9d210b5caae70566d43c99a88a diff --git a/tests/testNgtcp2.nim b/tests/testNgtcp2.nim index dd26eae..d56d668 100644 --- a/tests/testNgtcp2.nim +++ b/tests/testNgtcp2.nim @@ -9,3 +9,13 @@ test "default settings": var transport_params: ngtcp2_transport_params ngtcp2_transport_params_default_versioned(NGTCP2_TRANSPORT_PARAMS_V1, addr transport_params) check transport_params.active_connection_id_limit > 0 + +test "ptls_instantiation": + var ctx: ptls_context_t + ctx.random_bytes = ptls_openssl_random_bytes + ctx.get_time = addr ptls_get_time + ctx.key_exchanges = cast[ptr ptr ptls_key_exchange_algorithm_t](addr ptls_openssl_key_exchanges[0]) + ctx.cipher_suites = cast[ptr ptr ptls_cipher_suite_t](ptls_openssl_cipher_suites[0]) + + var tls: ptr ptls_t = ptls_client_new(addr ctx); + check tls != nil