Make 'port' a string in NET module

- avoids dependency on snprintf
- allows using "smtps" instead of "456" if desired
diff --git a/programs/ssl/dtls_client.c b/programs/ssl/dtls_client.c
index cc0d051..6ac83d7 100644
--- a/programs/ssl/dtls_client.c
+++ b/programs/ssl/dtls_client.c
@@ -61,7 +61,7 @@
 #include "mbedtls/certs.h"
 #include "mbedtls/timing.h"
 
-#define SERVER_PORT 4433
+#define SERVER_PORT "4433"
 #define SERVER_NAME "localhost"
 #define SERVER_ADDR "127.0.0.1" /* forces IPv4 */
 #define MESSAGE     "Echo this"
@@ -142,8 +142,7 @@
     /*
      * 1. Start the connection
      */
-    mbedtls_printf( "  . Connecting to udp/%s/%4d...", SERVER_NAME,
-                                               SERVER_PORT );
+    mbedtls_printf( "  . Connecting to udp/%s/%s...", SERVER_NAME, SERVER_PORT );
     fflush( stdout );
 
     if( ( ret = mbedtls_net_connect( &server_fd, SERVER_ADDR,
diff --git a/programs/ssl/dtls_server.c b/programs/ssl/dtls_server.c
index 3ad10ce..69da1d3 100644
--- a/programs/ssl/dtls_server.c
+++ b/programs/ssl/dtls_server.c
@@ -167,7 +167,7 @@
     printf( "  . Bind on udp/*/4433 ..." );
     fflush( stdout );
 
-    if( ( ret = mbedtls_net_bind( &listen_fd, NULL, 4433, MBEDTLS_NET_PROTO_UDP ) ) != 0 )
+    if( ( ret = mbedtls_net_bind( &listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_UDP ) ) != 0 )
     {
         printf( " failed\n  ! mbedtls_net_bind returned %d\n\n", ret );
         goto exit;
@@ -274,7 +274,7 @@
     }
 
     /* With UDP, bind_fd is hijacked by client_fd, so bind a new one */
-    if( ( ret = mbedtls_net_bind( &listen_fd, NULL, 4433, MBEDTLS_NET_PROTO_UDP ) ) != 0 )
+    if( ( ret = mbedtls_net_bind( &listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_UDP ) ) != 0 )
     {
         printf( " failed\n  ! mbedtls_net_bind returned -0x%x\n\n", -ret );
         goto exit;
diff --git a/programs/ssl/ssl_client1.c b/programs/ssl/ssl_client1.c
index b672305..c1da0a2 100644
--- a/programs/ssl/ssl_client1.c
+++ b/programs/ssl/ssl_client1.c
@@ -60,7 +60,7 @@
 
 #include <string.h>
 
-#define SERVER_PORT 4433
+#define SERVER_PORT "4433"
 #define SERVER_NAME "localhost"
 #define GET_REQUEST "GET / HTTP/1.0\r\n\r\n"
 
@@ -132,8 +132,7 @@
     /*
      * 1. Start the connection
      */
-    mbedtls_printf( "  . Connecting to tcp/%s/%4d...", SERVER_NAME,
-                                               SERVER_PORT );
+    mbedtls_printf( "  . Connecting to tcp/%s/%s...", SERVER_NAME, SERVER_PORT );
     fflush( stdout );
 
     if( ( ret = mbedtls_net_connect( &server_fd, SERVER_NAME,
diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c
index b8a4a62..b24d704 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -70,7 +70,7 @@
 
 #define DFL_SERVER_NAME         "localhost"
 #define DFL_SERVER_ADDR         NULL
-#define DFL_SERVER_PORT         4433
+#define DFL_SERVER_PORT         "4433"
 #define DFL_REQUEST_PAGE        "/"
 #define DFL_REQUEST_SIZE        -1
 #define DFL_DEBUG_LEVEL         0
@@ -272,7 +272,7 @@
 {
     const char *server_name;    /* hostname of the server (client only)     */
     const char *server_addr;    /* address of the server (client only)      */
-    int server_port;            /* port on which the ssl service runs       */
+    const char *server_port;    /* port on which the ssl service runs       */
     int debug_level;            /* level of debugging                       */
     int nbio;                   /* should I/O be blocking?                  */
     uint32_t read_timeout;      /* timeout on mbedtls_ssl_read() in milliseconds    */
@@ -502,11 +502,7 @@
         else if( strcmp( p, "server_addr" ) == 0 )
             opt.server_addr = q;
         else if( strcmp( p, "server_port" ) == 0 )
-        {
-            opt.server_port = atoi( q );
-            if( opt.server_port < 1 || opt.server_port > 65535 )
-                goto usage;
-        }
+            opt.server_port = q;
         else if( strcmp( p, "dtls" ) == 0 )
         {
             int t = atoi( q );
@@ -1026,7 +1022,7 @@
     if( opt.server_addr == NULL)
         opt.server_addr = opt.server_name;
 
-    mbedtls_printf( "  . Connecting to %s/%s/%-4d...",
+    mbedtls_printf( "  . Connecting to %s/%s/%s...",
             opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp",
             opt.server_addr, opt.server_port );
     fflush( stdout );
diff --git a/programs/ssl/ssl_fork_server.c b/programs/ssl/ssl_fork_server.c
index bafaa01..26855a2 100644
--- a/programs/ssl/ssl_fork_server.c
+++ b/programs/ssl/ssl_fork_server.c
@@ -202,7 +202,7 @@
     mbedtls_printf( "  . Bind on https://localhost:4433/ ..." );
     fflush( stdout );
 
-    if( ( ret = mbedtls_net_bind( &listen_fd, NULL, 4433, MBEDTLS_NET_PROTO_TCP ) ) != 0 )
+    if( ( ret = mbedtls_net_bind( &listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP ) ) != 0 )
     {
         mbedtls_printf( " failed\n  ! mbedtls_net_bind returned %d\n\n", ret );
         goto exit;
diff --git a/programs/ssl/ssl_mail_client.c b/programs/ssl/ssl_mail_client.c
index c06d0c0..f16eb87 100644
--- a/programs/ssl/ssl_mail_client.c
+++ b/programs/ssl/ssl_mail_client.c
@@ -84,7 +84,7 @@
 #endif
 
 #define DFL_SERVER_NAME         "localhost"
-#define DFL_SERVER_PORT         465
+#define DFL_SERVER_PORT         "465"
 #define DFL_USER_NAME           "user"
 #define DFL_USER_PWD            "password"
 #define DFL_MAIL_FROM           ""
@@ -140,7 +140,7 @@
 struct options
 {
     const char *server_name;    /* hostname of the server (client only)     */
-    int server_port;            /* port on which the ssl service runs       */
+    const char *server_port;    /* port on which the ssl service runs       */
     int debug_level;            /* level of debugging                       */
     int authentication;         /* if authentication is required            */
     int mode;                   /* SSL/TLS (0) or STARTTLS (1)              */
@@ -416,11 +416,7 @@
         if( strcmp( p, "server_name" ) == 0 )
             opt.server_name = q;
         else if( strcmp( p, "server_port" ) == 0 )
-        {
-            opt.server_port = atoi( q );
-            if( opt.server_port < 1 || opt.server_port > 65535 )
-                goto usage;
-        }
+            opt.server_port = q;
         else if( strcmp( p, "debug_level" ) == 0 )
         {
             opt.debug_level = atoi( q );
@@ -566,7 +562,7 @@
     /*
      * 2. Start the connection
      */
-    mbedtls_printf( "  . Connecting to tcp/%s/%-4d...", opt.server_name,
+    mbedtls_printf( "  . Connecting to tcp/%s/%s...", opt.server_name,
                                                 opt.server_port );
     fflush( stdout );
 
diff --git a/programs/ssl/ssl_pthread_server.c b/programs/ssl/ssl_pthread_server.c
index 3af66d0..3a137e3 100644
--- a/programs/ssl/ssl_pthread_server.c
+++ b/programs/ssl/ssl_pthread_server.c
@@ -448,7 +448,7 @@
     mbedtls_printf( "  . Bind on https://localhost:4433/ ..." );
     fflush( stdout );
 
-    if( ( ret = mbedtls_net_bind( &listen_fd, NULL, 4433, MBEDTLS_NET_PROTO_TCP ) ) != 0 )
+    if( ( ret = mbedtls_net_bind( &listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP ) ) != 0 )
     {
         mbedtls_printf( " failed\n  ! mbedtls_net_bind returned %d\n\n", ret );
         goto exit;
diff --git a/programs/ssl/ssl_server.c b/programs/ssl/ssl_server.c
index f2f969c..6535ec9 100644
--- a/programs/ssl/ssl_server.c
+++ b/programs/ssl/ssl_server.c
@@ -161,7 +161,7 @@
     mbedtls_printf( "  . Bind on https://localhost:4433/ ..." );
     fflush( stdout );
 
-    if( ( ret = mbedtls_net_bind( &listen_fd, NULL, 4433, MBEDTLS_NET_PROTO_TCP ) ) != 0 )
+    if( ( ret = mbedtls_net_bind( &listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP ) ) != 0 )
     {
         mbedtls_printf( " failed\n  ! mbedtls_net_bind returned %d\n\n", ret );
         goto exit;
diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index 6ac2406..763cccf 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -91,7 +91,7 @@
 #endif
 
 #define DFL_SERVER_ADDR         NULL
-#define DFL_SERVER_PORT         4433
+#define DFL_SERVER_PORT         "4433"
 #define DFL_DEBUG_LEVEL         0
 #define DFL_NBIO                0
 #define DFL_READ_TIMEOUT        0
@@ -346,7 +346,7 @@
 struct options
 {
     const char *server_addr;    /* address on which the ssl service runs    */
-    int server_port;            /* port on which the ssl service runs       */
+    const char *server_port;    /* port on which the ssl service runs       */
     int debug_level;            /* level of debugging                       */
     int nbio;                   /* should I/O be blocking?                  */
     uint32_t read_timeout;      /* timeout on mbedtls_ssl_read() in milliseconds    */
@@ -931,11 +931,7 @@
         *q++ = '\0';
 
         if( strcmp( p, "server_port" ) == 0 )
-        {
-            opt.server_port = atoi( q );
-            if( opt.server_port < 1 || opt.server_port > 65535 )
-                goto usage;
-        }
+            opt.server_port = q;
         else if( strcmp( p, "server_addr" ) == 0 )
             opt.server_addr = q;
         else if( strcmp( p, "dtls" ) == 0 )
@@ -1558,7 +1554,7 @@
     /*
      * 2. Setup the listening TCP socket
      */
-    mbedtls_printf( "  . Bind on %s://%s:%-4d/ ...",
+    mbedtls_printf( "  . Bind on %s://%s:%s/ ...",
             opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp",
             opt.server_addr ? opt.server_addr : "*",
             opt.server_port );
@@ -1906,7 +1902,7 @@
 #if defined(MBEDTLS_SSL_PROTO_DTLS)
     if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM )
     {
-        mbedtls_printf( "  . Re-bind on udp://%s:%-4d/ ...",
+        mbedtls_printf( "  . Re-bind on udp://%s:%s/ ...",
                 opt.server_addr ? opt.server_addr : "*",
                 opt.server_port );
         fflush( stdout );