]> git.ipfire.org Git - thirdparty/openssl.git/blame - test/ossl_shim/packeted_bio.h
Following the license change, modify the boilerplates in test/
[thirdparty/openssl.git] / test / ossl_shim / packeted_bio.h
CommitLineData
92ab7db6 1/*
6738bf14 2 * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
eef977aa 3 *
909f1a2e 4 * Licensed under the Apache License 2.0 (the "License"). You may not use
92ab7db6
MC
5 * this file except in compliance with the License. You can obtain a copy
6 * in the file LICENSE in the source distribution or at
7 * https://www.openssl.org/source/license.html
8 */
eef977aa
MC
9
10#ifndef HEADER_PACKETED_BIO
11#define HEADER_PACKETED_BIO
12
7b73b7be 13#include <openssl/base.h>
eef977aa
MC
14#include <openssl/bio.h>
15
eef977aa 16// PacketedBioCreate creates a filter BIO which implements a reliable in-order
7b73b7be
MC
17// blocking datagram socket. It internally maintains a clock and honors
18// |BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT| based on it.
eef977aa 19//
7b73b7be
MC
20// During a |BIO_read|, the peer may signal the filter BIO to simulate a
21// timeout. If |advance_clock| is true, it automatically advances the clock and
22// continues reading, subject to the read deadline. Otherwise, it fails
23// immediately. The caller must then call |PacketedBioAdvanceClock| before
24// retrying |BIO_read|.
25bssl::UniquePtr<BIO> PacketedBioCreate(bool advance_clock);
26
27// PacketedBioGetClock returns the current time for |bio|.
28timeval PacketedBioGetClock(const BIO *bio);
29
30// PacketedBioAdvanceClock advances |bio|'s internal clock and returns true if
31// there is a pending timeout. Otherwise, it returns false.
32bool PacketedBioAdvanceClock(BIO *bio);
eef977aa
MC
33
34
35#endif // HEADER_PACKETED_BIO