Из источника кода сообщение об ошибке приходит от https://github.com/droe/sslsplit/blob/887215504a7324d4ce49327618934e66eeed8c27/privsep.c#L355:
log_dbg_printf("Received privsep req type %02x sz %zd on srvsock %i\n",
req[0], n, srvsock);
Переключатель чуть ниже показывает, что req[0]
сопоставляется с переменными, префикс которых равен PRIVSEP_REQ_
.
Если вы вернетесь в начале того же файла, у вас будут следующие определения:
/* command byte */
#define PRIVSEP_REQ_CLOSE 0 /* closing command socket */
#define PRIVSEP_REQ_OPENFILE 1 /* open content log file */
#define PRIVSEP_REQ_OPENFILE_P 2 /* open content log file w/mkpath */
#define PRIVSEP_REQ_OPENSOCK 3 /* open socket and pass fd */
#define PRIVSEP_REQ_CERTFILE 4 /* open cert file in certgendir */
Таким образом, случай 2 - «открыть файл журнала содержимого с помощью mkpath».
Он делает то же, что и в случае 1 «открыть файл журнала содержимого», за исключением того, что он включает функцию mkpath в privsep_server_openfile_verify
и privsep_server_openfile
.
Первая функция фактически не использует этот параметр.
Второй, если он включен, создает каталог для файла журнала, если он еще не существует.
Подробнее о происходящем см. https://github.com/droe/sslsplit/blob/887215504a7324d4ce49327618934e66eeed8c27/privsep.c#L188.