И что мешает это сделать ? в шапке давно этот метод описан:
Цитата:
На Playstation3 открываем настройки сети, выбираем специальные, пролистываем до пункта "Использовать прокси" , нажимаем использовать.
Вводим адрес, который указан в exposed via (в данном примере 192.168.и далее), порт ставим 8080.
Код:
#define PKGI_USER_AGENT "Mozilla/5.0 (PLAYSTATION 3; 1.00)"
...
void pkgi_curl_init(CURL *curl)
{
// Set user agent string
curl_easy_setopt(curl, CURLOPT_USERAGENT, PKGI_USER_AGENT);
// don't verify the certificate's name against host
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
// don't verify the peer's SSL certificate
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
// Set SSL VERSION to TLS 1.2
curl_easy_setopt(curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
// Set timeout for the connection to build
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 20L);
// Follow redirects
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
// maximum number of redirects allowed
curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 20L);
// Fail the request if the HTTP code returned is equal to or larger than 400
curl_easy_setopt(curl, CURLOPT_FAILONERROR, 1L);
}
Изменения USER_AGENT ничего не дало, как я писал ранее
Inpos
09.10.2023 20:04
Цитата:
Сообщение от in1975
(Сообщение 1275241)
И что мешает это сделать ? в шапке давно этот метод описан:
На Playstation3 открываем настройки сети, выбираем специальные, пролистываем до пункта "Использовать прокси" , нажимаем использовать.
Вводим адрес, который указан в exposed via (в данном примере 192.168.и далее), порт ставим 8080.
Это такая шутка, да? Я спрашивал, как это сделать программно? Как из кода PKGi обратиться к системе и вытащить структуру с параметрами сети, где проверить (в коде, а не глазами), есть ли прокся и, если есть, то взять хост и порт, конкатенацией составить строку "http://хост:порт" и передать в
Изменения USER_AGENT ничего не дало, как я писал ранее
Это я понял и в первый раз ))
Er_dag_za
09.10.2023 20:28
А что с русификатором Persona 5? То он выдает http ошибку, два раза было что он все-таки начал загрузку(прямую), но на 100% выдаёт ошибку целостности.
ErikPshat
10.10.2023 04:26
Цитата:
Сообщение от Er_dag_za
(Сообщение 1275251)
То он выдает http ошибку
Читайте в шапке темы вкладку Ошибки, там всё расписано.
Цитата:
Сообщение от Er_dag_za
(Сообщение 1275251)
на 100% выдаёт ошибку целостности.
Исправлена SHA-256 для русификатора Persona 5. Перекачайте с Гитхаба...
in1975
10.10.2023 08:31
Inpos, Да Вас не поймешь. Тут Вы писали, что не хотите делать это в pkgi.
Для фоновой загрузки не надо ничего править в коде pkgi, там прокси уже из системы берется (если он есть), ибо это официальный метод скачки.
Inpos
10.10.2023 09:02
Цитата:
Сообщение от in1975
(Сообщение 1275265)
Inpos, Да Вас не поймешь. Тут Вы писали, что не хотите делать это в pkgi.
Я, наверное, пишу на инопланетном. Или одно из двух. Я писал, что не хочу делать "настройки". "Настройки"... Такие окошечки с полями для ввода адреса прокси и кнопочками ОК и Отменить. Вторым пунктом в том же сообщении, что Вы указываете, сказано - использовать хост и порт из настроек ОС. Оба эти пункта являются вариантами решения одной единственной цели:
Цитата:
В инициализацию lubcurl, в PKGi можно добавить set_opt для использования прокси. Здесь есть два варианта
О чём написано в самом начале того сообщения.
Как Вы же мне сами и написали, есть исходный код и мне надо дерзать. Я готов дерзать, но в SDK PS3 я не шарю от слова "совсем".
Цитата:
Для фоновой загрузки не надо ничего править в коде pkgi, там прокси уже из системы берется (если он есть), ибо это официальный метод скачки.
Мне кажется (или это только в моей голове), что я достаточно объяснил причины доработки прямой загрузки. Даже, если Вы с ними не согласны, не вижу причин отказать мне, хотя бы, в спортивном интересе.
Inpos добавил 10.10.2023 в 09:02
Уже который день мы топчемся на одном месте. Народ, кто-нибудь знает, какой Си-шный заголовок подключить и какую функцию вызвать, чтобы получить хост и порт прокси из параметров сети ОС PS3?
ErikPshat
10.10.2023 09:16
Цитата:
Сообщение от Inpos
(Сообщение 1275267)
Как Вы же мне сами и написали, есть исходный код и мне надо дерзать. Я готов дерзать, но в SDK PS3 я не шарю от слова "совсем"
Объясните проще, что вы хотите добавить в исходном коде в эту секцию?
Inpos
10.10.2023 09:49
Цитата:
Сообщение от ErikPshat
(Сообщение 1275269)
Объясните проще, что вы хотите добавить в исходном коде в эту секцию?
Т.е. ответа на вопрос "какой функцией прочитать параметры прокси из системных настроек ОС" мне не получить тут, как я понимаю. В указанной секции кода можно добавить:
- обращение к ОС, чтобы получить параметры сети
- извлечение из параметров сети строк хоста и порта прокси
- если эти строки есть и не пустые, тогда сформировать строку http://хост:порт (например, http://192.168.1.1:8080) и вызвать:
Inpos добавил 10.10.2023 в 09:48
понятно, что "http://192.168.1.1:8080" должна быть значением переменной
Inpos добавил 10.10.2023 в 09:49
Цитата:
Сообщение от ErikPshat
(Сообщение 1275269)
Объясните проще, что вы хотите добавить в исходном коде в эту секцию?
А вообще, для этого существуют пул-реквесты. Неужели я так сложно спрашиваю?
ErikPshat
10.10.2023 10:43
Цитата:
Сообщение от Inpos
(Сообщение 1275270)
CURLOPT_PROXY
А такая команда на CURL для PS3 имеется?
И вообще, какой ты хочешгь прокси? 192.168.1.1 не пойдёт, это локальный адрес в домашней сети.
Inpos
10.10.2023 10:57
Цитата:
Сообщение от ErikPshat
(Сообщение 1275277)
А такая команда на CURL для PS3 имеется?
Это не команда, а опция. Не думаю, что порт на PS3 урезали для чего-то. Сама libcurl поддерживает прокси с самого своего рождения.
Цитата:
И вообще, какой ты хочешгь прокси? 192.168.1.1 не пойдёт, это локальный адрес в домашней сети.
Ещё чуть-чуть и я начну между строк ругаться матом. Хост и порт прокси брать вызовом функции (мне никто здесь так и не ответил, какой) из параметров ОС. 192.168.1.1 здесь, как пример. Если пользователь в ОС задал ходить через прокси, то libcurl, увидев, что прокси прописан в системе, задаёт опцию у себя, используя хост и порт из параметров системы. АВТОМАТОМ.
ErikPshat
10.10.2023 11:20
Цитата:
Сообщение от Inpos
(Сообщение 1275278)
Ещё чуть-чуть и я начну между строк ругаться матом. Хост и порт прокси брать вызовом функции (мне никто здесь так и не ответил, какой) из параметров ОС.
Какие параметры ОС ты пропишешь в настройках сети, такие и будет брать программа при соединении. Пропишешь там соединение через прокси, значит прога так и будет соединяться. Я щас точно начну кричать матом.
Цитата:
Сообщение от Inpos
(Сообщение 1275278)
Это не команда, а опция.
Хорошо, через прогу тоже можно выставить опцию. Например, если там указана опция PKGI_USER_AGENT, то в начале файла исходников видно что подставляется:
Какие параметры ОС ты пропишешь в настройках сети, такие и будет брать программа при соединении. Пропишешь там соединение через прокси, значит прога так и будет соединяться
Это было, когда PKGi использовал встроенный клиент ОС. После переезда на libcurl, за соединения теперь отвечает сама libcurl. Вы можете сами убедиться, прописав в системе проксю и попробовав скачать прямой загрузкой из PKGi. Соединение пойдёт не через проксю. Я не пойму, это так трудно? Трудно ответить, какой функцией из ОС можно взять параметры прокси? Я всё оформлю в пулреквесте и Вы увидите, какие изменения кода я внёс.
Простой вопрос: какой функцией можно получить параметры прокси из сетевых настроек системы?
Хочу простой ответ. Без убеждения меня, что это не надо и я хочу странного.
ErikPshat
10.10.2023 11:50
Цитата:
Сообщение от Inpos
(Сообщение 1275282)
Хочу простой ответ. Без убеждения меня, что это не надо и я хочу странного.
Если хочешь сам посмотреть логи соединения консоли, ставь PS3.ProxyServer и смотри.
Понятно.
in1975
11.10.2023 15:15
Цитата:
Сообщение от Inpos
(Сообщение 1275282)
параметры прокси из сетевых настроек системы?
Какой-то странный вопрос от человека, знающего программирование. Смотрите какой язык программирования используется, смотрите библиотеки, которые используются.
Формируете в программе запрос, обрабатываете ответ.
Примеры обработки запросов можете увидеть в pkgi-master\source\pkgi_ps3.c
Inpos
11.10.2023 17:56
Цитата:
Сообщение от in1975
(Сообщение 1275320)
Какой-то странный вопрос от человека, знающего программирование. Смотрите какой язык программирования используется, смотрите библиотеки, которые используются.
Я написал, что в SDK PS3 не разбираюсь. Опыт разработки ПО не дают все знания мира. Все SDK и фреймворки имеют свои особенности. Поэтому и спросил здесь, в ветке разработчиков отечественного форка.
Цитата:
Формируете в программе запрос, обрабатываете ответ.
Спасибо, Кэп.
Цитата:
Примеры обработки запросов можете увидеть в pkgi-master\source\pkgi_ps3.c
Там нет получения сетевых параметров (или я не нашёл в силу незнания SDK PS3).
В общем, не парьтесь. Я запросил эту информацию у разработчика PKGi.
Provodnik1337
11.10.2023 20:06
Здравствуйте, я задался очень сложным вопросом. Вот игры с регионом EUR контента: "игры из регионов" будут на русском языке либо русской озвучке? Например я хотел скачать с этого контента AC creed 2 и там два региона:EUR и USA, то по логике EUR будет на русском?
Ang3l42
11.10.2023 20:10
Provodnik1337, всё что на русском в разделе на русском. И не надо голову ломать. В американках русского языка обычно нет. Ну и всегда можно зайти в тему прямого скачивания и посмотреть русский текст там с озвучкой или без или вообще нет.
Provodnik1337
11.10.2023 21:49
Ang3l42, мне нужно скачать именно с "игры из регионов", ибо в "игры на русском" AC 2 выбивает ошибку "http запрос не удался" и поэтому я спрашиваю будут ли в регионе EUR "игры из регионов" на русском языке либо с русской озвучкой
void pkgi_curl_init(CURL *curl)
{
// Set user agent string
curl_easy_setopt(curl, CURLOPT_USERAGENT, PKGI_USER_AGENT);
// don't verify the certificate's name against host
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
// don't verify the peer's SSL certificate
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
// Set SSL VERSION to TLS 1.2
curl_easy_setopt(curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
// Set timeout for the connection to build
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 20L);
// Follow redirects
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
// maximum number of redirects allowed
curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 20L);
// Fail the request if the HTTP code returned is equal to or larger than 400
curl_easy_setopt(curl, CURLOPT_FAILONERROR, 1L);
}
if (offset != 0)
{
LOG("setting http offset %ld", offset);
/* resuming upload at this position */
curl_easy_setopt(http->curl, CURLOPT_RESUME_FROM_LARGE, (curl_off_t) offset);
}
http->used = 1;
return(http);
}
int pkgi_http_response_length(pkgi_http* http, int64_t* length)
{
CURLcode res;
// do the download request without getting the body
curl_easy_setopt(http->curl, CURLOPT_NOBODY, 1L);
curl_easy_setopt(http->curl, CURLOPT_NOPROGRESS, 1L);
// Perform the request
res = curl_easy_perform(http->curl);
int pkgi_http_read(pkgi_http* http, void* write_func, void* xferinfo_func)
{
CURLcode res;
curl_easy_setopt(http->curl, CURLOPT_NOBODY, 0L);
// The function that will be used to write the data
curl_easy_setopt(http->curl, CURLOPT_WRITEFUNCTION, write_func);
// The data file descriptor which will be written to
curl_easy_setopt(http->curl, CURLOPT_WRITEDATA, NULL);
if (xferinfo_func)
{
/* pass the struct pointer into the xferinfo function */
curl_easy_setopt(http->curl, CURLOPT_XFERINFOFUNCTION, xferinfo_func);
curl_easy_setopt(http->curl, CURLOPT_XFERINFODATA, NULL);
curl_easy_setopt(http->curl, CURLOPT_NOPROGRESS, 0L);
}
// Perform the request
res = curl_easy_perform(http->curl);