/*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#pragma once
#include <memory>
-#include <sys/uio.h>
#include <folly/io/IOBuf.h>
#include <folly/io/async/AsyncSocketBase.h>
#include <folly/io/async/DelayedDestruction.h>
#include <folly/io/async/EventBase.h>
#include <folly/io/async/ssl/OpenSSLPtrTypes.h>
+#include <folly/portability/SysUio.h>
#include <openssl/ssl.h>
*/
virtual ssl::X509UniquePtr getPeerCert() const { return nullptr; }
+ /**
+ * The local certificate used for this connection. May be null
+ */
+ virtual const X509* getSelfCert() const {
+ return nullptr;
+ }
+
/**
* @return True iff end of record tracking is enabled
*/
return false;
}
+ /**
+ * Suggested buffer size, allocated for read operations,
+ * if callback is movable and supports folly::IOBuf
+ */
+
+ virtual size_t maxBufferSize() const {
+ return 64 * 1024; // 64K
+ }
+
/**
* readBufferAvailable() will be invoked when data has been successfully
* read.
*/
virtual void readBufferAvailable(std::unique_ptr<IOBuf> /*readBuf*/)
- noexcept {};
+ noexcept {}
/**
* readEOF() will be invoked when the transport is closed.