чем бы, блядь, заняться? фильм смотреть неохота, дрочить тоже, программирования лимит исчерпан за последние четыре недели. можно было бы почитать, но на это тоже настроения нет
чем бы, блядь, заняться? фильм смотреть неохота, дрочить тоже, программирования лимит исчерпан за последние четыре недели. можно было бы почитать, но на это тоже настроения нет
внезапно обнаружил, что в 0.9.16 в i2psnark работает сортировка по столбцам. теперь можно найти и удалить самые толстые торренты
а кто как защищается от встраивания в страницу на i2p сайта ссылок на однопиксельные картинки в неанонимном интернете? можно ли огнелису как-то запретить такие открывать? или же просто запускать браузер надо запретив ему доступ куда либо кроме HTTP-туннеля? (кстати, а это как сделать?)
бнвачер, а есть ли на Земле страна, окромя Родины, которая с радостью тебя примет, если ты захочешь в неё эмигрировать? а такая страна, чтобы ваша любовь была взаимной?
пиздос я мудище. вчера, блядь, в одиннадцатом часу вечера запушил фикс, где коннект закрываю не в том треде где следует, а вместо этого кладу закрытие коннекта (shutdown(2), если быть точным) в очередь задач на исполнение «потом»
В продолжение #XO4BOU я слегка поправил свои похапэкостыли, чтобы одни отдавали данные поточно. Теперь картинки грузятся ну натурально как по диалапу
<?php
function headerfunc($ch, $str){
header($str);
return strlen($str);
}
function writefunc($ch, $str){
print $str;
flush();
return strlen($str);
}
$url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$curlSession = curl_init();
curl_setopt($curlSession, CURLOPT_URL, $url);
curl_setopt($curlSession, CURLOPT_HEADER, false);
curl_setopt($curlSession, CURLOPT_PROXY, '10.100.0.1:4444');
curl_setopt($curlSession, CURLOPT_HEADERFUNCTION, 'headerfunc');
curl_setopt($curlSession, CURLOPT_WRITEFUNCTION, 'writefunc');
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, false);
curl_setopt($curlSession, CURLOPT_TIMEOUT, 300);
curl_setopt($curlSession, CURLOPT_FOLLOWLOCATION, 1);
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$postinfo = '';
foreach($_POST as $key=>$value) {
$postinfo .= $key.'='.urlencode($value).'&';
}
rtrim($postinfo,'&');
curl_setopt ($curlSession, CURLOPT_POST, 1);
curl_setopt ($curlSession, CURLOPT_POSTFIELDS, $postinfo);
}
curl_exec ($curlSession);
if (curl_error($curlSession)){
print curl_error($curlSession);
}
curl_close ($curlSession);
?>
как в старые добрые времена @ulidtko выполз из берлоги и пошёл рекомендовать то что пропустил за день
знаете, я сегодня на пойнте одного человека нахуй послал. просто так фактически. виндузятника. жаль, что я ему физических страданий причинить не мог
в этом ITT треде высказываем друг другу всё что думаем.
@komar, ты — сноб
@xenomorph, ты — спортсмен. Начитавшись тебя я начал бегать.
@tigrch, ты заебала своей предсказуемостью высказываний.
@ulidtko, ты редкий и ленишься мысль развернуть.
@hirthwork, ты пьян, иди спать.
на gog Mount & Blade раздают. не понимаю нахуя мне, но себе утащил
обожаю работу в яндексе. серьёзно. проблемы о которых в других конторах даже не задумываются, в яндексе случаются каждый, сука, день. вот и сейчас выясняется, что не смотря на всякие SO_REUSEADDR, SO_LINGER и прочую еболу, которые админы накрутили в sysctl, перед закрытием сокета нужно таки делать shutdown(2). потому что. и да, к переполнению интовых счётчиков для количества документов на одном сервере мы давно привыкли и починили
как создать два независимых pull request'а к одному репозиторию? только созданием ещё одного форка?
как перебороть в себе дикое желание подключиться по vpn к девсерверу и поработать?
дочитал Slaughterhouse 5. чего дальше почитать? Шекспира или Танненбаума?
Буду краток: теперь я с телефона открываю адреса вида http://tracker2.postman.i2p
Как этого добился:
1. С телефона коннекчусь к vpn на vps. Ключевой момент в конфиге openvpn это пробрасывание DNS на клиент:push "dhcp-option DNS 10.100.0.1"
2. Далее делаем резолвинг i2p на этот же хост в конфиге dnsmasq:address=/.i2p/10.100.0.1
3. Там же висит nginx с таким вот сервером (этот же nginx tt-rss обслуживает):
```
server {
listen 10.100.0.1;
server_name *.i2p;
root /var/www/localhost/htdocs;
rewrite ^(.*)$ /i2p-proxy.php break;
location / {
include fastcgi.conf;
fastcgi_index i2p-proxy.php;
fastcgi_pass 127.0.0.1:9000;
}
}
``
$url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];`. Вот он целиком:
4. Финальный аккорд — сам i2p-proxy.php, который делает так:
<?php
session_start();
ob_start();
$url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
// Open the cURL session
$curlSession = curl_init();
curl_setopt($curlSession, CURLOPT_URL, $url);
curl_setopt($curlSession, CURLOPT_HEADER, 1);
curl_setopt($curlSession, CURLOPT_PROXY, '10.100.0.1:4444');
#curl_setopt($curlSession, CURLOPT_HTTPHEADER,
# array('Host: ' . $_SERVER['HTTP_HOST']));
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$postinfo = '';
foreach($_POST as $key=>$value) {
$postinfo .= $key.'='.urlencode($value).'&';
}
rtrim($postinfo,'&');
curl_setopt ($curlSession, CURLOPT_POST, 1);
curl_setopt ($curlSession, CURLOPT_POSTFIELDS, $postinfo);
}
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curlSession, CURLOPT_TIMEOUT,300);
//Send the request and store the result in an array
$response = curl_exec ($curlSession);
// Check that a connection was made
if (curl_error($curlSession)){
// If it wasn't...
print curl_error($curlSession);
} else {
$ar = explode("\r\n\r\n", $response, 2);
$header = $ar[0];
$body = $ar[1];
//handle headers - simply re-outputing them
$header_ar = explode("\r\n",$header);
foreach($header_ar as $header){
$header = trim($header);
if(!preg_match("/^Transfer-Encoding/",$header)){
header($header);
}
}
print $body;
}
curl_close ($curlSession);
?>
Пока не знаю нахуя, но уже дважды кончил от собственной охуенности.
Функции помещающиеся на один экран? Нет, не слышал https://github.com/i2p/i2p.i2p/blob/master/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java#L340-L1132