[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 вышел из конференции