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

Тема: http://www.midnight-commander.org | Latest stable release: 4.7.5.2
[05:38:13] iNode вышел из конференции
[06:14:05] andrew_b зашёл в конференцию
[06:26:34] iNode зашёл в конференцию
[06:54:19] il.smind зашёл в конференцию
[06:54:30] <il.smind > Господа!
[06:58:00] <il.smind > Разрешите поприветствовать вас, и засвидетельствовать своё почтение!
[07:02:02] <il.smind > andrew_b: у меня получилось, прикинь
[07:32:05] <andrew_b> Молодец.
[07:34:02] <il.smind > andrew_b: нет
[07:34:19] <il.smind > я на чтении завалился
[07:34:26] <il.smind > т.е. оно хорошее
[07:34:31] <il.smind > но падает
[07:34:41] <il.smind > не доходя до него
[07:34:54] <il.smind > как только жму f4
[07:37:37] <il.smind > ухты
[07:37:44] <il.smind > копирование не падает
[07:37:50] <il.smind > его сначала сделаю...
[07:38:23] <andrew_b> Начни сначала, с урла.
[07:38:47] <andrew_b> Чтобы был как у остальных.
[07:39:05] <andrew_b> /#sftp:user@host/path
[07:39:42] <andrew_b> С опциональными user, password, path
[07:45:16] <il.smind > andrew_b> С опциональными user, password, path
это реализовано, но отключено
[07:45:45] <il.smind > чтобы не отвлекаться от главного
[07:46:19] <il.smind > там по хорошему надо рисовать диалог для настроек
[07:46:30] <il.smind > sftp не ftp
[07:46:48] <il.smind > там можно по ключу и т.п.
[07:47:08] <il.smind > через прокси хренокси
[07:47:22] <il.smind > выбирать тип криптования
[07:47:29] <il.smind > там много настроек
[07:47:56] <il.smind > andrew_b: надо думать, поэтому пока отложил
[07:48:19] <il.smind > как только скопирую первый файл сделаю чистку кода
[07:59:28] <il.smind > andrew_b: поможешь?
[07:59:50] <andrew_b> Не сейчас.
[08:00:02] <il.smind > мнеб совет
[08:00:15] <il.smind > я сам бы потковырялся
[08:00:23] <il.smind > незнаю куда глядеть
[08:23:10] <andrew_b> gdb, смотри где падает.
[08:23:14] <andrew_b> И почему.
[08:29:56] <il.smind > andrew_b: это и хотел спросить ибо
[08:31:14] <il.smind > #0 0xb7b0910b in strlen () from /lib/libc.so.6вать ] ║ .in ║
#1 0xb7c540ab in g_strdup () from /usr/lib/libglib-2.0.so.0═══════╝ ║
#2 0x080921be in ?? () ║
#3 0x08066f69 in ?? () ║║/src │ acinclude.m4 ║
#4 0x08066fc0 in ?? ()────────────────╢╟──────────────────────────────────────╢
#5 0x0809438b in ?? ()5037 -rw-r--r-- ║║-ВВЕРХ- ║
#6 0x080ae766 in ?? ()════════════════╝╚═══════════════════ 797M/2816M (28%) ═╝
#7 0x080b1011 in ?? () [^]
#8 0x080a6b0b in ?? () 4Правка 5Copy 6RenMov 7Mkdir 8Delete 9PullDn10Выход
#9 0x080be266 in ?? ()
#10 0x08087950 in ?? ()
#11 0x08089594 in ?? ()
#12 0x080899d9 in ?? ()
#13 0x080bf763 in ?? ()
#14 0x08057aa9 in ?? ()
#15 0xb7aa6db6 in __libc_start_main () from /lib/libc.so.6
#16 0x080523e1 in ?? ()
[08:31:22] <il.smind > упс
[08:32:04] <il.smind > #0 0xb7b0910b in strlen () from /lib/libc.so.6
#1 0xb7c540ab in g_strdup () from /usr/lib/libglib-2.0.so.0
#2 0x080921be in ?? ()
#3 0x08066f69 in ?? ()
#4 0x08066fc0 in ?? ()
#5 0x0809438b in ?? ()
#6 0x080ae766 in ?? ()
#7 0x080b1011 in ?? ()
#8 0x080a6b0b in ?? ()
#9 0x080be266 in ?? ()
#10 0x08087950 in ?? ()
#11 0x08089594 in ?? ()
#12 0x080899d9 in ?? ()
#13 0x080bf763 in ?? ()
#14 0x08057aa9 in ?? ()
#15 0xb7aa6db6 in __libc_start_main () from /lib/libc.so.6
#16 0x080523e1 in ?? ()
[08:32:21] <il.smind > и всё
[08:35:52] <il.smind > в логе последнее это
sftpfs_lstat: [/home/normal.c]
sftpfs_lstat: [/home/normal.c]
sftpfs_open [/home/normal.c]
[08:36:19] <il.smind > по идее должен был бы отработать еще и sftpfs_read
[08:36:28] <il.smind > но до него не дохло
[08:36:33] <il.smind > но до него не дошло
[08:43:13] <andrew_b> Нету отладочной инфы.
[08:43:39] <andrew_b> Пересобери с -O0 -g -ggdb3
[08:43:58] <il.smind > а ведь и правда нет
[08:44:13] <il.smind > я дома видел тоже но там собирал с -g -ggdb3
[08:44:24] <il.smind > ок, пересоберу, спасибо
[09:07:04] <il.smind > как это правильно интерпретировать
(gdb) bt
#0 0xb7b0910b in strlen () from /lib/libc.so.6
#1 0xb7c540ab in g_strdup () from /usr/lib/libglib-2.0.so.0
#2 0x0809221e in vfs_split_url (path=0x1 <Address 0x1 out of bounds>, host=
0xbfffcbbc, user=0xbfffcbb8, port=0xbfffcbb4, pass=0xbfffcbb0,
default_port=0, flags=0) at utilvfs.c:397
#3 0x08066fcb in sftpfs_translate_path (path=
0xbfffed60 "\230\355\377\277PP\260\267\270\355\377\277 p\006\b\244\201")
at sftpfs.c:128
#4 0x08067020 in sftpfs_lstat (me=0x81e6ff0, path=
0xbfffed60 "\230\355\377\277PP\260\267\270\355\377\277 p\006\b\244\201",
buf=0xbfffcc58) at sftpfs.c:240
#5 0x080943eb in mc_fstat (handle=100, buf=0xbfffed60) at vfs.c:1194
#6 0x080ae7c6 in copy_file_file (tctx=0x81e0158, ctx=0x81d49c8, src_path=
0x81f64e0 "/#sftp:admin:angelil41@127.0.0.1/home/normal.c", dst_path=
0x81fdf90 "/home/projects/mc/000/normal.c") at file.c:1398
#7 0x080b1071 in panel_operate (source_panel=0x81d7428, operation=OP_COPY,
force_single=0) at file.c:2533
#8 0x080a6b6b in copy_cmd () at cmd.c:818
#9 0x080be2c6 in midnight_execute_cmd (sender=0x81c87f8,
command=<value optimized out>) at midnight.c:1171
#10 0x080879b0 in buttonbar_call (w=0x81c87f8, msg=WIDGET_HOTKEY, parm=1005)
at buttonbar.c:150
#11 buttonbar_callback (w=0x81c87f8, msg=WIDGET_HOTKEY, parm=1005)
---Type <return> to continue, or q <return> to quit---
at buttonbar.c:172
#12 0x080895f4 in send_message (h=0x81c1100, key=1005, event=0xbffff204)
at ../../lib/widget/widget-common.h:132
#13 dlg_try_hotkey (h=0x81c1100, key=1005, event=0xbffff204) at dialog.c:419
#14 dlg_key_event (h=0x81c1100, key=1005, event=0xbffff204) at dialog.c:468
#15 dlg_process_event (h=0x81c1100, key=1005, event=0xbffff204)
at dialog.c:1111
#16 0x08089a39 in frontend_run_dlg (h=0x81c1100) at dialog.c:527
#17 run_dlg (h=0x81c1100) at dialog.c:1143
#18 0x080bf7c3 in create_panels_and_run_mc () at midnight.c:991
#19 do_nc () at midnight.c:1742
#20 0x08057aa9 in main (argc=Cannot access memory at address 0x1
) at main.c:499
[09:07:53] <il.smind > sftpfs_translate_path вот тут path - NULL
[09:08:39] <andrew_b> #2 0x0809221e in vfs_split_url
Ну ты понел, да?
[09:08:52] <andrew_b> Я же говорю, сделай правильный урл.
[09:10:30] <il.smind > andrew_b: да не
[09:10:34] <il.smind > это понятно
[09:10:45] <il.smind > а его вызвал sftpfs_translate_path
[09:10:59] <il.smind > его вызвал sftpfs_lstat
[09:11:09] slavazanko/w вышел из конференции
[09:11:23] slavazanko/w зашёл в конференцию
[09:13:27] <il.smind > andrew_b: в sftpfs_lstat уже передаётся шерня
[09:13:31] <il.smind > andrew_b: в sftpfs_lstat уже передаётся херня
[09:13:43] <slavazanko/w> всем привет
[09:13:47] <il.smind > slavazanko/w: привет
[09:13:54] <slavazanko/w> Илья, ты чего на выходных хотел?
[09:14:11] <il.smind > slavazanko/w: хотел...
[09:14:16] <il.smind > э...
[09:14:17] <il.smind > а..
[09:14:25] <il.smind > а меня вот падало
[09:14:28] <il.smind > и падает
[09:14:32] <slavazanko/w> ?
[09:14:46] <slavazanko/w> и Юра чего-то хотел...
[09:14:47] <andrew_b> Не встаёт, короче.
[09:14:52] <il.smind > andrew_b: вот
[09:15:12] <slavazanko/w> какие-то эротические у вас беседы.
Что падает? что не встаёт?
[09:16:31] theMIROn зашёл в конференцию
[09:24:51] <slavazanko/w> дохтер, меня все игнорируют...
[10:13:46] <andrew_b> .
[10:13:55] <andrew_b> И тишина.
[10:15:05] <il.smind > andrew_b: у меня пока прёт пише говнокод
[10:17:48] <il.smind > Я файл скопировал!!
[10:17:58] <il.smind > апупеть
[10:18:43] <slavazanko/w> угу, сначала меня изнасиловал в личке всякими заоблачными версиями libssh, потом втихаря чего-то там подправил и сейчакс трубит, что всё работает...
[10:18:46] * slavazanko/w плачет
[10:19:06] <il.smind > да там только fstat добавился
[10:19:27] <il.smind > lstat не полдходил
[10:19:38] <il.smind > slavazanko/w: ща запушу
[10:20:59] <andrew_b> lstat для линков. fstat для обычных файлов.
[10:21:26] <il.smind > andrew_b: яж нешарю
[10:26:55] <il.smind > вау даже прерывание копирования работает
[10:27:08] <il.smind > бля я гений!
[10:27:25] <andrew_b> Где запятую поставишь?
[10:28:52] <il.smind > всё бы ему поглумиться над
[10:28:59] <il.smind > э...
[10:31:44] <il.smind > в итоге если знать пару нюансов то vfs плагин не такая сложная штука
[10:32:17] <il.smind > можно наверное и samba переписать
[10:32:34] <il.smind > потом когданибудь
[10:33:40] <slavazanko/w> > (11:27:08) il.smind : бля я гений!
> (11:27:26) andrew_b: Где запятую поставишь?

пора уже wiki-страничку на траке заводить "наш Bash.org"
[10:34:10] <slavazanko/w> > можно наверное и samba переписать
нужно. тикет нумер один
[10:34:27] <slavazanko/w> копирует и не падает вроде
[10:37:56] <il.smind > f4 нажми
[10:38:43] <andrew_b> il.smind : хэлп.
[10:38:53] <il.smind > чё за
vfs_s_find_entry_linear
[10:39:30] <andrew_b> il.smind : _linear это для копирования через темп.
[10:39:32] <il.smind > #0 0x00000000 in ?? ()
#1 0x08072183 in vfs_s_find_entry_linear (me=0x81313a0, root=0x81fdbe0,
a_path=0x81fe590 "home", follow=15, flags=4) at direntry.c:315
#2 0x08071130 in vfs_s_find_inode (me=0x81313a0, super=0x8205b88, path=
0x81fe590 "home", follow=15, flags=4) at direntry.c:1016
#3 0x08072072 in vfs_s_find_entry_linear (me=0x81313a0, root=0x81fdbe0,
a_path=0x81e49b8 "home/normal.c", follow=15, flags=0) at direntry.c:289
#4 0x08071130 in vfs_s_find_inode (me=0x81313a0, super=0x8205b88, path=
0x81e49b8 "home/normal.c", follow=15, flags=0) at direntry.c:1016
#5 0x080717a7 in vfs_s_open (me=0x81313a0, file=
0x81e48e0 "/#sftp:admin:admin@127.0.0.1/home/normal.c", flags=0, mode=
0) at direntry.c:1149
#6 0x080723a6 in vfs_s_getlocalcopy (me=0x81313a0, path=
0x81e48e0 "/#sftp:admin:admin@127.0.0.1/home/normal.c")
at direntry.c:768
[10:39:51] <il.smind > Какого ху дожника
[10:39:59] <slavazanko/w> Илья, слух... а ты не мог бы описать где-нить все свои сакральные знания. полученные в процессе написания sftp?
Ну там, в виде: функция такая-то... делает то-то... Структура такаято... юзается тогда-то в таких-то фнукциях...
[10:40:04] <slavazanko/w> по русски для начала
[10:40:15] <il.smind > slavazanko/w: да могбы
[10:40:29] <il.smind > там реально всё предельно просто
[10:40:45] <andrew_b> il.smind : перезапусти туннель.
[10:40:56] <slavazanko/w> ME->vfs_s_find_entry_linear == null
а оно при этом пытается сделать ME->vfs_s_find_entry_linear()
То есть, пытается вызвать функцию, по указателю NULL
[10:41:17] <il.smind > andrew_b: в работе
[10:41:26] <andrew_b> А какого она пытается? VFS_S_REMOTE?
[10:41:35] <il.smind > slavazanko/w: дак какого оно вообще это _linear
[10:41:35] <andrew_b> Или как это там...
[10:42:00] <slavazanko/w> ну вызывается оно из vfs_s_find_inode
[10:42:10] <andrew_b> 1331 if (sub->flags & VFS_S_REMOTE)
1332 {
1333 vclass->getlocalcopy = vfs_s_getlocalcopy;
1334 vclass->ungetlocalcopy = vfs_s_ungetlocalcopy;
1335 sub->find_entry = vfs_s_find_entry_linear;
1336 }
1337 else
1338 {
1339 sub->find_entry = vfs_s_find_entry_tree;
1340 }
[10:42:15] <il.smind > vfs_sftpfs_ops.flags = VFSF_NOLINKS;
[10:42:28] <il.smind > я правда не понимаю что это значит
[10:42:31] <andrew_b> sub
[10:43:20] <il.smind > andrew_b: а как правильно?
[10:43:28] <il.smind > через темп наверное
[10:43:46] <andrew_b> Через темп не надо.
[10:43:58] <il.smind > а вот ты будешь файл править
[10:44:05] <il.smind > а соединение отвалится
[10:44:17] <il.smind > и всё привет?
[10:44:31] <il.smind > для просмотра это не критично
[10:44:37] <il.smind > хотя
[10:44:38] <slavazanko/w> востановить соединение. прямо в редакторе показать окно ввода адреса
[10:44:44] <andrew_b> Протокол FTP не предназначен для правки файлов.
[10:44:48] <il.smind > при редактировании оно всё в памяти
[10:44:58] <slavazanko/w> стоп
[10:45:02] <il.smind > Протокол FTP не предназначен для правки файлов
[10:45:03] <slavazanko/w> а внешний редактор?
[10:45:16] <slavazanko/w> для этого темп и нужен
[10:45:29] <il.smind > SFTP != Secure FTP
[10:45:34] <andrew_b> Это не тот темп.
[10:45:55] <andrew_b> il.smind : здрасьте, приехали.
[10:46:00] <andrew_b> А что это?
[10:46:05] <andrew_b> SSF2 FTP
[10:46:10] <andrew_b> SSH2 FTP
[10:46:25] <il.smind > есть FTPS и SFTP
[10:46:39] <andrew_b> http://xgu.ru/wiki/Sftp
[10:46:41] <il.smind > SFTP сильно не FTPS
[10:46:53] <andrew_b> SFTP расшифровывается как SSH File Transfer Protocol — SSH-протокол для передачи файлов.
[10:47:07] <il.smind > вот FTPS это тот же FTP
[10:47:18] <andrew_b> Существует заблуждение, что SFTP это просто обычный FTP, работающий поверх SSH. В действительности SFTP — это новый протокол, разработанный с нуля. Ещё его иногда путают с Simple File Transfer Protocol. SFTP расшифровывается как SSH File Transfer Protocol и ничего общего с Simple File Transfer Protocol не имеет.
[10:47:36] <il.smind > andrew_b: вот вот
[10:47:57] <andrew_b> Что из этого ты делаешь?
[10:48:08] <il.smind > SFTP
[10:48:13] <il.smind > SSH File Transfer Protoco
[10:48:16] <il.smind > l
[10:48:23] <andrew_b> Хорошо.
[10:48:36] <il.smind > FTPS это как раз то про что ты подумал
[10:49:04] <il.smind > он в планах но там надо делать так же как с ftp
[10:49:43] <andrew_b> il.smind : ну что там с тоннелем?
[10:49:49] <il.smind > так вот SFTP позволяет исполнять комманды на удалённой машине
[10:50:37] <il.smind > проверяй
[10:51:17] <andrew_b> Нет.
[11:19:50] <il.smind > andrew_b: не могу достучаться
[11:20:17] <andrew_b> Эх.
[11:21:32] <il.smind > andrew_b: через славин тунель?
[11:21:46] <andrew_b> Ладно, не надо.
[11:23:21] <il.smind > эта
[11:23:32] <il.smind > по поводу редактирования
[11:24:25] <il.smind > как сделать то чтобы не было этого линейного
[11:25:20] <andrew_b> Я же тебе показал, почему оно возникает.
[11:25:31] <il.smind > я не понял видать
[11:26:31] <il.smind > надо VFS_S_REMOTE ?
[11:27:05] <andrew_b> Наоборот, не надо.
[11:27:24] <il.smind > я же говорил что у меня VFSF_NOLINKS
[11:27:55] <andrew_b> Это не то.
[11:28:14] <il.smind > убрал присвоение вообще flags
[11:28:27] <andrew_b> Да нет!
[11:28:39] <il.smind > что сделать то мне?
[11:28:53] <andrew_b> Читай.

1331 if (sub->flags & VFS_S_REMOTE)
1332 {
1333 vclass->getlocalcopy = vfs_s_getlocalcopy;
1334 vclass->ungetlocalcopy = vfs_s_ungetlocalcopy;
1335 sub->find_entry = vfs_s_find_entry_linear;
1336 }
1337 else
1338 {
1339 sub->find_entry = vfs_s_find_entry_tree;
1340 }
[11:29:07] <il.smind > if (sub->flags & VFS_S_REMOTE)
[11:29:20] <il.smind > а...
[11:29:32] <il.smind > флаг в sub установить
[11:30:12] <il.smind > блин нет
[11:30:21] <il.smind > так он и так не установлен
[11:31:01] <andrew_b> А это что?

698 sftpfs_subclass.flags = VFS_S_REMOTE;
[11:31:30] <il.smind > меня подставили
[11:31:50] <il.smind > не заметил
[11:32:26] <il.smind > ипать
[11:32:31] <il.smind > работает!
[11:32:52] <il.smind > надо тока write нарисовать
[11:32:56] <il.smind > спасибо!
[11:33:54] <il.smind > ладно
[11:33:59] <il.smind > раз такое дело
[11:34:02] <il.smind > скажите
[11:34:37] <il.smind > не включать же этот вфс модуль в ядро
[11:34:46] <slavazanko/w> ?
[11:34:52] <il.smind > надо же чтобы оно было плагином
[11:34:57] <il.smind > настоящим
[11:34:58] <slavazanko/w> про плагинность пока речи нет
[11:35:03] <slavazanko/w> делай как все
[11:35:25] <il.smind > а что мешает на чекущий момент?
[11:35:27] <slavazanko/w> когда надо будет - будут переделаны все плагины сразу
[11:35:57] <andrew_b> il.smind : Сейчас нету API.
[11:36:00] <slavazanko/w> бкдет мешать шахта лифта. возвышающаяся над недостроенным вторым этажом
[11:36:19] <il.smind > ну оно же есть
[11:36:25] <andrew_b> Нет.
[11:36:40] <il.smind > а вот эти все _read _open ?
[11:37:14] <andrew_b> А всё остальное? Пункт в меню, диалог настроек и т. д?
[11:37:34] <il.smind > andrew_b: это всё херня
[11:37:41] <slavazanko/w> херасе херня
[11:37:45] <il.smind > это можно договориться
[11:38:04] <slavazanko/w> да. можно подпереть костылями шахту лифта, чтобы не качалась...
[11:38:06] <il.smind > т.е. именно пункт в неком диалоге
[11:38:18] <il.smind > slavazanko/w: не об этом я
[11:38:34] <il.smind > есть наша либа
[11:39:01] <il.smind > мы ее вызываем и спрашиваем как оно должно называться в меню
[11:39:07] <il.smind > и дальше рисуем
[11:39:16] <il.smind > это же элементарно
[11:40:03] <il.smind > указатели на диалог настроек плагин должен сам уметь
[11:40:07] <slavazanko/w> Илья, сделать отдельный *.so из VFS-модуля - хоть сейчас как два пальца. Но смысл в этом действии какой, если нету всего остального? Нету кода(API) по добавлению пункта меню, нету кода по поиску *.so в определённом месте и т.д. и т.п.
[11:40:15] <il.smind > надо только его попросить
[11:40:51] <il.smind > slavazanko/w> Илья, сделать отдельный *.so из VFS-модуля - хоть сейчас как два пальца. Но смысл в этом действии какой, если нету всего остального? Нету кода(API) по добавлению пункта меню, нету кода по поиску *.so в определённом месте и т.д. и т.п.

всё понятно что чегото нет
[11:41:08] <il.smind > я посто хотел бы понять чего именно нет, для подумать
[11:41:26] <slavazanko/w> это всё надо не с плеча рубануть и напейсать, а продумать. Продумать все ньюансы (загрузка/выгрузка плагинов "на лету"-нужно ли; использование системы событий для общения между ядром и плагинами; написание API; ...)
[11:43:22] <il.smind > ок, значит не выпендриваюсь и все железо-бетонно вкомпиливаю пока
[11:43:50] <slavazanko/w> > чего именно нет
дохера ещё чего нет. В первую очередь. нет спецификации на плагины. Надо написать хотя бы для начала по-русски, как оно будет выглядеть. В первом приближении. Потом это первое приближение обвязать линками и превратить его в содержание. Потом уже написать тестов и по тестам реализовывать спецификацию
[11:44:26] <slavazanko/w> для написания спецификации у нас уже всё есть.
[11:44:47] <il.smind > >Потом уже написать тестов и по тестам реализовывать спецификацию
это тебя на новой работе подъучили джависты?
[11:47:23] <slavazanko/w> угу. Скажи, что херовый подход?
[11:47:32] <il.smind > хороший
[11:47:38] <il.smind > сам так делаю
[11:47:54] <il.smind > но очень медленный подход
[11:48:29] <slavazanko/w> сразу представляешь. чего ты хочешь от API и как оно будет выглядеть. А написание тестов к уже существующему коду (или просмотр существующих тестов) - это обалденная возможность изучить и пощщупать API изнутри. на примерах
[11:48:44] <slavazanko/w> медленный, но железобетонный
[11:50:52] <andrew_b> Я бы хотел http://developer.gnome.org/libpeas/1.0/
[11:52:22] <il.smind > а версию glib какую надо?
[11:52:33] <andrew_b> А ХЗ пока.
[11:53:02] <il.smind > выглядит пока снаружи красиво
[11:53:08] <andrew_b> GLIB_REQUIRED=2.18.0
GOBJECT_REQUIRED=2.23.6
[11:53:20] <andrew_b> 2.23, наверное.
[11:53:29] <slavazanko/w> высоковато
[11:53:40] <il.smind > а еното чавось GOBJECT_REQUIRED=2.23.6 ?
[11:54:04] <andrew_b> libpeas построена на GObject.
[11:55:57] <il.smind > м... я даж не знаю что это...
[11:56:02] <il.smind > эта...
[11:56:10] <il.smind > извиняюсь за офтопик
[11:56:27] <il.smind > мне нужен сокет и сессия
[11:56:35] <il.smind > а они есть в super
[11:57:08] <il.smind > а супер я ищу по me который vfs_class
[11:57:39] <il.smind > но не me не super мне не дают в функцию
[11:58:31] <il.smind > я как то могу найти хоть что то ?
[11:58:58] <il.smind > текущий me
[11:59:12] <andrew_b> Как ты в рыбе ищешь?
[11:59:16] <il.smind > по нему я выйду на всё остальное
[11:59:22] <il.smind > а... ща
[11:59:59] <il.smind > в самбе там как то мне вообще не понравилось
[12:00:52] <il.smind > в самбе есть
static struct _smbfs_connection
{
struct cli_state *cli;
...
...
time_t last_use;
} smbfs_connections[SMBFS_MAX_CONNECTIONS];
[12:01:14] <andrew_b> Это плохо.
[12:01:18] <il.smind > я так понимаю это глобальй массив структур
[12:02:11] <il.smind > а... в рыбе и ftpfs нет _write
[12:02:28] <il.smind > там через *_linear
[12:02:43] <il.smind > и туда уже отдается super
[12:03:25] <andrew_b> Ну архивную вфс посмотри.
[12:04:55] <il.smind > есть вот такая вот вещь
struct vfs_class *me = FH_SUPER->me;
[12:04:59] <il.smind > кое где
[12:05:35] <il.smind > но я что то не пойму
[12:05:55] <il.smind > #define FH_SUPER FH->ino->super
[12:06:12] <il.smind > #define FH ((vfs_file_handler_t *) fh)
[12:06:44] <il.smind > а вот это мне ужже недоступно
[12:07:41] <il.smind > не подойдёт наверное
[12:10:23] <il.smind > эта...
[12:10:34] <il.smind > тут такое вот дело
[12:10:54] <il.smind > в качаестве void * data
[12:11:33] <il.smind > во многих местах передаётся указатель который вернул sftpfs_opendir
[12:11:42] <il.smind > точне *_opendir
[12:12:08] <il.smind > я это делаю так
[12:12:14] <il.smind > return SUP->sftp_handle;
[12:12:34] <il.smind > может мне переделать на return SUP
[12:12:48] <il.smind > define SUP ((sftpfs_super_data_t *) super->data)
[12:12:51] <Зося Синицкая> il.smind : Хм. Мне про это никто не рассказывал...
[12:13:11] <il.smind > Зося Синицкая: молчание золото
[12:13:14] <Зося Синицкая> il.smind : хбдыщ
[12:13:24] <il.smind > define ввв 2333
[12:13:24] <Зося Синицкая> il.smind : Хм. Мне про это никто не рассказывал...
[12:13:32] <il.smind > define ввв help
[12:13:32] <Зося Синицкая> il.smind : Хм. Мне про это никто не рассказывал...
[12:15:15] <slavazanko/w> не насилуй Зоську. Лучше спроси у него про
help define
[12:15:27] <slavazanko/w> _Лучше спроси у неё про_
[12:15:43] <il.smind > да не так важно
[12:16:42] <il.smind > эта помогите я что то запутался
[12:17:11] <il.smind > было
return SUP->sftp_handle
[12:17:20] <il.smind > сделал
return SUP
[12:17:46] <andrew_b> Не надо.
[12:17:55] <il.smind > как теперь надо переделать
LIBSSH2_SFTP_HANDLE *sftpfs_handle = (LIBSSH2_SFTP_HANDLE *) data;
[12:18:12] <il.smind > andrew_b: да всё нормально будет
[12:18:25] <il.smind > это же void
[12:18:54] <il.smind > как вот это переделать?
LIBSSH2_SFTP_HANDLE *sftpfs_handle = (LIBSSH2_SFTP_HANDLE *) data;
[12:20:01] <il.smind > раньше в data был указатель на super->data->sftpfs_handle
[12:20:37] <il.smind > так
-LIBSSH2_SFTP_HANDLE *sftpfs_handle = (LIBSSH2_SFTP_HANDLE *) data;
LIBSSH2_SFTP_HANDLE *sftpfs_handle = (LIBSSH2_SFTP_HANDLE *) data->sftpfs_handle;
[12:20:42] <il.smind > ?
[12:21:47] <il.smind > или вот так
LIBSSH2_SFTP_HANDLE *sftpfs_handle = (LIBSSH2_SFTP_HANDLE*)((sftpfs_super_data_t *) data)->sftpfs_handle;
?
[12:22:12] <il.smind > data то у меня теперь sftpfs_super_data_t *
[12:24:30] <il.smind > что то не того
[13:14:36] <il.smind > скажите что такое mode_t ?
[13:15:10] <andrew_b> Права доступа.
[13:15:21] <andrew_b> 0777, 0644
[13:16:16] <andrew_b> Нижеследующие флаги определены для поля st_mode:

S_IFMT 0170000 битовая маска для полей типа файла
S_IFSOCK 0140000 сокет
S_IFLNK 0120000 символическая ссылка
S_IFREG 0100000 обычный файл
S_IFBLK 0060000 блочное устройство
S_IFDIR 0040000 каталог
S_IFCHR 0020000 символьное устройство
S_IFIFO 0010000 канал FIFO
S_ISUID 0004000 бит setuid
S_ISGID 0002000 бит setgid (смотри ниже)
S_ISVTX 0001000 бит липкости (смотри ниже)
S_IRWXU 00700 маска для прав доступа пользователя
S_IRUSR 00400 пользователь имеет право чтения
S_IWUSR 00200 пользователь имеет право записи
S_IXUSR 00100 пользователь имеет право выполнения
S_IRWXG 00070 маска для прав доступа группы
S_IRGRP 00040 группа имеет права чтения
S_IWGRP 00020 группа имеет права записи
S_IXGRP 00010 группа имеет права выполнения
S_IRWXO 00007 маска прав доступа всех прочих (не находящихся в группе)
S_IROTH 00004 все прочие имеют права чтения
S_IWOTH 00002 все прочие имеют права записи
S_IXOTH 00001 все прочие имеют права выполнения
[13:16:28] <andrew_b> man 2 stat
[13:17:34] <il.smind > а flags
[13:17:48] <andrew_b> Какие флаги?
[13:17:53] <il.smind > когда туда копирую sftpfs_open flags:[193]
[13:18:25] <andrew_b> ХЗ
[13:18:34] <il.smind > а когда оттуда читаю sftpfs_open flags:[1024ъъ
[13:18:39] <il.smind > а когда оттуда читаю sftpfs_open flags:[1024]
[13:19:13] <il.smind > мне надо понять как открывать файл для записи или чтения
[13:19:57] <andrew_b> man 2 open
[13:20:06] <andrew_b> Параметр flags -- это O_RDONLY, O_WRONLY или O_RDWR, задающие, соответственно, открытие файла только для
чтения, только для записи и для чтения и записи, которые можно комбинировать с помощью логического ИЛИ с нулем
или более нижеследующих флагов:
[13:21:34] <il.smind > if ((flags == (O_WRONLY | O_APPEND))
[13:21:36] <il.smind > нашел
[13:44:18] <il.smind > нарисовал
if (flags == (O_EXCL | O_DIRECT | O_CREAT | O_WRONLY | O_APPEND))
{
mc_log ("sftpfs_open write mode: [%i]\n", mode);
return libssh2_sftp_open (SUP->sftp_session, remote_path, LIBSSH2_FXF_WRITE|LIBSSH2_FXF_CREAT, mode);
}
[13:44:24] <il.smind > не заходит
[13:44:34] <il.smind > в else идёт
[13:45:22] <andrew_b> А ты уверен, что все эти флаги установлены?
[13:45:32] <il.smind > да
[13:45:42] <il.smind > когда туда копирую sftpfs_open flags:[193]
[13:45:45] <il.smind > 193
[13:45:48] <andrew_b> Проверь ещё раз.
[13:46:47] <il.smind > что именно?
[13:47:05] <andrew_b> flags
[13:47:13] <andrew_b> чему равно?
[13:47:29] <il.smind > выведу
[13:48:18] <il.smind > sftpfs_translate_path: [/#sftp:admin@127.0.0.1/home/admin/000/et]
sftpfs_open [/home/admin/000/et] flags: [193]
sftpfs_open read
sftpfs_errno
[13:48:28] <il.smind > потадает в sftpfs_open read
[13:48:50] <il.smind > а должно было быть написано
sftpfs_open write
[13:48:55] <il.smind > в логе
[13:49:16] <il.smind > как узнать 193 чему соответствует?
[13:50:11] theMIROn вышел из конференции
[13:50:19] theMIROn зашёл в конференцию
[13:53:37] <andrew_b> O_EXECL 0200
O_DIRECT 040000
O_CREAT 0100
O_WRONLY 01
O_APPEND 02000

В сумме это не 193.
[13:53:47] <andrew_b> Так что правильно идёт в else.
[13:55:10] <andrew_b> Найди константы в fcntl.h.
[13:55:18] <andrew_b> И руками разложи.
[13:55:48] <andrew_b> 193 это 0301. O_EXECL | O_CREAT | O_WRONLY
[14:00:34] <andrew_b> slavazanko/w: Слав, что ты можешь сказать по #2278?
[14:01:15] <il.smind > т.е. мне лучше так делать
(flags & O_CREAT) || (flags & O_WRONLY)
?
[14:01:44] <andrew_b> il.smind : смотря что ты хочешь.
[14:01:49] <slavazanko/w> andrew_b: надо смотреть.
[14:02:06] <il.smind > andrew_b: хочу записать туда
[14:02:55] <andrew_b> il.smind : [OFFTOP] Скажи как самый знатный рыбовод и рыболов в одном лице, что ты думаешь про http://www.midnight-commander.org/ticket/2532.
[14:03:23] <andrew_b> il.smind : так ты просто перепишешь файл.
[14:04:07] <il.smind > andrew_b: да не
[14:04:15] <il.smind > я же не устанавливаю флаги
[14:04:29] <il.smind > мне надо проверить что нажали
[14:04:40] <il.smind > копирование туда или копирование обратно
[14:04:49] <il.smind > если обратно это read
[14:05:02] <il.smind > если туда это write
[14:05:05] <andrew_b> А...
[14:05:33] iNode вышел из конференции
[14:05:36] <il.smind > а что сказать
[14:05:55] <il.smind > скрипт info не правильно отрабатывает
[14:06:21] <il.smind > именно он определяет какие утилиты есть на целевом хосте
[14:08:23] <andrew_b> Ты видишь скриншот? Там все поля перепутаны.
[14:09:14] <il.smind > да
[14:09:22] <il.smind > именно я это и увидел
[14:09:32] <il.smind > в этом виноват info
[14:09:33] <andrew_b> В имени файла оказалась дата.
[14:09:38] <il.smind > нет
[14:09:52] <andrew_b> Как нет?
[14:09:56] <il.smind > поверь
[14:10:07] <il.smind > или если хочешь могу рассказать
[14:10:11] <il.smind > но это долго
[14:10:16] <andrew_b> Не надо.
[14:10:42] <il.smind > если коротко то скрипт ls парсит данные
[14:11:16] <il.smind > о том кой алгоритм подойдёт для конкретной удалённой машины знает скрипт info
[14:12:44] <andrew_b> А...
[14:15:06] <andrew_b> il.smind : тебе нужно анализировать основные флаги: O_RDONLY, O_WRONLY, O_RDWR.
[14:15:24] <andrew_b> С первыми двуся просто. А вот O_RDWR?
[14:16:10] <il.smind > врядли mc когда копирует файйл на удалённый хост устанавливает O_RDWR
[14:16:22] <il.smind > это как то глупо было бы
[14:16:46] <il.smind > если я правильно понимаю WR
[14:17:03] <il.smind > это же write-read ?
[14:17:24] <il.smind > RD - read
WR - write
[14:17:40] <il.smind > наверное
[14:19:42] theMIROn вышел из конференции
[14:20:25] theMIROn зашёл в конференцию
[14:29:16] <il.smind > сделал копирование туда, обратно, удаление
[14:46:35] <il.smind > в целом работает
[14:46:55] <il.smind > есть косяки и код с утечками
[14:47:00] <il.smind > но работает
[14:47:09] <il.smind > я щаслиф
[14:48:09] <slavazanko/w> гуд :)
[14:48:53] <il.smind > slavazanko/w: хочешь посмотреть?
[14:49:06] <il.smind > заодно поймёшь как оно работает
[14:49:45] <il.smind > будет проще пути переделывать
[14:50:03] <slavazanko/w> пока некогда
[14:50:08] <slavazanko/w> я уже переделываю
[14:50:26] <andrew_b> Ась?
[14:50:37] <il.smind > andrew_b: он уже переделывает
[14:50:44] <slavazanko/w> ага.
[14:50:53] <andrew_b> А поговорить?
[14:51:00] <slavazanko/w> пока получается поступательно. небольшими шагами
[14:51:01] <il.smind > ещё?
[14:51:23] <il.smind > andrew_b: чую шо ничо он там не переделывае
[14:51:29] <andrew_b> Ладно, поворим попозже.
[14:51:40] <andrew_b> Когда что-то будет.
[14:52:37] <il.smind > давай про vfs поговорим
[14:53:02] <slavazanko/w> все прототипы интерфейсных функцих в lib/vfs/interface.c пока что останутся нетронутыми. я пока меняю всё. что глубже. Это чтобы код в src по возможности оставался в неведении изменений в vfs
Короче
[14:53:09] <slavazanko/w> потиху делаю :)
[14:53:44] <il.smind > slavazanko/w: имей ввиду он через 3 дня в отпуск уходит
[14:54:07] <il.smind > ты уж давай ночами, в обед, на толчке...
[14:54:18] <il.smind > чтобы сроки не сорвать
[14:54:22] <slavazanko/w> и куда он уходит? в пустыню, на полюс или на Марс?
будет на связи, наверное
[14:54:40] <slavazanko/w> я вот в мае тоже в отпуск пойду
[14:54:46] <slavazanko/w> но не пропаду
[14:54:50] <slavazanko/w> наверное :)
[14:54:58] <il.smind > хорошо вам там на юге
[14:55:08] <il.smind > вам и отпуск поди не нужен
[14:55:29] <slavazanko/w> херасе. Нужен. На море-то лучше
[14:55:33] <andrew_b> il.smind : не через три дня, а через две недели.
[14:55:44] <andrew_b> il.smind : на каком на юге на?
[14:55:50] <il.smind > andrew_b: на той неделе было через 2 недели
[14:55:52] <slavazanko/w> о, и я примерно также.
Илья, бушь за старшего
[14:55:55] <il.smind > и на этой тоже?
[14:56:03] <andrew_b> il.smind : я с 3 мая.
[14:56:16] <il.smind > andrew_b: на вашем
[14:56:25] <il.smind > в воронеже например
[14:56:34] <andrew_b> il.smind : на карту-то погляди.
[14:56:37] <il.smind > зачем людям в воронеже отпуск?
[14:56:38] <slavazanko/w> я. наверное, чуток попозжа. У нас графики плавающие. Есть жёсткий срок: отгулять до 1-го июня. А когда - этомои траблы
[14:56:41] <andrew_b> Юг он нашёл.
[14:57:25] <slavazanko/w> Илья. у вас там сейчас примерно какая погода? Сколько градусов за окном?
[14:57:36] <il.smind > вот у нас вчера снег шел...
[14:57:47] <il.smind > сегодня +5 ли 7
[14:57:59] <il.smind > правда на градусник не смотрел
[14:58:22] <slavazanko/w> ну вот. У нас +10...+13
не такой уж и юг
[14:58:31] <slavazanko/w> нанемного юг
[14:58:54] <il.smind > +2
[14:59:31] <slavazanko/w> а не. Я наврал чутка... до +17 сейчас
[14:59:33] <slavazanko/w> http://www.gismeteo.by/city/daily/4912/
[14:59:57] <andrew_b> А у нас http://rp5.ru/68088/ru
[15:00:35] <slavazanko/w> http://www.gismeteo.by/city/daily/3979/ - мдым. печально. конечно
[15:00:40] <slavazanko/w> ябздох у вас
[15:01:01] <il.smind > slavazanko/w> а не. Я наврал чутка... до +17 сейчас
:))
[15:02:59] <slavazanko/w> http://www.gismeteo.by/city/daily/5026/ - +17. как и у нас
[15:03:40] <il.smind > было б солнышко...
[15:16:20] andrew_b вышел из конференции
[15:17:42] theMIROn вышел из конференции
[15:17:52] theMIROn зашёл в конференцию
[15:20:12] theMIROn вышел из конференции
[15:30:37] theMIROn зашёл в конференцию
[16:07:43] theMIROn вышел из конференции
[16:12:03] <slavazanko/w> можно слегка смотреть DEV_new_vfs - я там только-только начел.
там оно даже компилится и запускается
[16:19:19] <il.smind > процитирую классика!
[16:19:23] <il.smind > ипануться!
[16:19:37] <il.smind > дома попробую
[16:19:46] <il.smind > а что там уже есть?
[16:19:49] <slavazanko/w> да там не особо-то и видно снаружи
[16:19:51] <il.smind > кроме кода
[16:19:56] <il.smind > не не
[16:20:09] <il.smind > что изменено по структурам
[16:20:11] <il.smind > ?
[16:21:01] <slavazanko/w> там есть начало перевода всех функций, входящих в VFS-module API на новые рельсы. как минимум, вместо struct vfs_super me, char *filename будет передаваться один vfs_path_t *
[16:21:24] <il.smind > а где взять me ?
[16:21:33] <slavazanko/w> void *(*open) (const vfs_path_t * vpath, int flags, mode_t mode);
[16:21:36] <il.smind > это будет поле?
[16:21:45] <il.smind > в vfs_path_t ?
[16:21:53] <slavazanko/w> да. Это поле. Причём это последний элемент пути. он там вычисляется
[16:22:01] <il.smind > понял
[16:22:11] <slavazanko/w> в vfs_path_t есть массив из vfs_path_element_t
[16:22:20] <slavazanko/w> вот в path_element и есть me
[16:22:52] <slavazanko/w> me берётся из последнего элемента пути
[16:24:07] <il.smind > я осмотрю на примере
[16:24:42] <il.smind > slavazanko/w: мой ахиренный sftp можно смотреть
[16:24:54] <slavazanko/w> доки тоже есть?
[16:26:13] <il.smind > slavazanko/w: чо это?
[16:26:23] <il.smind > доктора что ли?
[16:26:52] <il.smind > slavazanko/w: док нету, пока
[16:26:54] <slavazanko/w> угу. а маны - мужики
[16:27:15] <il.smind > этож на попробовать
[16:27:22] theMIROn зашёл в конференцию
[16:27:23] <il.smind > мне теперь надо вылизывать
[16:27:47] <slavazanko/w> я тя знаю. "напопробовать". не успею оглянуться - и оно уже в мастере давно тухнет
[16:27:56] <il.smind > slavazanko/w: да не...
[16:28:03] <il.smind > до мастера далековато
[16:28:16] <il.smind > но смотря какие доки ты имеешь ввиду
[16:28:20] <slavazanko/w> маны
[16:28:24] <slavazanko/w> в первую очередь
[16:28:27] <slavazanko/w> вику
[16:28:35] <il.smind > есть "Как написать плагин с нуля" но позже
[16:29:03] <il.smind > а если просто ман "как открыть соединение" то будет или сегодня или завтра
[16:29:10] <il.smind > это я скопирую с fish
[16:30:24] <il.smind > slavazanko/w: так какие доки?
[16:31:21] <slavazanko/w> доки просто по плагину новому.
[16:31:39] <slavazanko/w> про API это не обязаловка. Это по душе
[16:32:19] <il.smind > ок
[16:33:05] il.smind вышел из конференции
[16:40:13] theMIROn вышел из конференции
[17:25:18] il.smind . зашёл в конференцию
[17:25:36] il.smind . вышел из конференции: Компьютер вошёл в спящий режим
[17:39:55] theMIROn зашёл в конференцию
[18:48:34] andrew_b зашёл в конференцию
[18:57:40] il.smind . зашёл в конференцию
[19:48:46] <andrew_b> il.smind .: привет...
[19:50:44] <andrew_b> Туннель-то починешь к завтрашнему дню?
[19:51:03] <andrew_b> Спокойно ночи.
[19:51:08] andrew_b вышел из конференции
[19:55:44] theMIROn вышел из конференции
[20:01:15] theMIROn зашёл в конференцию
[20:15:14] theMIROn вышел из конференции
[20:15:18] theMIROn зашёл в конференцию
[21:06:10] theMIROn вышел из конференции: Miranda IM. Menshe. Pushche. Proshhe!
[21:35:14] <il.smind .> #ifdef ENABLE_VFS_SMB
struct smb_authinfo *
vfs_smb_get_authinfo (const char *host, const char *share, const char *domain, const char *user)
[21:35:36] <il.smind .> надо выкидывать из mc/src/filemanager/boxes.c
[21:35:42] <il.smind .> не место ему там
[21:46:24] il.smind . вышел из конференции
[22:03:05] ASM зашёл в конференцию
[22:21:31] ASM вышел из конференции
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!