Fixed net_bind() for specified IP addresses on little endian systems
diff --git a/library/net.c b/library/net.c
index fedde16..7a1818d 100644
--- a/library/net.c
+++ b/library/net.c
@@ -90,12 +90,20 @@
  */
 #if defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && __BYTE_ORDER == __BIG_ENDIAN
 #define POLARSSL_HTONS(n) (n)
+#define POLARSSL_HTONL(n) (n)
 #else
-#define POLARSSL_HTONS(n) (((((unsigned short)(n) & 0xFF)) << 8) | (((unsigned short)(n) & 0xFF00) >> 8))
+#define POLARSSL_HTONS(n) ((((unsigned short)(n) & 0xFF      ) << 8 ) | \
+                           (((unsigned short)(n) & 0xFF00    ) >> 8 ))
+#define POLARSSL_HTONL(n) ((((unsigned long )(n) & 0xFF      ) << 24) | \
+                           (((unsigned long )(n) & 0xFF00    ) << 8 ) | \
+                           (((unsigned long )(n) & 0xFF0000  ) >> 8 ) | \
+                           (((unsigned long )(n) & 0xFF000000) >> 24))
 #endif
 
 unsigned short net_htons(unsigned short n);
+unsigned long  net_htonl(unsigned long  n);
 #define net_htons(n) POLARSSL_HTONS(n)
+#define net_htonl(n) POLARSSL_HTONL(n)
 
 /*
  * Initiate a TCP connection with host:port
@@ -171,7 +179,7 @@
     setsockopt( *fd, SOL_SOCKET, SO_REUSEADDR,
                 (const char *) &n, sizeof( n ) );
 
-    server_addr.sin_addr.s_addr = INADDR_ANY;
+    server_addr.sin_addr.s_addr = net_htonl( INADDR_ANY );
     server_addr.sin_family      = AF_INET;
     server_addr.sin_port        = net_htons( port );
 
@@ -185,11 +193,11 @@
                 break;
 
         if( n == 4 )
-            server_addr.sin_addr.s_addr =
+            server_addr.sin_addr.s_addr = net_htonl(
                 ( (uint32_t) c[0] << 24 ) |
                 ( (uint32_t) c[1] << 16 ) |
                 ( (uint32_t) c[2] <<  8 ) |
-                ( (uint32_t) c[3]       );
+                ( (uint32_t) c[3]       ) );
     }
 
     if( bind( *fd, (struct sockaddr *) &server_addr,