TLS: Session resumption, under the EXPERIMENTAL_TLS_RESUME build option.
[exim.git] / src / src / macros.h
index f98d5e6bdf8b7e14854ab813b7f6809c0b988de4..e3f1f4c281b77e086ab18fd4db79e1b8adc308e8 100644 (file)
@@ -435,11 +435,12 @@ enum {
 /* Options bits for logging. Those that have values < BITWORDSIZE can be used
 in calls to log_write(). The others are put into later words in log_selector
 and are only ever tested independently, so they do not need bit mask
-declarations. The Li_all value is recognized specially by decode_bits(). */
+declarations. The Li_all value is recognized specially by decode_bits().
+Add also to log_options[] when creating new ones. */
 
 #define LOG_BIT(name) Li_##name = IOTA(Li_iota), L_##name = BIT(Li_##name)
 
-enum {
+enum logbit {
   Li_all = -1,
 
   Li_iota = IOTA_INIT(0),
@@ -495,6 +496,7 @@ enum {
   Li_tls_certificate_verified,
   Li_tls_cipher,
   Li_tls_peerdn,
+  Li_tls_resumption,
   Li_tls_sni,
   Li_unknown_in_list,
 
@@ -1077,5 +1079,21 @@ should not be one active. */
 #define AUTH_ITEM_IGN64        BIT(2)
 
 
+/* Flags for tls_{in,out}_resumption */
+#define RESUME_SUPPORTED       BIT(0)
+#define RESUME_CLIENT_REQUESTED        BIT(1)
+#define RESUME_CLIENT_SUGGESTED        BIT(2)
+#define RESUME_SERVER_TICKET   BIT(3)
+#define RESUME_USED            BIT(4)
+
+#define RESUME_DECODE_STRING \
+         US"not requested or offered : 0x02 :client requested, no server ticket" \
+    ": 0x04 : 0x05 : 0x06 :client offered session, no server action" \
+    ": 0x08 :no client request: 0x0A :client requested new ticket, server provided" \
+    ": 0x0C :client offered session, not used: 0x0E :client offered session, server only provided new ticket" \
+    ": 0x10 :session resumed unasked: 0x12 :session resumed unasked" \
+    ": 0x14 : 0x15 : 0x16 :session resumed" \
+    ": 0x18 :session resumed unasked: 0x1A :session resumed unasked" \
+    ": 0x1C :session resumed: 0x1E :session resumed, also new ticket"
 
 /* End of macros.h */