Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Alexander Vlasov
Как не работает?
Живой фрагмент...

sub login {
my $sock = IO::Socket::INET-new(127.0.0.1:3339);

select((select($sock), $| = 1)[0]);
binmode $sock, ':utf8';

print $sock login name='$USER' password='$PASSWORD' node=
$AUTHPOINT ip=127.0.0.1\r\n\r\n;
sleep (2);
print $sock gender node=$AUTHPOINT name=m\r\n\r\n;


В Птн, 16/06/2006 в 20:44 +0400, Dmitry E. Oboukhov пишет:
  2. по Perl русскоязычной рассылки никто не знает?
 ладно раз никто не знает по рассылке, может кто ответит по Perl?
 
 я нигде не нашел ответа на вопрос можно ли с сокетами в перл работать
 как с файлами?
 
 
 в смысле чтения из сокета я попробовал работает
 $line=$socket;
 
 а вот в смысле записи в сокет экспериментально попробовал - не работает
 print $socket бла-бла;
 
 да я знаю про send, но в данный момент стоит вопрос использования кода
 куда хочется сокет вместо файла подсунуть...
 
 можно как-то научить print'ы писать в сокет?
 
 
-- 
Alexander Vlasov
ZULU-UANIC
JID: zulu at jabber.kiev.ua


Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Alexander Vlasov
И охота вам извращаться, господа?
IO::Socket::INET гораздо проще в работе.

В Птн, 16/06/2006 в 20:46 +0300, Sergey Brutsky пишет:
 можно как-то научить print'ы писать в сокет?
 
 !/usr/bin/perl -W
 
 use Socket;
 
 socket(Socket_Handle, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
 connect(Socket_Handle, sockaddr_in( 80, inet_aton(213.180.204.8)));
 select Socket_Handle; $| = 1;
 print Socket_Handle GET / HTTP1/.0\n\n;
 print STDOUT Socket_Handle;
 close(Socket_Handle);
 
 
-- 
Alexander Vlasov
ZULU-UANIC
JID: zulu at jabber.kiev.ua


Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Artem Chuprina
Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Mon, 19 Jun 2006 
12:23:12 +0400:

  IO::Socket::INET гораздо проще в работе.
  
  В Птн, 16/06/2006 в 20:46 +0300, Sergey Brutsky пишет:
   можно как-то научить print'ы писать в сокет?
   
   !/usr/bin/perl -W
   
   use Socket;
   
   socket(Socket_Handle, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
   connect(Socket_Handle, sockaddr_in( 80, inet_aton(213.180.204.8)));
   select Socket_Handle; $| = 1;
   print Socket_Handle GET / HTTP1/.0\n\n;
   print STDOUT Socket_Handle;
   close(Socket_Handle);
 DEO тут проблема: пишется некий скрипт для системы где стоит Perl5.0,
 DEO в котором много чего нет. в частности use warnings, не говоря уж о
 DEO библиотеках.

С библиотеками как раз проще.

 DEO например на строку:
 DEO connect($socket, sockaddr_in(80, inet_aton(127.0.0.1)));
 DEO тот перл ругается так:

 DEO Bad symbol for filehandle at /path/to...

 DEO ===
 DEO use Socket;
 DEO my $socket;
 DEO socket($socket, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
 DEO connect($socket, sockaddr_in(80, inet_aton(127.0.0.1)));
 DEO ===

 DEO хотя этот код работает в perl 5.8

 DEO я жду, мне обещали shell на ту машинку, там и разберемся.
 DEO варианты проапгрейдить перл не подходят, потому что там стоит BSD, а у
 DEO нее как обычно с обновлениями траблы и они на это не пойдут :(

Тогда забудь про возможность подсовывать неопределенные переменные в
вызовы socket, open и т.п.  Вышеприведенный вариант, где используется
bareword Socket_Handle, скорее всего, работать будет.

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

А еще следует потребовать, чтобы программисты, перед тем, как писать код,
внимательно прочли спецификацию: с сыром - это чизбургер.
Игус в [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Sergey Brutsky




Dmitry E. Oboukhov пишет:

  мне не нравятся конструкции вроде

open(FILE, "filename");

потому что даже с use strict они не делают die если неверно написал имя
хендла.
я понимаю что опять я видимо ламерский вопрос задал, но извиняйте, не
могу удержаться.
я для себя взял за правило писать сперва my $file;  чтобы разрешить эту
проблему, а как с ней борются гуру? ;)

open(FILE, "filename") or die $!;




Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Artem Chuprina
Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Mon, 19 Jun 2006 
14:10:49 +0400:

   DEO я жду, мне обещали shell на ту машинку, там и разберемся.
   DEO варианты проапгрейдить перл не подходят, потому что там стоит BSD, а у
   DEO нее как обычно с обновлениями траблы и они на это не пойдут :(
  
  Тогда забудь про возможность подсовывать неопределенные переменные в
  вызовы socket, open и т.п.
 DEO это почему же они неопределенные?
 DEO написано же my $socket; ;)

Потому что не надо путать необъявленные с неопределенными.

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

If it's there and you can see it---it's real
If it's not there and you can see it---it's virtual
If it's there and you can't see it---it's transparent
If it's not there and you can't see it---you erased it!
IBM poster explaining virtual memory, circa 1978


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Dmitry Fedorov

Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Mon, 19 Jun 2006 
12:23:12 +0400:

 DEO тут проблема: пишется некий скрипт для системы где стоит Perl5.0,
 DEO в котором много чего нет. в частности use warnings, не говоря уж о


local $^W=1; # use warnings only since 5.006


Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Artem Chuprina
Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Mon, 19 Jun 2006 
14:55:15 +0400:

 DEO вот я спрашивал как гуру рекомендуют сию задачу разруливать?
 DEO мне второй вариант нравился (и нравится), но как выяснилось немножко
 DEO выше, он не везде работоспособен :-\

Гуру рекомендуют выбирать хостинг, версии софта на котором тебя
устраивают.  Сильно нервы экономит, однако.  Хотя меня бы и 5.0
устроил...  Что до данной проблемы, то кажется, IO::* там уже были.
Только их нельзя было передавать в системные функции, надо пользоваться
методами.  Т.е. my $socket = IO::Socket-new(...);
$socket-connect(...);  Но не факт, что я правильно помню...

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

/dev/null-транспортировка


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Artem Chuprina
Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Mon, 19 Jun 2006 
15:16:01 +0400:

 DEO я жду, мне обещали shell на ту машинку, там и разберемся.
 DEO варианты проапгрейдить перл не подходят, потому что там стоит 
  BSD, а у
 DEO нее как обычно с обновлениями траблы и они на это не пойдут :(

Тогда забудь про возможность подсовывать неопределенные переменные в
вызовы socket, open и т.п.
   DEO это почему же они неопределенные?
   DEO написано же my $socket; ;)
  
  Потому что не надо путать необъявленные с неопределенными.
 DEO я там смайлик поставил ;)
 DEO не просто так :D

А я не поставил.  Но тоже не просто так...

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

Делу время, потехе - деньги.
Кнышев


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Artem Chuprina
Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Mon, 19 Jun 2006 
15:34:48 +0400:

 DEO я выше спрашивал: никто русскоязычной рассылки по Perl не знает?

fido7.ru.perl, fido7.ru.cgi.perl.

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

The Eclipse Platform is an open and extensible platform
for anything and yet nothing in particular.
apt-cache show eclipse-platform


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Artem Chuprina
Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Mon, 19 Jun 2006 
15:48:05 +0400:

Потому что не надо путать необъявленные с неопределенными.
   DEO я там смайлик поставил ;)
   DEO не просто так :D
  
  А я не поставил.  Но тоже не просто так...
 DEO я думал ты примерчик набросаешь где брать определенный хендл

 DEO по моему что в 
 DEO open(FILE, бла-бла);

 DEO что в 
 DEO my $file;
 DEO open($file, бла-бла);

 DEO он неопределенный ;)

Так мне его проверить негде.  А разница между версиями - материя тонкая,
я тебе набросаю, а ты опять придешь, скажешь не работает.  А я твое
письмо читай...

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

Обновление Windows изменило интуитивно ясный интерфейс Вашего компьютера.
Загрузите обновление интуиции с сайта Microsoft.
(С)энта


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Artem Chuprina
Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Mon, 19 Jun 2006 
15:34:48 +0400:

   DEO вот я спрашивал как гуру рекомендуют сию задачу разруливать?
   DEO мне второй вариант нравился (и нравится), но как выяснилось немножко
   DEO выше, он не везде работоспособен :-\
  
  Гуру рекомендуют выбирать хостинг, версии софта на котором тебя
  устраивают.  Сильно нервы экономит, однако.
 DEO тут другой альтернативы нет просто :-\
 DEO все продолжается история которая выше в топике
 DEO прокси-сервер на скриптах

 DEO я тогда поигрался с попытками портировать Net::Proxy на пятый перл, но
 DEO там по цепочке мнооого либ тащилось, я где-то половину проковырял, а
 DEO потом нашел более простое решение: сваял CGI-шку, которая пускает на 
 DEO серваке ssh с ключами -R -L, ну товарищ имел три месяца 100 мегабит 
 DEO инет бесплатный (у них по умолчанию инет где-то 200$/мес 64кбит :-\), 
 DEO сейчас они прочухались, сунули ssh в группу и запретили доступ 

 DEO ну вот я и думаю теперь открыть два сокета и скрипт пусть тупо данные
 DEO между ними пробрасывает (в двух процессах), а на двух сторонах тунеля 
 DEO там Perl5.8 там уже можно нормальные библиотеки юзать...

Дык эта...  Если они уже поймали супостата, то уже знают, где копать,
когда трафик лишний.  Ну, добьешься того, что прикроют исходящие
соединения из CGI-скриптов нафиг...  Ибо нефиг...

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

Дело говоришь!
Теперь делай его.
Кнышев.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Artem Chuprina
Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Mon, 19 Jun 2006 
17:52:43 +0400:

   DEO по моему что в 
   DEO open(FILE, бла-бла);
  
   DEO что в 
   DEO my $file;
   DEO open($file, бла-бла);
  
   DEO он неопределенный ;)
  
  Так мне его проверить негде.  А разница между версиями - материя тонкая,
  я тебе набросаю, а ты опять придешь, скажешь не работает.  А я твое
  письмо читай...

 DEO тогда пойдем от слова неопределенный

 DEO что в первом что во втором варианте именно вызываемая функция делает
 DEO хендл определенным, определяет его.
 DEO :)

Хендл - допустим.  А вот переменную она делает определенной только во
втором случае.  В первом случае глоб делает определенным упоминание его
в коде.

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

Человек - терновый венец природы.
Кнышев


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Artem Chuprina
Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Mon, 19 Jun 2006 
22:19:38 +0400:

Так мне его проверить негде.  А разница между версиями - материя тонкая,
я тебе набросаю, а ты опять придешь, скажешь не работает.  А я твое
письмо читай...
  
   DEO тогда пойдем от слова неопределенный
  
   DEO что в первом что во втором варианте именно вызываемая функция делает
   DEO хендл определенным, определяет его.
   DEO :)
  
  Хендл - допустим.  А вот переменную она делает определенной только во
  втором случае.  В первом случае глоб делает определенным упоминание его
  в коде.
 DEO ты опять назовешь меня ламером но про второй случай я не понял.
 DEO о каком глобе может идти речь _до_ вызова функции?

О глобе FILE.  Когда именно он будет создан - на стадии компиляции
(perl, видя в этом месте bareword, уже в курсе, что имеется в виду глоб)
или непосредственно перед вызовом функции, я не скажу, но что до вызова
- факт.  Заполнено его файлхендловое гнездо будет, да, уже внутри.

Собственно, в open, print и т.п. можно передавать ссылку на глоб.
Которую можно присвоить переменной.  Что-то типа

my $handle = \*FILE; open($handle, ...);

Этот фокус в 5.0 работал.  Во всяком случае, в 5.0.005.

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

Попрошу благородного дона не обобщать с утра пораньше! (С)энта


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Artem Chuprina
Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Mon, 19 Jun 2006 
23:16:24 +0400:

 DEO тогда пойдем от слова неопределенный

 DEO что в первом что во втором варианте именно вызываемая функция 
  делает
 DEO хендл определенным, определяет его.
 DEO :)

Хендл - допустим.  А вот переменную она делает определенной только во
втором случае.  В первом случае глоб делает определенным упоминание его
в коде.
   DEO ты опять назовешь меня ламером но про второй случай я не понял.
   DEO о каком глобе может идти речь _до_ вызова функции?
  
  О глобе FILE.  Когда именно он будет создан - на стадии компиляции
  (perl, видя в этом месте bareword, уже в курсе, что имеется в виду глоб)
  или непосредственно перед вызовом функции, я не скажу, но что до вызова
  - факт.
 DEO а вот это легко проверяется. я выше приводил текст про ошибки
 DEO он ругается именно на стадии выполнения (если используем глобы).
 DEO и ошибки навроде
 DEO print FILEE бла-бла; (предполагается что FILE неверно написан)
 DEO тоже только на этапе работы выясняются, а не на этапе компиляции.
 DEO (собственно об этом и речь была выше), так что представляется крайне
 DEO сомнительным что что-то там такое определяется на этапе компиляции  :D

Ты путаешь определенность глоба как такового и заполнение его
файлхендлового гнезда.

  Заполнено его файлхендловое гнездо будет, да, уже внутри.
  
  Собственно, в open, print и т.п. можно передавать ссылку на глоб.
  Которую можно присвоить переменной.  Что-то типа
  
  my $handle = \*FILE; open($handle, ...);
  
  Этот фокус в 5.0 работал.  Во всяком случае, в 5.0.005.
 DEO у меня книжка по 5.6 (насколько помню)
 DEO там написано что если передавать простой скаляр, то он становится
 DEO объектом, самооживляется в их терминологии. закрывает файлы по выходе
 DEO из области видимости итп

А в 5.0.005 этого еще нет.  Ы?

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

Все гениальное просто.
Но со вкусом.
Кнышев.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Artem Chuprina
Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Tue, 20 Jun 2006 
00:10:15 +0400:

  Ты путаешь определенность глоба как такового и заполнение его
  файлхендлового гнезда.
 DEO поясни мне тогда пожалуйста :)

Возьми книжку по перлу, хотя бы свою, по 5.6, и прочти там, что такое
glob (не функция, а внутренняя перловая конструкция).  Да, книжка,
видимо, должна быть вполне конкретная - Programming Perl.  Кукбуки
обычно этого не описывают.

   DEO у меня книжка по 5.6 (насколько помню)
   DEO там написано что если передавать простой скаляр, то он становится
   DEO объектом, самооживляется в их терминологии. закрывает файлы по 
  выходе
   DEO из области видимости итп
  
  А в 5.0.005 этого еще нет.  Ы?
 DEO ну выше ж приводил - матюкается он на это.

Естественно.  Раз в нем этого еще нет, то он на это и матюкается.

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

Дуля со смещенным центром тяжести


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Artem Chuprina
Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Tue, 20 Jun 2006 
00:16:04 +0400:

  Ты путаешь определенность глоба как такового и заполнение его
  файлхендлового гнезда.
 DEO а не ты путаешь файлхендлы с глобами?
 DEO насколько я понимаю глобы отнюдь не для файлхендлов задуманы :)

Если бы ты сказал отнюдь не только для файлхендлов, я бы тебе даже
поверил.  По версию 4 включительно файлхендлы бывали только в глобах.  В
5.0.005 бывали еще как объекты иерархии IO::*, но их нельзя было
передавать в системные функции.  В 5.6 стало можно.  Я вот не пойму, ты
меня пытаешься убедить, что старый перл, который у тебя на хостинге,
должен жрать конструкции от нового?  Ну, предположим, меня ты убедишь.
Он что, от этого начнет их жрать?

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

Если ты не боишься синего экрана, то почему боишься черного?
(c) Д.Белявский


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-19 Пенетрантность Artem Chuprina
Dmitry E. Oboukhov - debian-russian@lists.debian.org  @ Tue, 20 Jun 2006 
01:27:56 +0400:

   DEO поясни мне тогда пожалуйста :)
  
  Возьми книжку по перлу, хотя бы свою, по 5.6, и прочти там, что такое
  glob (не функция, а внутренняя перловая конструкция).  Да, книжка,
  видимо, должна быть вполне конкретная - Programming Perl.  Кукбуки
  обычно этого не описывают.
 DEO дык взял почитал
 DEO никакого, нет не так
 DEO НИКАКОГО отношения глобы к файлам не имеют.
 DEO то что их так применяют - дело десятое
 DEO глоб - это лишь ссылка на все с данным именем (ц) Л. Уолл

Ну да.  На все.  Каковых 4 то ли 5 различных видов возможно.  Скаляр,
массив, хэш, файлхендл, функция.  Кажется.

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

Кто первый встал, того и грабли
Д. Белявский


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-18 Пенетрантность Anton Petrusevich
On Saturday 17 June 2006 17:53, Dmitry E. Oboukhov wrote:
  И с _такими_
  элементарными вопросами меня ты уже заколебал.
 ну не читай ;)

Окей, новое правило в фильтре.
-- 
Anton Petrusevich


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-17 Пенетрантность Sergey Brutsky



my $socket;
socket($socket, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
connect($socket, sockaddr_in(80, inet_aton(127.0.0.1)));
print $socket GET / HTTP/1.0\n\n;
print while($socket);

почему-то висит и ответа сервера не печатает

а вот если 
print $socket GET / HTTP/1.0\n\n;


заменить на send то работает так как предполагалось.
  

select $socket; $| = 1;
print $socket GET / HTTP/1.0\n\n;


Re: пара отвлеченных вопросов, офтопик

2006-06-16 Пенетрантность Alexander Lourier
В сообщении от Пятница 16 Июнь 2006 20:44 Dmitry E. Oboukhov написал(a):


 я нигде не нашел ответа на вопрос можно ли с сокетами в перл работать
 как с файлами?

Да.

 а вот в смысле записи в сокет экспериментально попробовал - не работает
 print $socket бла-бла;

Что значит не работает? Как проверяли?

Может быть не хватает use IO::Handle;
$socket-autoflush(1);

-- 
Alexander Lourier, http://aml.rulezz.ru


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-16 Пенетрантность Sergey Brutsky

можно как-то научить print'ы писать в сокет?

!/usr/bin/perl -W

use Socket;

socket(Socket_Handle, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
connect(Socket_Handle, sockaddr_in( 80, inet_aton(213.180.204.8)));
select Socket_Handle; $| = 1;
print Socket_Handle GET / HTTP1/.0\n\n;
print STDOUT Socket_Handle;
close(Socket_Handle);



Re: пара отвлеченных вопросов, офтопик

2006-06-16 Пенетрантность Alexander Lourier
В сообщении от Пятница 16 Июнь 2006 22:37 Dmitry E. Oboukhov написал(a):

use IO::Handle

 my $socket;
 socket($socket, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
 connect($socket, sockaddr_in(80, inet_aton(127.0.0.1)));
$socket-autoflush(1)
 print $socket GET / HTTP/1.0\n\n;
 print while($socket);

 почему-то висит и ответа сервера не печатает

Потому что данные из буфера не уходят в сокет.

-- 
Alexander Lourier, http://aml.rulezz.ru


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-16 Пенетрантность Anton Petrusevich
On Friday 16 June 2006 21:18, Dmitry E. Oboukhov wrote:
 а вот оно в чем дело, спасибо большое!

Ну, кстати, в любом учебнике/руководстве/книге/документации это всё описано. И 
про my $fh = selct ($socket); $| = 1; select($fh) тоже. И с _такими_ 
элементарными вопросами меня ты уже заколебал. К тому же, оффтопик. 
-- 
Anton Petrusevich


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-15 Пенетрантность Nikita V. Youshchenko
 Забавно. Не знал. Хотя это выглядит скорее извращением -
 
 Само ядро использует.

Заинтересовался. Посмотрел. Все такие использования по пальцам пересчитать
можно, и они более или менее очевидно заменяются на использование
внутреннего kernel api.

Особенно порадовал вызов getpid() в arch/sh64/kernel/process.c
Использовать current-pid кому-то религия не позволила :)
(хотя судя по контексту, там какой-то отладочный код, где наверное важен
факт системного вызова, а не осуществляемые вызовом действия).

 особенно если учесть, скажем, размер структуры pt_regs для RISC
 архитектур.
 
 И зачем мне его учитывать?

Даже если код собирается с CONFIG-4KSTACKS ?


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-14 Пенетрантность Nikita V. Youshchenko


 1. залез я за C, давно на нем ничего не писал, а тут модулек для ядра
 назрело написать. наткнулся на то что модули ядра не все подряд функции
 могут вызывать.

Ядро - это замкнутый в себе статический бинарник.
Чтобы использовать внутри ядра библиотеку, надо поместить эту библиотеку
внутрь ядра. Что можно сделать далеко не с любым кодом: например, код не
должен использовать системные вызовы (либо их использование должно быть
заменено на вызов внутренних функций ядра, их реализующих - а эти функции
не всегда экспортируются); имеются ограничения на использование
динамической памяти; сильно ограничен доступный размер стека, и т.д.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-14 Пенетрантность Dmitry Fedorov

14.06.06, Nikita V. Youshchenko[EMAIL PROTECTED] написал(а):


Ядро - это замкнутый в себе статический бинарник.


А загружаемые модули?


Чтобы использовать внутри ядра библиотеку, надо поместить эту библиотеку
внутрь ядра. Что можно сделать далеко не с любым кодом: например, код не
должен использовать системные вызовы (либо их использование должно быть
заменено на вызов внутренних функций ядра, их реализующих - а эти функции
не всегда экспортируются);


Из ядра можно вызывать любой системный вызов, доступный из user space.
Просто нужно знать как. Это не документировано, но без этого маханизма
само ядро обойтись не может, а потому это будет доступно всегда.


Re: пара отвлеченных вопросов, офтопик

2006-06-14 Пенетрантность Nikita V. Youshchenko

 14.06.06, Nikita V. Youshchenko[EMAIL PROTECTED] написал(а):
  Ядро - это замкнутый в себе статический бинарник.

 А загружаемые модули?

А загружаемые модули линкуются внутрь ядра; им доступны только символы, 
экспортируемые ядром или другими загруженными модулями.

Советую почитать Linux device drivers, 3rd edition - доступно в сети.


  Чтобы использовать внутри ядра библиотеку, надо поместить эту
  библиотеку внутрь ядра. Что можно сделать далеко не с любым кодом:
  например, код не должен использовать системные вызовы (либо их
  использование должно быть заменено на вызов внутренних функций ядра,
  их реализующих - а эти функции не всегда экспортируются);

 Из ядра можно вызывать любой системный вызов, доступный из user space.

Ну если только не играться с ассемблером, то это не так. Системному вызову 
xxx() соответствует в ядре функция sys_xxx(), и эти функции не 
экспортируются (так как, помимо прочего, используют специальные binary 
calling conventions).
Содержательная функциональность некоторых - но не всех! - системных вызовов 
доступны в виде внутреннего ядерного API.

А игры с ассемблером в ядре до добра не доводят.

 Просто нужно знать как. Это не документировано, но без этого маханизма
 само ядро обойтись не может, а потому это будет доступно всегда.

А с этого момента поподробнее пожалуйста. Многолетний опыт работы в ядре 
заставляет усомниться в ваших словах ...


pgpo8u0UznDkp.pgp
Description: PGP signature


Re: пара отвлеченных вопросов, офтопик

2006-06-14 Пенетрантность Dmitry Fedorov

14.06.06, Nikita V. Youshchenko[EMAIL PROTECTED] написал(а):


 14.06.06, Nikita V. Youshchenko[EMAIL PROTECTED] написал(а):
  Ядро - это замкнутый в себе статический бинарник.

 А загружаемые модули?

А загружаемые модули линкуются внутрь ядра; им доступны только символы,
экспортируемые ядром или другими загруженными модулями.


Значит, уже не замкнутый и не статический.


Советую почитать Linux device drivers, 3rd edition - доступно в сети.


Спасибо за совет. Читал. Лучшая из всех и, тем не менее, крайне недостаточная.
4th edition давно в сети.


 Из ядра можно вызывать любой системный вызов, доступный из user space.

Ну если только не играться с ассемблером, то это не так.


Никаких игр с ассемблером. Всё штатными средствами ядра.
Всё ассемблерное и платформо-зависимое предоставлено ядром.


Системному вызову
xxx() соответствует в ядре функция sys_xxx(), и эти функции не
экспортируются


Экспорт не нужен.


(так как, помимо прочего, используют специальные binary
calling conventions).


Любые calling conventions описаны в прототипах.
Неважно.


 Просто нужно знать как. Это не документировано, но без этого маханизма
 само ядро обойтись не может, а потому это будет доступно всегда.

А с этого момента поподробнее пожалуйста. Многолетний опыт работы в ядре
заставляет усомниться в ваших словах ...


Ну тогда можно и без подробностей - смотрите asm/unistd.h и
приложенный файл - надёргал фрагментов из рабочего кода.
# include linux/processor.h	/* mm_segment_t  */
# include linux/uaccess.h	/* set_fs, get_fs, KERNEL_DS */
# include asm/unistd.h	/* system calls */


// returns old mm segment.
extern inline
mm_segment_t df_get_and_set_fs(mm_segment_t newfs)
{
mm_segment_t oldfs = get_fs();
set_fs(newfs);
return oldfs;
}


static inline _syscall3(int, chown,
			const char __user*, filename,
			uid_t, user,
			gid_t, group)

int df_chown(const char __kernel* filename,  uid_t user, gid_t group)
{
mm_segment_t old_fs = df_get_and_set_fs(KERNEL_DS);

int rc = chown((const char __user*)filename, user, group);

set_fs(old_fs);

return rc0 ? errno : rc;
}


static inline _syscall3(int, mknod,
			const char __user*,filename,
			mode_t,mode,
			dev_t,dev)

int df_mknod(const char __kernel* filename, mode_t mode, dev_t dev)
{
mm_segment_t old_fs = df_get_and_set_fs(KERNEL_DS);

int rc = mknod((const char __user*)filename, mode, dev);

set_fs(old_fs);

return rc0 ? errno : rc;
}



Re: пара отвлеченных вопросов, офтопик

2006-06-14 Пенетрантность Dmitry Fedorov

14.06.06, Stanislav Maslovski[EMAIL PROTECTED] написал(а):

On Wed, Jun 14, 2006 at 07:26:37PM +0400, Victor Wagner wrote:
 Так вроде ж FUSE это Filesystem in User Space. Т.е. по определению
 должна позволять использовать любые user-space библиотеки.

А что получится, если вызов из модуля некой процедуры из внешней библиотеки
приведет к обращению к файловой системе, которую сам этот модуль обслуживает?

Наверняка всем сразу поплохеет...


1. Правильное проектирование избавляет от таких проблем.

2. Ядерному модулю FUSE никакие библиотеки не нужны.
User-space daemon, реализующий FS, для доступа к нужным ему
библиотекам в ядерном модуле FUSE обычно не нуждается.
А если нуждается, смотри п.1.


Re: пара отвлеченных вопросов, офтопик

2006-06-14 Пенетрантность Nikita V. Youshchenko


 14.06.06, Nikita V. Youshchenko[EMAIL PROTECTED] написал(а):

  14.06.06, Nikita V. Youshchenko[EMAIL PROTECTED] написал(а):
   Ядро - это замкнутый в себе статический бинарник.
 
  А загружаемые модули?

 А загружаемые модули линкуются внутрь ядра; им доступны только символы,
 экспортируемые ядром или другими загруженными модулями.
 
 Значит, уже не замкнутый и не статический.

Ядро - замкнутое и статическое. Оно не может использовать неопределённые в
нём символы. Хотя само экспортирует что-то для модулей.

 Советую почитать Linux device drivers, 3rd edition - доступно в сети.
 
 Спасибо за совет. Читал. Лучшая из всех и, тем не менее, крайне
 недостаточная. 4th edition давно в сети.

Это с каких пор? А url можно?

  Из ядра можно вызывать любой системный вызов, доступный из user space.

 Ну если только не играться с ассемблером, то это не так.
 
 Никаких игр с ассемблером. Всё штатными средствами ядра.
 Всё ассемблерное и платформо-зависимое предоставлено ядром.
 
 Системному вызову
 xxx() соответствует в ядре функция sys_xxx(), и эти функции не
 экспортируются
 
 Экспорт не нужен.
 
 (так как, помимо прочего, используют специальные binary
 calling conventions).
 
 Любые calling conventions описаны в прототипах.
 Неважно.
 
  Просто нужно знать как. Это не документировано, но без этого маханизма
  само ядро обойтись не может, а потому это будет доступно всегда.

 А с этого момента поподробнее пожалуйста. Многолетний опыт работы в ядре
 заставляет усомниться в ваших словах ...
 
 Ну тогда можно и без подробностей - смотрите asm/unistd.h и
 приложенный файл - надёргал фрагментов из рабочего кода.

Забавно. Не знал. Хотя это выглядит скорее извращением - особенно если
учесть, скажем, размер структуры pt_regs для RISC архитектур.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: пара отвлеченных вопросов, офтопик

2006-06-14 Пенетрантность Dmitry Fedorov

15.06.06, Nikita V. Youshchenko[EMAIL PROTECTED] написал(а):


Это с каких пор? А url можно?


Извиняюсь, перепутал - 3-е издание.



Забавно. Не знал. Хотя это выглядит скорее извращением -


Само ядро использует.


особенно если учесть, скажем, размер структуры pt_regs для RISC архитектур.


И зачем мне его учитывать?