При написании скрипта с использованием сабжа столкнулся с проблемой - при попытке отправить опредленные запросы на nginx получается ошибка 400.. На apache все работает хорошо =)
Пример:
[oxid@zen]$ GET -sedU http://xxxx.ru/./../job/
GET http://xxxx.ru/./../job/
User-Agent: lwp-request/5.810
400 Bad Request
Connection: close
Date: Thu, 24 Jul 2008 08:59:13 GMT
Server: nginx/0.5.35
Content-Length: 173
Content-Type: text/html
Client-Date: Thu, 24 Jul 2008 09:02:10 GMT
Client-Peer: 192.168.2.55:8080
Client-Response-Num: 1
Title: 400 Bad Request
Я грешу тем что в URL есть ../ и подбное.
Есть скрипт который загружает несколько модулей через require.
Каким образом можно экспортировать функции из основного скрипта в загружаемые модули? можно конечно все эти функции вынести в отдельный модуль. Но что-то не хочется :)
Есть простая программа, которая проверяет наличие dhcp серверов в сети (что-то вроде пинга).
написана с использованием сабжа. И вот такой в ней косяк. Если во время работы программы выдернуть сетевой кабель, то она зависает в вызове recvfrom, и игнорирует все сигналы кроме KILL, хотя в ней самой естественно предусмотрен таймер (на SIGALRM), и по идее она не должна ожидать пакета более 1 секунды..
Есть идея заменить таймер на sigalarm с помощью select, просто с поверх Libpcap используется некая обертка с которой это сделать не очень удобно.
В чем может быть проблема и как этого избежать, кстати я подозреваю что этим страдают почти все программы использующие сабж.
Почему у некоторых процессов (например pure-ftpd) сабж (ссылка) ведет не на сам бинарник, а на "/usr/bin/pure-ftpd (deleted)" ? процесс не зомби, вполне живой. И бинарник соответственно на месте.
Написал простенькую программку, вроде должно работать. Вычисляет функцию методом бисекций. Но интерпретатор выдает странную ошибку.
(define e 2.7182818284590452353602874)
;(define (f x) (+ x (expt e (* -1 x))))
(define (f x) (x))
(define (good_section? a b) (< (* (f a) (f b)) 0))
(define (guess a b m) (
(cond ((= (f a) 0) a)
((= (f b) 0) b)
((= (f m) 0) m)
(else
(cond ((good_section? a m)
(guess a m (/ (+ a m) 2))
)
((good_section? m b)
(guess m b (/ (+ m b) 2))
)
(else m)
)
)
)
)
)
(define (bissect a b) (guess a b (/ (+ a b) 2)))
(bissect -1 0)
Ошибка
;ERROR: Wrong type to apply: -1
; in expression: (x)
; in scope:
; (x) procedure f
;STACK TRACE
1; ((x))
2; (((#@cond ((#@= (#@f #@a) 0) a) ((= (f b) 0) b) ((= (f m) 0) m ...
3; (#@bissect -1 0)
Помогите =)
Долго искал аналог, но так и не нашел. Пришлось писать самому 8)
небольшой демон, который просматривает сетевой трафик проходящий через интерфейс (используется libpcap с возможностью указания фильтров), пытается выяснить что за программа(ы) и какой пользователь этот траффик породил (вот именно этой особенности я нигде и не нашел, из-за нее все и затевалось), пишет эту информацию в лог. Логом может быть все что угодно. Я использовал MySQL, но сделал поддержку плагинов, так что теоретически можно писать куда угодно, есть еще отладочный плагин для дампа в текстовый файл. Есть поддержка ipv6, но за неимением оного не тестировалась. Рассматривает связку 2х ip и 2х портов (в tcp и udp естественно) как логическое соединение (конечно с таймаутом).
В результате можно узнать что пользователь с uid=1000 слил за ночь 25 гигов с помощью wget и lftp.
Вообщем если кому-то нужно - http://stream.ifolder.ru/5146077 . Если будет желание можно и на сорц форж залить. Но ради себя одного это делать лень.
Нужно следить за всеми прикладными программами и сервисами которые устанавливают сетевые соединения. К сожалению я не видел утилит с такой функциональностью. Все мониторят трафик безотносительно его создателя 8)
Решил написать свое решение, но слегка обломался - в линуксе эту информацию можно получить через файлы /proc/net/tcp|udp|raw, а еще и в каждом /proc/<pid>/fd, но парзинг их каждый раз при получении пакета (даже если использовать кеш и обновлять данные только для новых соединений) создает огромный оверхед (около 30 раз).. 8((
Есть ли программы которые это реализуют, или может есть более быстрый способ получить эти данные? Сейчас смотрю на модуль ip_queue и NETLINK сокеты. Но что-то помоему это не совсем то.
Нужно научиться писать несложные программы под сабж с поддержкой bluetooth.
Есть несколько вопросов.
Есть ли стоящая литература в бумажном или электронном виде на русском языке? (английская есть, но на родном как-то читать приятнее).
Какие будут проблемы при разработки из-под linux? Я так понял что Symbian предоставляет sdk под мастдай?
Чтобы показывал обложки, создавал коллекцию/библиотеку ( аля амарок и ритмбокс), был НЕ привязан к кде (как амарок) и был симпотичный внешне.
Ритмбокс не предлагать 8)
Вот несколько проблем возникло, гугол мне не помог 8(
1)Иногда при перезагрузке все останавливается на словах
Stopping syslogd daemon. И система ни на что больше не реагирует. Поспрашивал у знакомых, многие видели подобное. Воспроизвести баг не могу. Пока добавил несколько echo в инит скрипты, попробую отладить.
2) Иногда при выходе из suspend to ram виснет. В сислоге девственно чисто. Точнее может и не виснет, но экран черный, и переключаться между виртуальными консолями не получается. Использую suspend который по умолчанию в ядре, без патча tuxonice (он кстати вообще не работает почему-то). Могу приложить нужные конфиги. Но там в принципе ничего особенного, тем более что в 90% случаев все работает.
3) Вчера поставил драйвера для Conexant/HSF модема, которые скачал с сайта Dell, поскольку linuxant обломал меня своей политикой. Проверил через minicom все работает. Сегодня оставил ноут дома, пришел на работу решил слить кое-что по ssh и кое-что залить. Скачать получилось, на попытке залить мне в консоль (ssh) свалилось сообщение от ядра с содержимым регистров. В это время был запущен htop так что толком послание ядра разобрать не смог. Вот думаю могло это быть от драйверов модема, или это что-то еще? Качал не через модем, а через сеть. Модем мне толком и не нужен.
Может кто-нибудь что-нибудь подсказать? (8
Дистрибутив Debian Etch, ядро пересобрал под железо, наложил патч нужный для паркинга головок, добавил модуль tp_smapi, "добавил поддержку" своего ноута в модуль hdaps. Все остальное из дистрибутива.
Ну кроме модема..