Fix: session start time wasn't set server side
diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index e28c835..e6ce88c 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -1540,25 +1540,24 @@
          */
         ssl->state++;
 
+#if defined(POLARSSL_HAVE_TIME)
+        ssl->session_negotiate->start = time( NULL );
+#endif
+
 #if defined(POLARSSL_SSL_SESSION_TICKETS)
-        if( ssl->handshake->new_session_ticket == 0 )
+        if( ssl->handshake->new_session_ticket != 0 )
+        {
+            ssl->session_negotiate->length = n = 0;
+            memset( ssl->session_negotiate->id, 0, 32 );
+        }
+        else
+#endif /* POLARSSL_SSL_SESSION_TICKETS */
         {
             ssl->session_negotiate->length = n = 32;
             if( ( ret = ssl->f_rng( ssl->p_rng, ssl->session_negotiate->id,
                                     n ) ) != 0 )
                 return( ret );
         }
-        else
-        {
-            ssl->session_negotiate->length = n = 0;
-            memset( ssl->session_negotiate->id, 0, 32 );
-        }
-#else
-        ssl->session_negotiate->length = n = 32;
-        if( ( ret = ssl->f_rng( ssl->p_rng, ssl->session_negotiate->id,
-                                n ) ) != 0 )
-            return( ret );
-#endif /* POLARSSL_SSL_SESSION_TICKETS */
     }
     else
     {
@@ -2719,6 +2718,7 @@
 {
     int ret;
     size_t tlen;
+    uint32_t lifetime = (uint32_t) ssl->ticket_lifetime;
 
     SSL_DEBUG_MSG( 2, ( "=> write new session ticket" ) );
 
@@ -2735,10 +2735,11 @@
      * 8  .  9   ticket_len (n)
      * 10 .  9+n ticket content
      */
-    ssl->out_msg[4] = 0x00;
-    ssl->out_msg[5] = 0x00;
-    ssl->out_msg[6] = 0x00;
-    ssl->out_msg[7] = 0x00;
+
+    ssl->out_msg[4] = ( lifetime >> 24 ) & 0xFF;
+    ssl->out_msg[5] = ( lifetime >> 16 ) & 0xFF;
+    ssl->out_msg[6] = ( lifetime >>  8 ) & 0xFF;
+    ssl->out_msg[7] = ( lifetime       ) & 0xFF;
 
     if( ( ret = ssl_write_ticket( ssl, &tlen ) ) != 0 )
     {