aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libssh/misc.h9
-rw-r--r--include/libssh/priv.h18
-rw-r--r--src/misc.c17
3 files changed, 18 insertions, 26 deletions
diff --git a/include/libssh/misc.h b/include/libssh/misc.h
index 1e69b069..128e2ba9 100644
--- a/include/libssh/misc.h
+++ b/include/libssh/misc.h
@@ -33,15 +33,6 @@ int ssh_analyze_banner(ssh_session session, int server, int *ssh1, int *ssh2);
int ssh_is_ipaddr_v4(const char *str);
int ssh_is_ipaddr(const char *str);
-#ifndef HAVE_NTOHLL
-/* macro for byte ordering */
-uint64_t ntohll(uint64_t);
-#endif
-
-#ifndef HAVE_HTONLL
-#define htonll(x) ntohll((x))
-#endif
-
/* list processing */
struct ssh_list {
diff --git a/include/libssh/priv.h b/include/libssh/priv.h
index 2e41225f..5dd65bd4 100644
--- a/include/libssh/priv.h
+++ b/include/libssh/priv.h
@@ -361,6 +361,24 @@ int ssh_connector_remove_event(ssh_connector connector);
#define CLOSE_SOCKET(s) do { if ((s) != SSH_INVALID_SOCKET) { _XCLOSESOCKET(s); (s) = SSH_INVALID_SOCKET;} } while(0)
+#ifndef HAVE_HTONLL
+# ifdef WORDS_BIGENDIAN
+# define htonll(x) (x)
+# else
+# define htonll(x) \
+ (((uint64_t)htonl((x) & 0xFFFFFFFF) << 32) | htonl((x) >> 32))
+# endif
+#endif
+
+#ifndef HAVE_NTOHLL
+# ifdef WORDS_BIGENDIAN
+# define ntohll(x) (x)
+# else
+# define ntohll(x) \
+ (((uint64_t)ntohl((x) & 0xFFFFFFFF) << 32) | ntohl((x) >> 32))
+# endif
+#endif
+
void ssh_agent_state_free(void *data);
#endif /* _LIBSSH_PRIV_H */
diff --git a/src/misc.c b/src/misc.c
index fe62b448..5618366f 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -290,23 +290,6 @@ int ssh_is_ipaddr(const char *str) {
#endif /* _WIN32 */
-#ifndef HAVE_NTOHLL
-uint64_t ntohll(uint64_t a) {
-#ifdef WORDS_BIGENDIAN
- return a;
-#else /* WORDS_BIGENDIAN */
- return (((uint64_t)(a) << 56) | \
- (((uint64_t)(a) << 40) & 0xff000000000000ULL) | \
- (((uint64_t)(a) << 24) & 0xff0000000000ULL) | \
- (((uint64_t)(a) << 8) & 0xff00000000ULL) | \
- (((uint64_t)(a) >> 8) & 0xff000000ULL) | \
- (((uint64_t)(a) >> 24) & 0xff0000ULL) | \
- (((uint64_t)(a) >> 40) & 0xff00ULL) | \
- ((uint64_t)(a) >> 56));
-#endif /* WORDS_BIGENDIAN */
-}
-#endif /* HAVE_NTOHLL */
-
char *ssh_lowercase(const char* str) {
char *new, *p;