LINUX.ORG.RU

Сообщения OxiD

 

perl LWP

Форум — Development

При написании скрипта с использованием сабжа столкнулся с проблемой - при попытке отправить опредленные запросы на 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 есть ../ и подбное.

>>>

OxiD
()

интересная команда в баш

Форум — Admin

[oxid@fenix ~]$ GET / HTTP/1.1
<HTML>
<HEAD>
<TITLE>Directory /</TITLE>
<BASE HREF="file:/">
</HEAD>
<BODY>
<H1>Directory listing of /</H1>
<UL>
<LI><A HREF="./">./</A>
<LI><A HREF="../">../</A>
<LI><A HREF="bin/">bin/</A>
<LI><A HREF="boot/">boot/</A>
<LI><A HREF="cdrom/">cdrom/</A>
<LI><A HREF="dev/">dev/</A>
<LI><A HREF="etc/">etc/</A>
<LI><A HREF="home/">home/</A>
<LI><A HREF="initrd/">initrd/</A>
<LI><A HREF="initrd.img">initrd.img</A>
<LI><A HREF="initrd.img.old">initrd.img.old</A>
<LI><A HREF="lib/">lib/</A>
<LI><A HREF="lost%2Bfound/">lost+found/</A>
<LI><A HREF="media/">media/</A>
<LI><A HREF="mnt/">mnt/</A>
<LI><A HREF="opt/">opt/</A>
<LI><A HREF="proc/">proc/</A>
<LI><A HREF="root/">root/</A>
<LI><A HREF="sbin/">sbin/</A>
<LI><A HREF="selinux/">selinux/</A>
<LI><A HREF="srv/">srv/</A>
<LI><A HREF="sys/">sys/</A>
<LI><A HREF="test/">test/</A>
<LI><A HREF="tmp/">tmp/</A>
<LI><A HREF="usr/">usr/</A>
<LI><A HREF="var/">var/</A>
<LI><A HREF="vmlinuz">vmlinuz</A>
<LI><A HREF="vmlinuz.old">vmlinuz.old</A>
</UL>
</BODY>
</HTML>



Случайно набрал  ип олучил этот листинг в хтмл.. Что это? зачем? манов на команду не нашел. И главный вопрос, нафига это нужно?

>>>

OxiD
()

Тиимус и его задача..

Форум — Development

http://acm.timus.ru/problem.aspx?space=1&num=1002

Никто не пробовал это решить? Вроде как все просто, а че-то не выходит )) Если у кого получилось, покажите код ))

>>>

OxiD
()

perl модули, экспорт функций

Форум — Development

Есть скрипт который загружает несколько модулей через require. Каким образом можно экспортировать функции из основного скрипта в загружаемые модули? можно конечно все эти функции вынести в отдельный модуль. Но что-то не хочется :)

>>>

OxiD
()

Относительное время.

Форум — Development

Как можно получить сабж? Пока использую gettimeofday, и каждые n секунд проверяю, прошло нужное время или нет.

Но этот способ поломается :), если кто-то изменит время в системе (ntpdate например сработает по крону).

clock(2) не нравится, так как его значения (судя по ману) могут повторяться каждые 72 минуты.

setitimer отправляет сигнал, что не очень удобно.

Что посоветуете? Как вообще это реализуется правильно?

>>>

OxiD
()

libpcap

Форум — Development

Есть простая программа, которая проверяет наличие dhcp серверов в сети (что-то вроде пинга).

написана с использованием сабжа. И вот такой в ней косяк. Если во время работы программы выдернуть сетевой кабель, то она зависает в вызове recvfrom, и игнорирует все сигналы кроме KILL, хотя в ней самой естественно предусмотрен таймер (на SIGALRM), и по идее она не должна ожидать пакета более 1 секунды..

Есть идея заменить таймер на sigalarm с помощью select, просто с поверх Libpcap используется некая обертка с которой это сделать не очень удобно.

В чем может быть проблема и как этого избежать, кстати я подозреваю что этим страдают почти все программы использующие сабж.

>>>

OxiD
()

/proc/<pid>/exe

Форум — Admin

Почему у некоторых процессов (например pure-ftpd) сабж (ссылка) ведет не на сам бинарник, а на "/usr/bin/pure-ftpd (deleted)" ? процесс не зомби, вполне живой. И бинарник соответственно на месте.

>>>

OxiD
()

scheme непонятная ошибка

Форум — Development

Написал простенькую программку, вроде должно работать. Вычисляет функцию методом бисекций. Но интерпретатор выдает странную ошибку.

(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)

Помогите =)

>>>

OxiD
()

Программа для наблюдения за сетевой активностью

Форум — Development

Долго искал аналог, но так и не нашел. Пришлось писать самому 8) небольшой демон, который просматривает сетевой трафик проходящий через интерфейс (используется libpcap с возможностью указания фильтров), пытается выяснить что за программа(ы) и какой пользователь этот траффик породил (вот именно этой особенности я нигде и не нашел, из-за нее все и затевалось), пишет эту информацию в лог. Логом может быть все что угодно. Я использовал MySQL, но сделал поддержку плагинов, так что теоретически можно писать куда угодно, есть еще отладочный плагин для дампа в текстовый файл. Есть поддержка ipv6, но за неимением оного не тестировалась. Рассматривает связку 2х ip и 2х портов (в tcp и udp естественно) как логическое соединение (конечно с таймаутом).

В результате можно узнать что пользователь с uid=1000 слил за ночь 25 гигов с помощью wget и lftp.

Вообщем если кому-то нужно - http://stream.ifolder.ru/5146077 . Если будет желание можно и на сорц форж залить. Но ради себя одного это делать лень.

>>>

OxiD
()

socketpair + fdopen

Форум — Development

Не получается использовать fdopen на втором сокете полученном от socketpair.. Ошибка - Неверная операция смещения.

extern volatile sig_atomic_t terminate;

FILE *netstatd()
{
 int fds[2];
 FILE *in,*out;
 int rc;
 char buffer[512];

 rc=socketpair(AF_UNIX,SOCK_STREAM, PF_UNSPEC, fds);

 if (rc<0)
   return NULL;

 in=fdopen(fds[0],"r+");
 
 if (!in)  //Тут все отрабатывает нормально
   {
    close(fds[0]);
    close(fds[1]);
    return NULL;
   }

 out=fdopen(fds[1],"r+");

 if (!out); // Вот тут ошибка!
   {
    syslog(LOG_WARNING,"fdopen %s\n",strerror(errno));
    close(fds[1]);
    close(fds[0]);
    fclose(in);
    return NULL;
   }

 setvbuf(out,NULL,_IONBF,0);
 setvbuf(in,NULL,_IONBF,0);

 rc=fork();

 if (rc==-1)
   {
    fclose(in);
    fclose(out);
    return NULL;
   }
 else if (rc!=0)
   {
    fclose(out);
    return in;
   }

 //child

  fclose(in);

  setproctitle ("netstatd");

  while (!feof(out) && !terminate)
    {
      if (fgets(buffer,sizeof(buffer),out))
        {
         if (terminate)
           {
            syslog(LOG_WARNING,"terminating\n");
            break;
           }

         syslog(LOG_DEBUG,"%s\n",buffer);

        }
    }

  _exit(0);
}

>>>

OxiD
()

Alt+control+esc

Форум — General

Как заставить эту комбинацию клавишь работать в гноме? PS так же запущен компиз.

>>>

OxiD
()

Мониторинг траффика

Форум — Admin

Нужно следить за всеми прикладными программами и сервисами которые устанавливают сетевые соединения. К сожалению я не видел утилит с такой функциональностью. Все мониторят трафик безотносительно его создателя 8)

Решил написать свое решение, но слегка обломался - в линуксе эту информацию можно получить через файлы /proc/net/tcp|udp|raw, а еще и в каждом /proc/<pid>/fd, но парзинг их каждый раз при получении пакета (даже если использовать кеш и обновлять данные только для новых соединений) создает огромный оверхед (около 30 раз).. 8((

Есть ли программы которые это реализуют, или может есть более быстрый способ получить эти данные? Сейчас смотрю на модуль ip_queue и NETLINK сокеты. Но что-то помоему это не совсем то.

>>>

OxiD
()

Apache 1.3 / 2.0

Форум — Admin

Подскажите пожалуйста какие есть стабильные решения данной задачи:

Apache (1.3 или 2.0) c mod_php, но так чтобы запросы к каждому виртуальному хосту обрабатывались сервером с uid владельца этого виртуального хоста?

То есть нужен аналог suPHP. Но работающий не через cgi, а через mod_php. fast_cgi не подходит 8(.

Интересуют именно стабильные решения.

Заренее благодарен =).

>>>

OxiD
()

Разрешение экрана.

Форум — Desktop

Не получается поменять разрешение экрана на меньшее. Сейчас 1024х768, нужно и 800х600 и 640х480.


Думаю это потому-что в xorg.conf прописано только разрешение 1024х768
как дописать остальные? и как рассчитать моделайн? Система Debian Etch

Вот xorg.conf

Section "Files"
        FontPath        "/usr/share/fonts/X11/misc"
        FontPath        "/usr/X11R6/lib/X11/fonts/misc"
        FontPath        "/usr/share/fonts/X11/cyrillic"
        FontPath        "/usr/X11R6/lib/X11/fonts/cyrillic"
        FontPath        "/usr/share/fonts/X11/100dpi/:unscaled"
        FontPath        "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
        FontPath        "/usr/share/fonts/X11/75dpi/:unscaled"
        FontPath        "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
        FontPath        "/usr/share/fonts/X11/Type1"
        FontPath        "/usr/X11R6/lib/X11/fonts/Type1"
        FontPath        "/usr/share/fonts/X11/100dpi"
        FontPath        "/usr/X11R6/lib/X11/fonts/100dpi"
        FontPath        "/usr/share/fonts/X11/75dpi"
        FontPath        "/usr/X11R6/lib/X11/fonts/75dpi"
        # path to defoma fonts
        FontPath        "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Module"
        Load    "dbe"

        Load    "i2c"
        Load    "bitmap"
        Load    "ddc"
        Load    "dri"
        Load    "extmod"
        Load    "freetype"
        Load    "glx"
        Load    "int10"
        Load    "vbe"
EndSection

Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"
        Option          "CoreKeyboard"
        Option "XkbRules" "xorg"
        Option "XkbModel" "pc105"
        Option "XkbLayout" "us,ru(winkeys)"
        Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll,altwin:menu"
EndSection

Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Device"                "/dev/input/mice"
        Option          "Protocol"              "ImPS/2"
        Option          "Emulate3Buttons"       "true"
    Option      "EmulateWheel"          "on"
    Option      "EmulateWheelButton"    "2"
EndSection

Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "synaptics"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/psaux"
        Option          "Protocol"              "auto-dev"
        Option          "HorizScrollDelta"      "0"
        Option          "TapButton2"            "3"
        Option          "SHMConfig"             "on"
EndSection

Section "Device"
        Identifier      "Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller"
        Driver          "i810"
        BusID           "PCI:0:2:0"
        Option          "DisplayInfo" "FALSE"
        Option          "VBERestore" "yes"
#       VideoRam        131072
        Option          "XAANoOffscreenPixmaps" "true"

        Option "AllowGLXWithComposite" "true"

        Option          "MTRR" "on"
        Option          "UseFBDev" "false"
        Option          "LinearAlloc" "32768"
        Option          "AccelMethod" "EXA"
#        Screen          0
#       Option          "MonitorLayout" "CRT,LFP"
        #Option          "DevicePresence" "true"
        #Option          "Clone"  "true"
EndSection


Section "Device"
        Identifier      "Intel External"
        Driver          "i810"
        BusID           "PCI:0:2:0"
        Option          "DisplayInfo" "FALSE"
        #Option          "VBERestore" "yes"
        Screen          1
        Option          "Rotate" "true"
EndSection


Section "Monitor"
        Identifier      "Универсальный монитор"
        Option          "DPMS"
EndSection

Section "Monitor"
        Identifier      "External monitor"
        Option          "DPMS"
EndSection

Section "Screen"
        Identifier      "External Screen"
        Device          "Intel External"
        Monitor         "External Monitor"
        DefaultDepth    24
        SubSection "Display"
                Modes           "1024x768" "1280x1024" "1600x1200" "640x480" "600x800"
                #Modes          "XGA 60"  "SXGA 60" "UXGA 60" "VGA 75" "SVGA 75"
                Virtual 2048 2048
        EndSubSection
EndSection



Section "Screen"
        Identifier      "Default Screen"
        Device          "Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller"
        Monitor         "Универсальный монитор"

        DefaultDepth    24
        SubSection "Display"
                Depth           1
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           4
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           8
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           15
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           16
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           24
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
EndSection



Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          0 "Default Screen"
#       Option          "Xinerama"  "true"
#       Screen          1 "External Screen" RightOf "Default Screen"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
        InputDevice     "Synaptics Touchpad"
        Option "AIGLX" "true"

EndSection

Section "DRI"
        Mode    0666
EndSection


Section "Extensions"
    Option "Composite" "Enable"
    Option "RENDER" "Enable"
EndSection

>>>

OxiD
()

SymbianOS

Форум — Development

Нужно научиться писать несложные программы под сабж с поддержкой bluetooth.

Есть несколько вопросов. Есть ли стоящая литература в бумажном или электронном виде на русском языке? (английская есть, но на родном как-то читать приятнее).

Какие будут проблемы при разработки из-под linux? Я так понял что Symbian предоставляет sdk под мастдай?

>>>

OxiD
()

Debian Переход на другую архитектуру.

Форум — Admin

Можно ли обновить систему с i386 до x86_64 с помощью apt-get upgrade или подобного?

>>>

OxiD
()

Подскажите аудио плеер

Форум — Desktop

Чтобы показывал обложки, создавал коллекцию/библиотеку ( аля амарок и ритмбокс), был НЕ привязан к кде (как амарок) и был симпотичный внешне. Ритмбокс не предлагать 8)

>>>

OxiD
()

Debian проверка пакетов

Форум — Admin

Как в Debian получить список измененных после установки пакетов и желательно, конкретных файлов?

>>>

OxiD
()

Mysql quotes

Форум — Admin

Подскажите, как можно ограничить пользователям максимальный размер БД на диске?

>>>

OxiD
()

thinkpad R60 Пара вопросов.

Форум — Desktop

Вот несколько проблем возникло, гугол мне не помог 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. Все остальное из дистрибутива. Ну кроме модема..

Core2Duo, видео i915, чипсет Intel ICH7

>>>

OxiD
()

RSS подписка на новые темы