if (iret == 0)
goto out;
tmplog += iret;
- last_isspace = 0;
break;
case LOG_FMT_EXPR: // sample expression, may be request or response
if (ret == 0)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_CLIENTIP: // %ci
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_CLIENTPORT: // %cp
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_FRONTENDIP: // %fi
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_FRONTENDPORT: // %fp
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_BACKENDIP: // %bi
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_BACKENDPORT: // %bp
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_SERVERIP: // %si
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_SERVERPORT: // %sp
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_DATE: // %t = accept date
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_tr: // %tr = start of request date
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_DATEGMT: // %T = accept date, GMT
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_trg: // %trg = start of request date, GMT
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_DATELOCAL: // %Tl = accept date, local
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_trl: // %trl = start of request date, local
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_TS: // %Ts
iret = snprintf(tmplog, dst + maxsize - tmplog, "%04X", (unsigned int)logs->accept_date.tv_sec);
if (iret < 0 || iret > dst + maxsize - tmplog)
goto out;
- last_isspace = 0;
tmplog += iret;
} else {
ret = ltoa_o(logs->accept_date.tv_sec, tmplog, dst + maxsize - tmplog);
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
}
break;
iret = snprintf(tmplog, dst + maxsize - tmplog, "%02X",(unsigned int)logs->accept_date.tv_usec/1000);
if (iret < 0 || iret > dst + maxsize - tmplog)
goto out;
- last_isspace = 0;
tmplog += iret;
} else {
if ((dst + maxsize - tmplog) < 4)
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
}
break;
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_FRONTEND_XPRT: // %ft
LOGCHAR('~');
if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
- last_isspace = 0;
break;
#ifdef USE_OPENSSL
case LOG_FMT_SSL_CIPHER: // %sslc
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_SSL_VERSION: // %sslv
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
#endif
case LOG_FMT_BACKEND: // %b
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_SERVER: // %s
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_Th: // %Th = handshake time
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_Ti: // %Ti = HTTP idle time
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_TR: // %TR = HTTP request time
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_TQ: // %Tq = Th + Ti + TR
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_TW: // %Tw
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_TC: // %Tc
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_Tr: // %Tr
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_TD: // %Td
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_Ta: // %Ta = active time = Tt - Th - Ti
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_TT: // %Tt = total time
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_TU: // %Tu = total time seen by user = Tt - Ti
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_STATUS: // %ST
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_BYTES: // %B
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_BYTES_UP: // %U
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_CCLIENT: // %CC
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_CSERVER: // %CS
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_TERMSTATE: // %ts
LOGCHAR(sess_term_cond[(s_flags & SF_ERR_MASK) >> SF_ERR_SHIFT]);
LOGCHAR(sess_fin_state[(s_flags & SF_FINST_MASK) >> SF_FINST_SHIFT]);
*tmplog = '\0';
- last_isspace = 0;
break;
case LOG_FMT_TERMSTATE_CK: // %tsc, same as TS with cookie state (for mode HTTP)
LOGCHAR(sess_fin_state[(s_flags & SF_FINST_MASK) >> SF_FINST_SHIFT]);
LOGCHAR((txn && (be->ck_opts & PR_CK_ANY)) ? sess_cookie[(txn->flags & TX_CK_MASK) >> TX_CK_SHIFT] : '-');
LOGCHAR((txn && (be->ck_opts & PR_CK_ANY)) ? sess_set_cookie[(txn->flags & TX_SCK_MASK) >> TX_SCK_SHIFT] : '-');
- last_isspace = 0;
break;
case LOG_FMT_ACTCONN: // %ac
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_FECONN: // %fc
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_BECONN: // %bc
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_SRVCONN: // %sc
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_RETRIES: // %rc
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_SRVQUEUE: // %sq
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_BCKQUEUE: // %bq
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_HDRREQUEST: // %hr
LOGCHAR('}');
if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
- last_isspace = 0;
}
break;
LOGCHAR('-');
if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
- last_isspace = 0;
}
}
break;
}
}
LOGCHAR('}');
- last_isspace = 0;
if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
}
LOGCHAR('-');
if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
- last_isspace = 0;
}
}
break;
tmplog = ret;
if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
- last_isspace = 0;
break;
case LOG_FMT_HTTP_PATH: // %HP
if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
- last_isspace = 0;
break;
case LOG_FMT_HTTP_PATH_ONLY: // %HPO
if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
- last_isspace = 0;
break;
case LOG_FMT_HTTP_QUERY: // %HQ
if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
- last_isspace = 0;
break;
case LOG_FMT_HTTP_URI: // %HU
if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
- last_isspace = 0;
break;
case LOG_FMT_HTTP_METHOD: // %HM
if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
- last_isspace = 0;
break;
case LOG_FMT_HTTP_VERSION: // %HV
if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
- last_isspace = 0;
break;
case LOG_FMT_COUNTER: // %rt
iret = snprintf(tmplog, dst + maxsize - tmplog, "%04X", uniq_id);
if (iret < 0 || iret > dst + maxsize - tmplog)
goto out;
- last_isspace = 0;
tmplog += iret;
} else {
ret = ltoa_o(uniq_id, tmplog, dst + maxsize - tmplog);
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
}
break;
iret = snprintf(tmplog, dst + maxsize - tmplog, "%04X", fe->log_count);
if (iret < 0 || iret > dst + maxsize - tmplog)
goto out;
- last_isspace = 0;
tmplog += iret;
} else {
ret = ultoa_o(fe->log_count, tmplog, dst + maxsize - tmplog);
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
}
break;
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
case LOG_FMT_PID: // %pid
iret = snprintf(tmplog, dst + maxsize - tmplog, "%04X", pid);
if (iret < 0 || iret > dst + maxsize - tmplog)
goto out;
- last_isspace = 0;
tmplog += iret;
} else {
ret = ltoa_o(pid, tmplog, dst + maxsize - tmplog);
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
}
break;
if (ret == NULL)
goto out;
tmplog = ret;
- last_isspace = 0;
break;
}
+ if (tmp->type != LOG_FMT_SEPARATOR)
+ last_isspace = 0; // not a separator, hence not a space
}
out: