Home
mc-dev
mc-dev@conference.jabber.ru
21.04.2011< ^ >

Тема: http://www.midnight-commander.org | Latest stable release: 4.7.5.2
[05:42:15] iNode вышел из конференции
[06:08:34] andrew_b зашёл в конференцию
[06:50:56] iNode зашёл в конференцию
[06:55:51] il.smind зашёл в конференцию
[06:57:45] <il.smind > Попробуй пока в write вставить
vfs_stamp_create (me, super);
не могу
[06:57:59] <il.smind > там нет me
[06:58:07] <il.smind > нет super
[06:58:12] <il.smind > их искать надо
[06:58:32] <il.smind > искать на каждом 8К сегменте
[06:58:51] <andrew_b> Можно не на каждые 8, а пореже.
[06:59:06] <il.smind > как?
[06:59:11] <andrew_b> Каждые 64 или 256.
[06:59:16] <il.smind > как?
[06:59:26] <andrew_b> 64 или 256 по 8К.
[06:59:28] <il.smind > это надо глобальный счетчик
[06:59:35] <andrew_b> Да.
[06:59:40] <il.smind > ну вот
[06:59:53] <andrew_b> В open обнулять.
[07:00:04] <il.smind > я по этическим соображениям не хотел бы
[07:00:22] <il.smind > это конкретный костыль
[07:00:48] <il.smind > может можно менять значение таймаута?
[07:01:01] <il.smind > при заходе
[07:01:03] <andrew_b> ХЗ
[07:01:08] <il.smind > тоже костыль конечно
[07:14:29] <il.smind > andrew_b: скажи
[07:14:31] <il.smind > _readlink
[07:14:56] <il.smind > это чтобы показывало имя того на что ссылается ссылка под курсором
[07:15:07] <il.smind > я что то не понял
[07:15:41] <andrew_b> Аналог readlink(2)
[07:15:53] <il.smind > там передается buf куда надо засунуть текст
[07:16:02] <il.smind > и вернуть длину имени
[07:16:21] <andrew_b> Почитай man 2 readlink
[07:17:29] <il.smind > скажи я могу там делать так
[07:17:48] <il.smind > buf = g_strdup ("12345")
[07:17:59] <il.smind > кто будет чистить потом?
[07:18:40] <il.smind > или там статичный буфер
[07:18:46] <andrew_b> Никто. Будет утечка.
[07:18:51] <il.smind > а как?
[07:18:57] <andrew_b> Там не статичный буфер.
[07:19:06] <il.smind > memcpy ?
[07:19:13] <andrew_b> Буфер передаётся в функцию.
[07:19:26] <andrew_b> g_strlcpy
[07:19:35] <il.smind > понял
[07:20:09] <il.smind > спасибо, я вчера репу чесал-чесал так и не асилил
[07:20:20] <il.smind > теперь всё случится
[07:31:35] <il.smind > andrew_b: сделал всё ок
[07:31:41] <il.smind > andrew_b: скажи
[07:31:54] <il.smind > есть ссылка
[07:32:15] <il.smind > она у меня выглядит файлом а не каталогом
[07:32:54] <il.smind > lstat занимается этим?
[07:33:17] <andrew_b> Да.
[07:34:31] <andrew_b> Интересно, почему люди качают 4.7.5, когда уже есть 4.7.5.2?
[07:35:03] <il.smind > это нелюди
[07:35:38] <il.smind > роботы богомерзкие поди
[07:35:58] <andrew_b> А перенастроить роботов люди не могут?
[07:36:13] <il.smind > наверное в спецификации сборки, а поправить лень
[07:39:10] <andrew_b> il.smind : у тебя деза в русском хэлпе.
[07:39:19] <il.smind > andrew_b: ?
[07:39:28] <il.smind > C
r ?
[07:39:35] <andrew_b> Примеры.
[07:39:43] <il.smind > странно
[07:39:48] <andrew_b> Да.
[07:39:54] <andrew_b> Странно.
[07:40:52] <il.smind > да, поправлю сейчас
[07:41:15] <andrew_b> Что за
onlyrsh.mx:/linux/local
[07:41:29] <andrew_b> ?
[07:43:16] <il.smind > а что не так?
[07:43:24] <andrew_b> Двоеточие.
[07:43:30] <il.smind > это порт
[07:43:37] <il.smind > пустой
[07:43:54] <il.smind > уберу
[07:43:55] <andrew_b> Что значит пустой порт?
[07:44:04] <il.smind > не указан
[07:44:08] <il.smind > значит 22
[07:44:18] <andrew_b> Двоеточие зачем?
[07:44:24] <il.smind > опечатка
[07:44:31] <il.smind > но синтаксис валидный
[07:48:02] <il.smind > пушить?
[07:48:35] <andrew_b> Как хошь.
[07:48:41] <il.smind > ок
[07:50:44] <il.smind > andrew_b: а ты вообще не копируешь файлы?
[07:50:56] <il.smind > на другие хосты
[07:50:59] <andrew_b> Куда?
[07:51:00] <il.smind > в инет...
[07:51:04] <andrew_b> Нет.
[07:51:07] <il.smind > по локалке
[07:51:25] <il.smind > а... ну вот понятно почему тебе пофигу
[07:51:34] <andrew_b> По локалке через Самбу.
[07:51:46] <il.smind > у тебя самба собрана?
[07:51:58] <il.smind > в мц
[07:52:02] <andrew_b> Нет.
[07:52:04] <il.smind > а...
[07:52:07] <il.smind > понял
[07:53:03] <il.smind > скажи
[07:53:09] <il.smind > как они это сделали?
[07:53:20] <il.smind > http://www.libssh2.org/libssh2_sftp_stat_ex.html
[07:53:43] <il.smind > это у них doxygen такое делает?
[07:53:57] <il.smind > было бы прикольно такое иметь
[07:54:07] <il.smind > у нас вроде всё есть
[07:54:11] <andrew_b> This HTML page was made with roffit.
[08:36:04] <il.smind > andrew_b: знаешь еще что хотел спросить
[08:36:19] <il.smind > фар видел?
[08:36:37] <andrew_b> Давно.
[08:37:17] <il.smind > там когда у тебя есть панельный плагин например с winscp
[08:37:29] <il.smind > или ftp
[08:37:53] <il.smind > то первый список это список соединений
[08:38:30] <il.smind > когда нажимаешь f4 то открывается редактирование свойств
[08:39:06] <il.smind > а по ентеру ты устанавливаешь соетинение
[08:40:00] <il.smind > мне такой подход весьма симпатичен
[08:40:18] <il.smind > нам такое реально сделать?
[08:40:53] <andrew_b> Сейчас нет.
[08:41:12] <il.smind > это понятно
[08:41:53] <il.smind > но что надо сделать для этого?
[08:42:12] <il.smind > если без редактирование
[08:42:16] <il.smind > свойств
[08:42:49] <andrew_b> Всё переделать.
[08:42:53] <il.smind > может это можно через extfs
[08:43:10] <il.smind > andrew_b> Всё переделать.
почему так думаешь?
[08:43:25] <andrew_b> > может это можно через extfs
Не готов ответить.
[08:43:41] <il.smind > я пробовал себе такое сделать
[08:44:12] <il.smind > не очень красиво получилось но наверное можно было бы идею продумать дальше
[08:44:31] <il.smind > а вот смотри
[08:46:02] <il.smind > если мы допустим переходим в sftp://
[08:46:14] <il.smind > то можно список хостов показать
[08:47:25] <il.smind > ну это так в качестве идеии
[08:47:37] <il.smind > это может и сам плагин по идее
[08:49:23] <il.smind > если реализовать write, read то наверное можно
[08:49:46] <il.smind > без полной переделки
[08:53:07] <il.smind > сложновато получается, не элегантно...
[08:53:35] <il.smind > нужна такая vfs которая будет строить этот список
[08:58:22] <il.smind > andrew_b: что думаешь на счев vfs ?
[08:59:23] <andrew_b> Ничего.
[08:59:27] <il.smind > по chdir она должна вызывать нужный vfs модуль
[08:59:41] <il.smind > т.е. я так смутно обозначил?
[08:59:55] <il.smind > суть идеи понятна?
[08:59:56] <andrew_b> Мне это пока не интересно.
[09:00:22] <slavazanko/w> всем привет
[09:00:25] <andrew_b> !
[09:00:30] <il.smind > slavazanko/w: привет
[09:00:59] <il.smind > на чём мы остановились?
[09:02:26] <il.smind > slavazanko/w: я вот высказал идею...
[09:02:39] <il.smind > хотелось бы твое мнение
[09:03:12] <slavazanko/w> > это у них doxygen такое делает?
Да, доксиген может такое сварганить... было бы желание описывать существующие функции хотя бы по минимуму...
[09:03:57] <slavazanko/w> идея по поводу "если мы допустим переходим в sftp://"?
[09:04:07] <il.smind > да
[09:04:11] <il.smind > не совсем
[09:04:27] <slavazanko/w> и как сделать?
[09:04:50] <il.smind > я подумал на счет реализации в каждом vfs модуле ткакого построителя панели и понял что не очень
[09:04:55] <il.smind > идея такая
[09:05:32] <il.smind > написать vfs плагин который умеет следующее
[09:06:20] <il.smind > он обращается к нужной ВФС и спрашивает какие есть хосты среди сохранённых
[09:06:49] <slavazanko/w> отдельный плагин для этого?
[09:06:51] <il.smind > допустим он спросил это у плагина sftp
[09:07:19] <slavazanko/w> у нас есть же каталоги быстрого доступа
[09:07:43] <il.smind > sftp говорит aaaa, bbbb, cccc
[09:08:13] <il.smind > этот плагин строит список хостов в виде панели
[09:08:31] <slavazanko/w> не в виде панели. а в виде VFS-каталога.
[09:08:50] <il.smind > при выполнении chdir этот плагин вызывает нужную vfs
[09:09:25] <il.smind > даже не так
[09:09:55] <il.smind > обращаться для выяснения сохранённых хостов не надо
[09:10:04] <slavazanko/w> дело в том, что сейчас аждый VFS-узел имеет тип: акталог. файл. симлинк, устройство...
Так вот, можно расширить этот тип до "виртуальный каталог", например. Тогда одна и та же VFS сначала по <vfs-name>:// построит список виртуальный каталогов, потом при переходе в виртуальный каталог эта же VFS обработает его в соответствии с типом по-своему. То есть. подконнектится
[09:10:07] <il.smind > пусть он сам их хранит
[09:11:05] <slavazanko/w> кто сам хранит?
[09:11:07] <il.smind > >эта же VFS обработает его в соответствии с типом по-своему
вот это то я и предлагаю вынести в отдельную vfs
[09:11:12] <slavazanko/w> VFS-плагин?
[09:11:17] <il.smind > да
[09:11:28] <slavazanko/w> зачем? У нас есть mcconfig
[09:11:39] <slavazanko/w> этакий реестр
[09:11:43] <il.smind > ну он там и посмотрит
[09:11:46] <slavazanko/w> а
[09:12:07] <slavazanko/w> тем не менее, объясни право на жизнь такого решения в свете "каталогов быстрого доступа"
[09:12:46] <il.smind > slavazanko/w: ну эти каталоги не рисуются в виде панели
[09:13:01] <slavazanko/w> а что мешает?
[09:13:23] <slavazanko/w> да и зачем...
[09:15:44] <il.smind > точнее мне и нужен функционал каталогов быстрого запуска только в виде панели
[09:15:45] <il.smind > но
[09:15:58] <il.smind > в каталогах параметры не задать
[09:16:08] <slavazanko/w> какие параметры?
[09:16:25] <il.smind > а мне надо для хоста прописать таймаут,
[09:16:39] <il.smind > да много чего
[09:16:51] <il.smind > допустим использовать ли прокси
[09:17:03] <il.smind > адрес, тип прокси
[09:17:14] <il.smind > использовать ли ключи
[09:17:25] <slavazanko/w> недавно обсуждали, что каталоги быстрого доступа было бы неплохо переделать под vfs_path_t. Так вот, что мешает в процессе переделки добавить фишку по хранению параметров?
[09:17:38] <slavazanko/w> не плоди лишних похожих сущностей
[09:18:10] <il.smind > надо чтобы по префиксу вызывался специальный оьбработчик из нужной вфс
[09:18:37] <il.smind > slavazanko/w> не плоди лишних похожих сущностей
ты о чём?
[09:19:33] <slavazanko/w> я о том, что твоя идея с новым плагином и каталоги быстрого доступа - это логически почти одно и то же. С одной только разницей: каталоги уже есть и их немного подпилить. а плагина ещё нету...
[09:20:11] <slavazanko/w> если хошь - переделай КБД в VFS-плагин с сохранением существующего функционала
[09:20:40] <il.smind > > надо чтобы по префиксу вызывался специальный оьбработчик из нужной вфс
имею ввиду что если нажать кнопку для редактирования то вызывался бы нужный интерфейс из нужной vfs
[09:21:11] <il.smind > slavazanko/w> если хошь - переделай КБД в VFS-плагин с сохранением существующего функционала
это несовсем возможно
[09:21:25] <il.smind > тк. сейчас это диалог
[09:21:39] <il.smind > а будет панель
[09:21:42] <slavazanko/w> > имею ввиду что если нажать кнопку для редактирования то вызывался бы нужный интерфейс из нужной vfs
тут сложнее. потому что vfs понятия зелёного не имеет о widget
[09:22:00] <il.smind > ему не надо иметь
[09:22:23] <slavazanko/w> лучше чтобы vfs-плагин сообщал список параметров: тип параметра. название, дефолтное значение. А интерфейс строился бы на основании этого списка
[09:22:36] <il.smind > в нужной вфс должен быть обработчик который показывает диалог настроек
[09:22:56] <il.smind > slavazanko/w> лучше чтобы vfs-плагин сообщал список параметров: тип параметра. название, дефолтное значение. А интерфейс строился бы на основании этого списка
это очень сложная задача
[09:23:27] <il.smind > я как разработчик могу разметстить элементы как мне надо
[09:23:32] <slavazanko/w> > в нужной вфс должен быть обработчик который показывает диалог настроек
как оно покажет этот диалог. не имея никакого понятия про widget? Добавлять интерфейс(view) в VFS-плагины(model)?
[09:23:50] <il.smind > а тупая железка не может знать как их правильно расставить
[09:24:20] <il.smind > slavazanko/w: незнаю
[09:24:28] <slavazanko/w> ну вот
[09:24:32] <slavazanko/w> пока никак. значит.
[09:24:57] <il.smind > slavazanko/w: да само собой я концепт предлагаю
[09:25:14] <slavazanko/w> мы пока не готовы к этому концепту
[09:25:52] <slavazanko/w> в принципе, можно создать привязку плагинов srv/vfs/* к виджетам
[09:26:10] <slavazanko/w> и реализовать там диалоги настроек...
[09:26:18] <slavazanko/w> гм
[09:26:34] <andrew_b> il.smind : ты лучше подумай, как в панелях таймаут отменить.
[09:26:46] <andrew_b> Точнее, не отменить.
[09:26:54] <andrew_b> А пролонгировать.
[09:27:07] <il.smind > andrew_b: не хватает кармы
[09:27:54] <il.smind > честно говоря надеялся что ты как то поможешь с этим
[09:28:08] <il.smind > я просто почти не понимаю как оно там работает
[10:45:22] andrew_b вышел из конференции
[10:56:29] andrew_b зашёл в конференцию
[11:36:17] <il.smind > andrew_b:
[11:36:22] <il.smind > Вы тут?
[11:36:34] <andrew_b> Туточки.
[11:36:55] <il.smind > vfs_expire (int now)
[11:37:06] <il.smind > я не понял как оно работает
[11:37:29] <il.smind > оно проверяет какой то глобальный таймаут?
[11:37:40] <il.smind > vfs_stamp_create ()
[11:38:02] <andrew_b> Очевидно, проверяет.
219 lc_time.tv_sec -= vfs_timeout;
[11:38:36] <il.smind > vfs_timeout может быть свойством нужной vfs ?
[11:38:55] <andrew_b> В принципе да.
[11:39:00] <andrew_b> А зачем?
[11:39:01] <il.smind > можно с помощью vfs_stamp_create привязать
[11:39:17] <il.smind > andrew_b: мы же обсуждали пару дней назад
[11:39:50] <il.smind > потомучто для fish таймаут надо побольше а для архивов поменьше
[11:42:03] <il.smind > чтобы я вызвал vfs_set_timeout (me, super, 100500)
[11:42:16] <il.smind > и был в шоколаде
[11:42:34] <andrew_b> Это не шоколад. Хотя по цвету похоже.
[11:42:42] <il.smind > ?
[11:42:47] <il.smind > кофе?
[11:42:59] <il.smind > какао?
[11:45:06] <il.smind > еще у меня вопрос
[11:45:53] <il.smind > почему если я зашел на хост hast1 то на hast2 уже не могу попасть пока не выйду из mc?
[11:46:20] <andrew_b> Зашёл по sftp?
[11:46:34] <il.smind > да
[11:46:42] <andrew_b> Потому что твой плагин кривой.
[11:46:58] <il.smind > andrew_b: а он мог быдь не кривым?
[11:47:07] <andrew_b> Он поддерживает только одно соединение.
[11:47:15] <il.smind > что то у меня не чистится при выходе?
[11:47:22] <il.smind > andrew_b> Он поддерживает только одно соединение.
?
[11:47:35] <il.smind > а как ты это понял?
[11:47:39] <andrew_b> Я тебе больше скажу: он падает, если ввести неверный пароль.
[11:48:21] <il.smind > andrew_b: не падает
[11:48:38] <il.smind > не дает зайти просто
[11:49:00] <il.smind > вот если потом выйти из мс то будет сегфолт
[11:49:26] <andrew_b> Захожу /#sftp:127.0.0.1/home/borodin
Просят ввести пароль.
Ввожу неправильный.
sftpfs: making connection to 127.0.0.1
Невозможно прочесть содержимое каталога
[11:49:28] <il.smind > это я знаю, просто не до конца понял как надо на ошибку при соединении реагировать
[11:49:45] <il.smind > [13:49:26] <andrew_b> Захожу /#sftp:127.0.0.1/home/borodin
Просят ввести пароль.
Ввожу неправильный.
sftpfs: making connection to 127.0.0.1
Невозможно прочесть содержимое каталога

пока всё верно
[11:50:51] <andrew_b> Дожидаюсь таймаута
[11:51:09] <il.smind > а ну всё верно
[11:51:14] <il.smind > и должен упасть
[11:51:33] <il.smind > это я поправлю не переживай, там пару строк
[11:51:44] <andrew_b> Да я спокоен.
[11:51:49] <il.smind > это не кривит плагин
[11:52:15] <il.smind > если это и есть "Потому что твой плагин кривой."
[11:52:25] <il.smind > то это не страшно
[11:52:40] <il.smind > т.к. там банально нет проверки
[11:53:01] <andrew_b> Не поэтому.
sftpfs_archive_same всегда возвращает 1.
sftpfs_get_super всегда возвращает первое соединение.
[11:53:02] <il.smind > а вот "Он поддерживает только одно соединение." это более серьёзное обвинение
[11:53:25] <il.smind > >sftpfs_get_super всегда возвращает первое соединение.
а должен?
[11:53:42] <andrew_b> Ну я не знаю. Зачем эта функция?
[11:54:19] <il.smind > задумка была найти super для текущего соединения
[11:57:13] <il.smind > я неправильно реализовал?
[11:57:27] <andrew_b> Видимо, нет.
[11:57:45] <andrew_b> Ты же выдаёшь первое найденное.
[11:57:59] <andrew_b> А не то, которое нужно.
[11:58:41] <il.smind > вот, если бы я был еще чуточну умнее...
[11:59:06] <il.smind > попрошу на следующий год у Деда мороза..
[11:59:33] <il.smind > я к сожалению не понимаю как работает sftpfs_get_super
[11:59:59] <il.smind > и что именно туда передавать чтобы идентифицировать нужную сессию
[12:00:33] <il.smind > у меня по идее есть указатель на session
[12:00:40] <il.smind > в super
[12:00:56] <il.smind > вот только с чем его сравнивать
[12:04:58] <il.smind > я не очень понимаю как связана панель->соединение
[12:05:22] andrew_b вышел из конференции
[12:50:48] <il.smind > andrew_b: дак что?
[13:45:05] andrew_b зашёл в конференцию
[13:45:53] <andrew_b> панель->соединение связаны через url с учётом некоторых других параметров.
[13:46:46] <andrew_b> Посмотри ftpfs_archive_same.
[13:47:04] <andrew_b> Или fish_archive_same
[14:02:21] <il.smind > а что в
ftpfs_archive_same (struct vfs_class *me, struct vfs_s_super *super,
const char *archive_name, char *op, void *cookie)
{
char *host, *user;
int port;

(void) me;
(void) archive_name;
(void) cookie;

ftpfs_split_url (strchr (op, ':') + 1, &host, &user, &port, 0);

port = ((strcmp (host, SUP->host) == 0) && (strcmp (user, SUP->user) == 0)
&& (port == SUP->port));

g_free (host);
g_free (user);

return port;
}
[14:02:41] <il.smind > просто вычленение порта и урла
[14:02:48] <il.smind > из урла
[14:03:19] <andrew_b> Да не. Просто не переименовано.
[14:03:45] <andrew_b> Вместо port напиши любое другое слово.
[14:03:54] <andrew_b> Надо в клинапе поправить.
[14:04:08] <andrew_b> Если не забуду.
[14:04:09] <il.smind > andrew_b: это ты мне говоришь?
[14:04:18] <il.smind > я что то нить потерял
[14:04:20] <andrew_b> Ну ты же спросил.
[14:05:00] <il.smind > какое отношение ftpfs_archive_same имеет к вычислению super для некоего урла?
[14:06:05] <andrew_b> Не для некоего, а для одного из ftp-соединений.
[14:06:14] <il.smind > ну да
[14:06:31] <il.smind > для определённого
[14:06:56] <andrew_b> ((strcmp (host, SUP->host) == 0) && (strcmp (user, SUP->user) == 0) && (port == SUP->port));
[14:07:16] <il.smind > а..
[14:07:38] <il.smind > ну как то вообще не очень
[14:08:14] <il.smind > вот тут
static int
fish_dir_load (struct vfs_class *me, struct vfs_s_inode *dir, char *remote_path)
{
struct vfs_s_super *super = dir->super;
[14:08:33] <il.smind > более как то всё прозрачно
[14:09:01] <andrew_b> Этого у тебя нет.
[14:09:10] <il.smind > да нету
[14:09:30] <il.smind > думаю может сделать позже
[14:09:47] <il.smind > но не для
[14:09:59] <il.smind > а чтобы кэшировать каталог
[14:10:12] <andrew_b> dir_load() используется, если есть флаг VFS_S_REMOTE.
[14:10:19] <il.smind > а то его постоянное перечитывание не очень доставляет
[14:10:24] <il.smind > а...
[14:10:29] <il.smind > блин
[14:11:27] <andrew_b> Кэшировать каталог надо в opendir().
[14:11:54] <andrew_b> А в readdir() читать из кэша.
[14:12:26] <il.smind > это в версии sftp 2.0 будет
[14:12:42] <il.smind > я пока не придумал где кэш хранить
[14:41:50] slavazanko/h зашёл в конференцию
[15:07:40] iNode вышел из конференции
[15:15:29] andrew_b вышел из конференции
[17:18:26] andrew_b зашёл в конференцию
[17:29:24] andrew_b вышел из конференции
[19:18:23] andrew_b зашёл в конференцию
Тема: http://www.midnight-commander.org | Latest stable release: 4.7.5.2
[19:39:54] andrew_b вышел из конференции
[20:39:45] il.smind вышел из конференции
[20:41:32] il.smind зашёл в конференцию
[21:11:04] slavazanko/h вышел из конференции
[21:12:12] slavazanko/h зашёл в конференцию
[22:32:35] il.smind вышел из конференции
[22:41:25] slavazanko/h вышел из конференции
[22:42:03] slavazanko/h зашёл в конференцию
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!