[sr-dev] git:master:6cf9b05b: core: use system MD5 on Solaris

Spencer Thomason spencer at whiteskycommunications.com
Tue Aug 9 09:17:57 CEST 2016


Module: kamailio
Branch: master
Commit: 6cf9b05b11fca3c0a2013176d9702cafbbcb5115
URL: https://github.com/kamailio/kamailio/commit/6cf9b05b11fca3c0a2013176d9702cafbbcb5115

Author: Spencer Thomason <spencer at whiteskycommunications.com>
Committer: Spencer Thomason <spencer at whiteskycommunications.com>
Date: 2016-08-08T16:40:14-07:00

core: use system MD5 on Solaris

- Allows use of SPARC optimized functions

---

Modified: Makefile.defs
Modified: md5.c
Modified: md5.h

---

Diff:  https://github.com/kamailio/kamailio/commit/6cf9b05b11fca3c0a2013176d9702cafbbcb5115.diff
Patch: https://github.com/kamailio/kamailio/commit/6cf9b05b11fca3c0a2013176d9702cafbbcb5115.patch

---

diff --git a/Makefile.defs b/Makefile.defs
index af5fd45..240fea5 100644
--- a/Makefile.defs
+++ b/Makefile.defs
@@ -1832,7 +1832,7 @@ ifeq ($(CC_NAME), suncc)
 endif
 	OLD_SOLARIS= $(shell echo "$(OSREL)" | \
 				sed -e 's/^5\.[0-6][^0-9]*$$/yes/' )
-	LIBS+= -L$(LOCALBASE)/lib -lxnet -lsocket -lnsl
+	LIBS+= -L$(LOCALBASE)/lib -lxnet -lsocket -lnsl -lmd5
 ifeq	($(OLD_SOLARIS), yes)
 		LIBS+=-lposix4
 else
diff --git a/md5.c b/md5.c
index a0a036a..d675dd1 100644
--- a/md5.c
+++ b/md5.c
@@ -22,6 +22,8 @@
 
 #include "md5.h"
 
+#ifndef __OS_solaris
+
 #define PUT_64BIT_LE(cp, value) do {					\
 	(cp)[7] = (value) >> 56;					\
 	(cp)[6] = (value) >> 48;					\
@@ -247,3 +249,5 @@ MD5Transform(u_int32_t state[4], const u_int8_t block[MD5_BLOCK_LENGTH])
 	state[2] += c;
 	state[3] += d;
 }
+
+#endif /* __OS_solaris */
diff --git a/md5.h b/md5.h
index f094d10..02715b8 100644
--- a/md5.h
+++ b/md5.h
@@ -15,6 +15,8 @@
 #ifndef _MD5_H_
 #define _MD5_H_
 
+#ifndef __OS_solaris
+
 #define	MD5_BLOCK_LENGTH		64
 #define	MD5_DIGEST_LENGTH		16
 #define	MD5_DIGEST_STRING_LENGTH	(MD5_DIGEST_LENGTH * 2 + 1)
@@ -22,13 +24,6 @@
 /* Probably not the proper place, but will do for Debian: */
 #include <sys/types.h>
 
-/* fix types for Sun Solaris */
-#if defined(__SVR4) || defined(__sun)
-    typedef uint8_t u_int8_t;
-    typedef uint32_t u_int32_t;
-    typedef uint64_t u_int64_t;
-#endif
-
 typedef struct MD5Context {
 	u_int32_t state[4];			/* state */
 	u_int64_t count;			/* number of bits, mod 2^64 */
@@ -49,4 +44,14 @@ static inline void MD5Final(char buf[MD5_DIGEST_LENGTH], MD5_CTX *ctx) {
 	U_MD5Final((unsigned char *)buf, ctx);
 }
 
+#else /* __OS_solaris */
+#include <md5.h>
+
+#define U_MD5Update(ctx, input, len) \
+	MD5Update(ctx, input, len)
+#define U_MD5Final(digest, ctx) \
+	MD5Final(digest, ctx)
+
+#endif /* __OS_solaris */
+
 #endif /* _MD5_H_ */




More information about the sr-dev mailing list