Перейти до вмісту

Perforce Helix Core Server (p4d)

Запускає p4 -Ztag -p <address> infoєдина проба в цьому проєкті, яка викликає зовнішній бінарний файл замість того, щоб напряму працювати з мережевим протоколом або HTTP. Див. чому нижче.

targets:
- id: p4d-main
product: p4d
address: p4d.example.com:1666

Потрібен CLI p4 на машині, де працює enodia

Section titled “Потрібен CLI p4 на машині, де працює enodia”

Це не вимога до облікових даних чи мережі — поруч із самою enodia має бути встановлений справжній бінарний файл (власний клієнт командного рядка Perforce, який можна вільно завантажити). Відсутній бінарний файл дає зрозумілу помилку, а не маскується під мережеву проблему. Якщо p4 немає в $PATH, вкажіть шлях через options.binary (у Windows це працює так само, достатньо вказати p4.exe):

targets:
- id: p4d-main
product: p4d
address: p4d.example.com:1666
options:
binary: /opt/perforce/bin/p4

Чому CLI, а не клієнт мережевого протоколу

Section titled “Чому CLI, а не клієнт мережевого протоколу”

Власний RPC-протокол Perforce було повністю відтворено методом зворотної розробки наживо (захоплення пакетів плюс справжній бінарний файл p4 проти справжнього робочого проксі), і написаний вручну клієнт коректно відтворював увесь handshake — це підтверджено побайтово порівнянням із захопленням. Але саме цей перевірено коректний handshake справжні прямі сервери p4d мовчки відкидають (обовʼязковий TLS і обмеження частоти запитів наживо виключено: жодної помилки, жодного скидання зʼєднання, просто немає відповіді), тоді як справжній бінарний файл p4 підключається до тих самих адрес без жодних проблем. Щоб не випускати пробу, яка працює лише з проксі, і ця проба, і Perforce Proxy натомість викликають власний CLI p4 оператора.

timeout (для кожної цілі окремо, з відкатом до defaults.timeout) застосовується до підпроцесу p4 так само, як і до власного транспорту будь-якої іншої проби. Тут це має цілком конкретне значення: процес p4, що застряг на підключенні до недосяжного прямого сервера, зависає без відповіді й без скидання на рівні TCP — саме та поведінка, що описана вище, — тож без тайм-ауту він загальмував би весь прогін збору, замість того щоб завершитися помилкою лише для цієї однієї цілі. (Виправлено в 1.2.1 — попередня версія взагалі не передавала тайм-аут підпроцесу.)

Немає — підтверджено наживо, що info повністю відповідає без автентифікації на справжніх робочих серверах.

Перевірка ідентичності вендора

Section titled “Перевірка ідентичності вендора”

Відповідь із полем proxyVersion означає, що за адресою насправді Perforce Proxy, а не прямий сервер, — ця проба відхиляє її, а не повідомляє версію іншого продукту, так само як p4p у зворотному напрямку відхиляє відповідь прямого сервера.

Не той самий продукт, що Perforce Helix Swarm

Section titled “Не той самий продукт, що Perforce Helix Swarm”

perforce-swarm — це вебінтерфейс Perforce для код-ревʼю, який опитується через HTTP, — інший продукт, ніж сам сервер p4d, якому присвячено цю сторінку.

  • version — напр. 2024.2, розібрано з serverVersion у формі P4D/LINUX26X86_64/2024.2/2726408 (2025/02/27)
  • extra.raw — повний нерозібраний рядок serverVersion
  • extra.serverID, extra.serverServices, якщо є

Зіставляється з NVD і БДУ ФСТЕК, якщо налаштовано блок cve:.

Резолвер життєвого циклу

Section titled “Резолвер життєвого циклу”

Немає — Perforce є пропрієтарним продуктом, для нього немає сторінки на endoflife.date під жодним із випробуваних slug (підтверджено 404) і немає публічних релізів на GitHub, на які можна було б відкотитися. Лише для інвентаризації, так само як Gentoo/ Kali Linux.