From e927820082d996b253fc46284c0f003ef62b8527 Mon Sep 17 00:00:00 2001 From: Shreyas Mahajan Date: Mon, 9 Feb 2026 23:36:31 +0530 Subject: [PATCH] Make headers self-contained and include-order independent Signed-off-by: Shreyas Mahajan Reviewed-by: Jakub Jelen Reviewed-by: Eshan Kelkar --- include/libssh/bytearray.h | 4 ++++ include/libssh/crypto.h | 10 ++++++---- include/libssh/dh-gex.h | 4 ++++ include/libssh/knownhosts.h | 4 ++++ include/libssh/libgcrypt.h | 3 ++- include/libssh/libmbedcrypto.h | 3 ++- include/libssh/messages.h | 5 +++++ include/libssh/misc.h | 6 ++++-- include/libssh/options.h | 7 +++++++ include/libssh/packet.h | 3 +++ include/libssh/poll.h | 6 +++++- include/libssh/scp.h | 4 ++++ include/libssh/sftp_priv.h | 5 +++++ include/libssh/wrapper.h | 5 +++-- tests/torture_key.h | 4 ++++ 15 files changed, 62 insertions(+), 11 deletions(-) diff --git a/include/libssh/bytearray.h b/include/libssh/bytearray.h index 0c0690d6..c1886ce5 100644 --- a/include/libssh/bytearray.h +++ b/include/libssh/bytearray.h @@ -20,6 +20,10 @@ #ifndef _BYTEARRAY_H #define _BYTEARRAY_H +#include "config.h" + +#include + #define _DATA_BYTE_CONST(data, pos) \ ((uint8_t)(((const uint8_t *)(data))[(pos)])) diff --git a/include/libssh/crypto.h b/include/libssh/crypto.h index dd7fa2e8..ca228ddd 100644 --- a/include/libssh/crypto.h +++ b/include/libssh/crypto.h @@ -25,14 +25,19 @@ #ifndef _CRYPTO_H_ #define _CRYPTO_H_ -#include #include "config.h" +#include + #ifdef HAVE_LIBGCRYPT #include #elif defined(HAVE_LIBMBEDCRYPTO) #include #endif +#ifdef HAVE_OPENSSL_ECDH_H +#include +#endif + #include "libssh/wrapper.h" #ifdef cbc_encrypt @@ -42,9 +47,6 @@ #undef cbc_decrypt #endif -#ifdef HAVE_OPENSSL_ECDH_H -#include -#endif #include "libssh/curve25519.h" #include "libssh/dh.h" #include "libssh/ecdh.h" diff --git a/include/libssh/dh-gex.h b/include/libssh/dh-gex.h index 0f547e37..077a22ec 100644 --- a/include/libssh/dh-gex.h +++ b/include/libssh/dh-gex.h @@ -23,6 +23,10 @@ #ifndef SRC_DH_GEX_H_ #define SRC_DH_GEX_H_ +#include "config.h" + +#include "libssh/libssh.h" + #ifdef __cplusplus extern "C" { #endif diff --git a/include/libssh/knownhosts.h b/include/libssh/knownhosts.h index b50018cd..96ab7a14 100644 --- a/include/libssh/knownhosts.h +++ b/include/libssh/knownhosts.h @@ -22,6 +22,10 @@ #ifndef SSH_KNOWNHOSTS_H_ #define SSH_KNOWNHOSTS_H_ +#include "config.h" + +#include "libssh/libssh.h" + #ifdef __cplusplus extern "C" { #endif diff --git a/include/libssh/libgcrypt.h b/include/libssh/libgcrypt.h index ce0beefd..6d912792 100644 --- a/include/libssh/libgcrypt.h +++ b/include/libssh/libgcrypt.h @@ -24,8 +24,9 @@ #include "config.h" #ifdef HAVE_LIBGCRYPT - #include +#include "libssh/libssh.h" + typedef gcry_md_hd_t SHACTX; typedef gcry_md_hd_t SHA256CTX; typedef gcry_md_hd_t SHA384CTX; diff --git a/include/libssh/libmbedcrypto.h b/include/libssh/libmbedcrypto.h index 71ebcccd..53042aef 100644 --- a/include/libssh/libmbedcrypto.h +++ b/include/libssh/libmbedcrypto.h @@ -27,7 +27,6 @@ #include "config.h" #ifdef HAVE_LIBMBEDCRYPTO - #include #include #include @@ -36,6 +35,8 @@ #include #include +#include "libssh/libssh.h" + typedef mbedtls_md_context_t *SHACTX; typedef mbedtls_md_context_t *SHA256CTX; typedef mbedtls_md_context_t *SHA384CTX; diff --git a/include/libssh/messages.h b/include/libssh/messages.h index 9dd6b06c..a54ebbf9 100644 --- a/include/libssh/messages.h +++ b/include/libssh/messages.h @@ -23,6 +23,11 @@ #include "config.h" +#include + +#include "libssh/callbacks.h" +#include "libssh/libssh.h" + struct ssh_auth_request { char *username; int method; diff --git a/include/libssh/misc.h b/include/libssh/misc.h index d4421a3d..132d197e 100644 --- a/include/libssh/misc.h +++ b/include/libssh/misc.h @@ -21,8 +21,9 @@ #ifndef MISC_H_ #define MISC_H_ -#ifdef _WIN32 +#include "config.h" +#ifdef _WIN32 # ifdef _MSC_VER # ifndef _SSIZE_T_DEFINED # undef ssize_t @@ -31,13 +32,14 @@ # define _SSIZE_T_DEFINED # endif /* _SSIZE_T_DEFINED */ # endif /* _MSC_VER */ - #else #include #include #endif /* _WIN32 */ #include +#include "libssh/libssh.h" + #ifdef __cplusplus extern "C" { #endif diff --git a/include/libssh/options.h b/include/libssh/options.h index 63b207fa..ddbb7f6a 100644 --- a/include/libssh/options.h +++ b/include/libssh/options.h @@ -21,6 +21,13 @@ #ifndef _OPTIONS_H #define _OPTIONS_H +#include "config.h" + +#include +#include + +#include "libssh/libssh.h" + #ifdef __cplusplus extern "C" { #endif diff --git a/include/libssh/packet.h b/include/libssh/packet.h index 531d7e4b..78ac95e6 100644 --- a/include/libssh/packet.h +++ b/include/libssh/packet.h @@ -21,6 +21,9 @@ #ifndef PACKET_H_ #define PACKET_H_ +#include "config.h" + +#include "libssh/callbacks.h" #include "libssh/wrapper.h" struct ssh_socket_struct; diff --git a/include/libssh/poll.h b/include/libssh/poll.h index 478764b6..123bcb39 100644 --- a/include/libssh/poll.h +++ b/include/libssh/poll.h @@ -24,8 +24,12 @@ #include "config.h" #ifdef HAVE_POLL - #include +#endif + +#include "libssh/libssh.h" + +#ifdef HAVE_POLL typedef struct pollfd ssh_pollfd_t; #else /* HAVE_POLL */ diff --git a/include/libssh/scp.h b/include/libssh/scp.h index 5d87fe5f..2b8d4f21 100644 --- a/include/libssh/scp.h +++ b/include/libssh/scp.h @@ -21,9 +21,13 @@ #ifndef _SCP_H #define _SCP_H +#include "config.h" + #include #include +#include "libssh/libssh.h" + enum ssh_scp_states { SSH_SCP_NEW, //Data structure just created SSH_SCP_WRITE_INITED, //Gave our intention to write diff --git a/include/libssh/sftp_priv.h b/include/libssh/sftp_priv.h index 4b578257..929f2a7e 100644 --- a/include/libssh/sftp_priv.h +++ b/include/libssh/sftp_priv.h @@ -21,7 +21,12 @@ #ifndef SFTP_PRIV_H #define SFTP_PRIV_H +#include "config.h" + #include +#include + +#include "libssh/sftp.h" #ifdef __cplusplus extern "C" { diff --git a/include/libssh/wrapper.h b/include/libssh/wrapper.h index 9214a928..e13dcb02 100644 --- a/include/libssh/wrapper.h +++ b/include/libssh/wrapper.h @@ -21,13 +21,14 @@ #ifndef WRAPPER_H_ #define WRAPPER_H_ +#include "config.h" + #include -#include "config.h" -#include "libssh/libssh.h" #include "libssh/libcrypto.h" #include "libssh/libgcrypt.h" #include "libssh/libmbedcrypto.h" +#include "libssh/libssh.h" #ifdef __cplusplus extern "C" { diff --git a/tests/torture_key.h b/tests/torture_key.h index 5eacdab9..89ff284e 100644 --- a/tests/torture_key.h +++ b/tests/torture_key.h @@ -24,8 +24,12 @@ #ifndef _TORTURE_KEY_H #define _TORTURE_KEY_H +#include "config.h" + #include +#include "libssh/libssh.h" + #define TORTURE_TESTKEY_PASSWORD "libssh-rocks" /* Return the encrypted private key in a new OpenSSH format */