The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

[FreeBSD] Использование netgraph для трансляции tty в socket (tty socket freebsd netgraph)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: tty, socket, freebsd, netgraph,  (найти похожие документы)
From: Eugene Mychlo <http://forum.bestcom.ru/index.php?showuser=8>; Newsgroups: http://forum.bestcom.ru Date: Mon, 29 Jan 2006 18:21:07 +0000 (UTC) Subject: [FreeBSD] Использование netgraph для трансляции tty в socket Оригинал: http://forum.bestcom.ru/index.php?showtopic=36 Схема простая: Есть ng_tty и ng_socket. У них есть крюки hook и inet/dgram/udp. Соединяем их и радуемся жизни. В реальности все немного сложнее. Вначале нужно сделать соответствующее устройство /dev/cuaa0 дисциплиной Netgraph ( NETGRAPHDISC ). К сожалению, из шела этого сделать нельзя. Для этого придется написать маленькую программку на C. #include <stdio.h> #include <fcntl.h> #include <sys/ioctl.h> int main() { int fd; int ldisc; ldisc = NETGRAPHDISC; if ((fd = open("/dev/cuaa0", O_RDWR)) == -1) { perror("open"); exit(0); } if ((ioctl(fd, TIOCSETD, &ldisc)) == -1) { perror("ioctl"); exit(0); } while (1) sleep(100); close(fd); exit(0); } Компилируем. Запускаем. Получаем новый узел tty1 # gcc addtty.c -o addtty # ./addtty & # ngctl list There are 2 total nodes: Name: ngctl34930 Type: socket ID: 00000074 Num hooks: 0 Name: tty1 Type: tty ID: 00000073 Num hooks: 0 Итоговый скрипт будет выглядеть следующим образом: #!/bin/sh kldload netgraph kldload ng_tty kldload ng_ksocket /path-to-addtty/addtty & ngctl mkpeer tty1: ksocket hook inet/dgram/udp ngctl msg tty1:hook bind inet/10.0.0.1:2004 ngctl msg tty1:hook connect inet/10.19.1.1:2004 Коллектор этих данных должен представлять dgram/udp-сокет из которого в цикле считываются блоки удобного размера.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Ваш комментарий
Имя:         
E-Mail:      
Заголовок:
Текст:





  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor