Updating to fuse kernel version 7.19

This commit is contained in:
wbaumann 2013-09-08 07:54:58 +00:00
parent 06e1569677
commit 7097f3f583
6 changed files with 1102 additions and 622 deletions

View File

@ -1,6 +1,9 @@
ChangeLog for davfs2 ChangeLog for davfs2
-------------------- --------------------


2013-09-08 Werner Baumann (werner.baumann@onlinehome.de)
* Updating to fuse kernel version 7.19.

2013-08-15 Werner Baumann (werner.baumann@onlinehome.de) 2013-08-15 Werner Baumann (werner.baumann@onlinehome.de)
* cache.c: * cache.c:
Fix has_permission (bug #33644). Fix has_permission (bug #33644).

260
po/cs.po
View File

@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://savannah.nongnu.org/support/?" "Report-Msgid-Bugs-To: http://savannah.nongnu.org/support/?"
"func=additem&group=davfs2\n" "func=additem&group=davfs2\n"
"POT-Creation-Date: 2013-08-09 12:39+0200\n" "POT-Creation-Date: 2013-09-01 18:45+0200\n"
"PO-Revision-Date: 2007-05-03 19:50+0200\n" "PO-Revision-Date: 2007-05-03 19:50+0200\n"
"Last-Translator: Vítězslav Kotrla <vitko@post.cz>\n" "Last-Translator: Vítězslav Kotrla <vitko@post.cz>\n"
"Language-Team: <cs@li.org>\n" "Language-Team: <cs@li.org>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bitX-Generator: KBabel 1.11.4\n" "Content-Transfer-Encoding: 8bitX-Generator: KBabel 1.11.4\n"
"X-Generator: KBabel 1.11.4\n" "X-Generator: KBabel 1.11.4\n"


#: src/cache.c:656 #: src/cache.c:650
#, c-format #, c-format
msgid "" msgid ""
"connection timed out two times;\n" "connection timed out two times;\n"
@ -26,12 +26,12 @@ msgstr ""
"spojení vypršelo dvakrát;\n" "spojení vypršelo dvakrát;\n"
"zkouším to ještě jednou a naposledy" "zkouším to ještě jednou a naposledy"


#: src/cache.c:661 #: src/cache.c:655
#, c-format #, c-format
msgid "Last try succeeded.\n" msgid "Last try succeeded.\n"
msgstr "Poslední pokus byl úspěšný.\n" msgstr "Poslední pokus byl úspěšný.\n"


#: src/cache.c:664 #: src/cache.c:658
#, c-format #, c-format
msgid "" msgid ""
"server temporarily unreachable;\n" "server temporarily unreachable;\n"
@ -40,7 +40,7 @@ msgstr ""
"server je dočasně nedostupný;\n" "server je dočasně nedostupný;\n"
"přesto připojuji" "přesto připojuji"


#: src/cache.c:667 #: src/cache.c:661
#, c-format #, c-format
msgid "" msgid ""
"Mounting failed.\n" "Mounting failed.\n"
@ -49,177 +49,177 @@ msgstr ""
"Připojení selhalo;\n" "Připojení selhalo;\n"
"%s" "%s"


#: src/cache.c:706 #: src/cache.c:700
#, c-format #, c-format
msgid "can't replace %s with %s" msgid "can't replace %s with %s"
msgstr "nemohu nahradit %s pomocí %s" msgstr "nemohu nahradit %s pomocí %s"


#: src/cache.c:710 #: src/cache.c:704
#, c-format #, c-format
msgid "error writing new index file %s" msgid "error writing new index file %s"
msgstr "chyba při zápisu nového indexového souboru %s" msgstr "chyba při zápisu nového indexového souboru %s"


#: src/cache.c:714 #: src/cache.c:708
#, c-format #, c-format
msgid "can't create new index file for %s" msgid "can't create new index file for %s"
msgstr "nemohu vytvořit nový indexový soubor pro %s" msgstr "nemohu vytvořit nový indexový soubor pro %s"


#: src/cache.c:925 #: src/cache.c:911
#, c-format #, c-format
msgid "" msgid ""
"File %s exists on the server but should not. Maybe it is an error in the " "File %s exists on the server but should not. Maybe it is an error in the "
"server's LOCK impementation. You may try option 'use_locks 0' in davfs2.conf." "server's LOCK impementation. You may try option 'use_locks 0' in davfs2.conf."
msgstr "" msgstr ""


#: src/cache.c:2512 src/cache.c:2545 #: src/cache.c:2384 src/cache.c:2417
#, c-format #, c-format
msgid "can't create cache file %s" msgid "can't create cache file %s"
msgstr "nemohu vytvořit soubor vyrovnávací paměti %s" msgstr "nemohu vytvořit soubor vyrovnávací paměti %s"


#: src/cache.c:2560 #: src/cache.c:2432
#, c-format #, c-format
msgid "error writing directory %s" msgid "error writing directory %s"
msgstr "chyba při zápisu adresáře %s" msgstr "chyba při zápisu adresáře %s"


#: src/cache.c:2723 src/mount_davfs.c:1013 #: src/cache.c:2594 src/mount_davfs.c:1011
#, c-format #, c-format
msgid "can't read user data base" msgid "can't read user data base"
msgstr "nemohu přečíst údaje o uživatelích" msgstr "nemohu přečíst údaje o uživatelích"


#: src/cache.c:2735 #: src/cache.c:2606
#, c-format #, c-format
msgid "can't open cache directory %s" msgid "can't open cache directory %s"
msgstr "nemohu otevřít kešovací adresář %s" msgstr "nemohu otevřít kešovací adresář %s"


#: src/cache.c:2750 #: src/cache.c:2621
#, c-format #, c-format
msgid "can't create cache directory %s" msgid "can't create cache directory %s"
msgstr "nemohu vytvořit kešovací adresář %s" msgstr "nemohu vytvořit kešovací adresář %s"


#: src/cache.c:2757 #: src/cache.c:2628
#, c-format #, c-format
msgid "can't access cache directory %s" msgid "can't access cache directory %s"
msgstr "nemohu přistoupit ke kešovacímu adresáři %s" msgstr "nemohu přistoupit ke kešovacímu adresáři %s"


#: src/cache.c:2760 #: src/cache.c:2631
#, c-format #, c-format
msgid "wrong owner of cache directory %s" msgid "wrong owner of cache directory %s"
msgstr "chybný vlastník kešovacího adresáře %s" msgstr "chybný vlastník kešovacího adresáře %s"


#: src/cache.c:2764 #: src/cache.c:2635
#, c-format #, c-format
msgid "wrong permissions set for cache directory %s" msgid "wrong permissions set for cache directory %s"
msgstr "pro kešovací adresář %s nastaveno chybné oprávnění" msgstr "pro kešovací adresář %s nastaveno chybné oprávnění"


#: src/cache.c:2794 #: src/cache.c:2665
msgid "found orphaned file in cache:" msgid "found orphaned file in cache:"
msgstr "" msgstr ""


#: src/cache.c:2867 #: src/cache.c:2738
#, c-format #, c-format
msgid "error parsing %s" msgid "error parsing %s"
msgstr "chyba při zpracování %s" msgstr "chyba při zpracování %s"


#: src/cache.c:2868 #: src/cache.c:2739
#, c-format #, c-format
msgid " at line %i" msgid " at line %i"
msgstr "" msgstr ""


#: src/cache.c:2913 #: src/cache.c:2784
#, c-format #, c-format
msgid "open files exceed max cache size by %llu MiBytes" msgid "open files exceed max cache size by %llu MiBytes"
msgstr "" msgstr ""
"otevřené soubory přesahují limit velikosti vyrovnávací paměti o %llu MiB" "otevřené soubory přesahují limit velikosti vyrovnávací paměti o %llu MiB"


#: src/kernel_interface.c:209 #: src/kernel_interface.c:219
#, c-format
msgid "can't open fuse device"
msgstr "nemohu otevřít fuse zařízení"

#: src/kernel_interface.c:217
#, fuzzy, c-format
msgid "mounting failed"
msgstr "odpojení selhalo"

#: src/kernel_interface.c:226
#, c-format #, c-format
msgid "can't allocate message buffer" msgid "can't allocate message buffer"
msgstr "nemohu alokovat buffer pro zprávu" msgstr "nemohu alokovat buffer pro zprávu"


#: src/mount_davfs.c:294 #: src/kernel_interface.c:246
#, c-format
msgid "can't open fuse device"
msgstr "nemohu otevřít fuse zařízení"

#: src/kernel_interface.c:254
#, fuzzy, c-format
msgid "mounting failed"
msgstr "odpojení selhalo"

#: src/mount_davfs.c:291
#, c-format #, c-format
msgid "can't start daemon process" msgid "can't start daemon process"
msgstr "nemohu spustit proces na pozadí" msgstr "nemohu spustit proces na pozadí"


#: src/mount_davfs.c:316 #: src/mount_davfs.c:313
msgid "can't release root privileges" msgid "can't release root privileges"
msgstr "nemohu uvolnit oprávnění uživatele root" msgstr "nemohu uvolnit oprávnění uživatele root"


#: src/mount_davfs.c:333 #: src/mount_davfs.c:330
msgid "failed to release tty properly" msgid "failed to release tty properly"
msgstr "" msgstr ""


#: src/mount_davfs.c:345 #: src/mount_davfs.c:342
#, c-format #, c-format
msgid "can't write pid file %s" msgid "can't write pid file %s"
msgstr "nemohu zapsat pid souboru %s" msgstr "nemohu zapsat pid souboru %s"


#: src/mount_davfs.c:362 #: src/mount_davfs.c:359
#, c-format #, c-format
msgid "unmounting %s" msgid "unmounting %s"
msgstr "odpojuji %s" msgstr "odpojuji %s"


#: src/mount_davfs.c:364 #: src/mount_davfs.c:361
msgid "unmounting failed" msgid "unmounting failed"
msgstr "odpojení selhalo" msgstr "odpojení selhalo"


#: src/mount_davfs.c:435 #: src/mount_davfs.c:432
#, c-format #, c-format
msgid "can't change group id" msgid "can't change group id"
msgstr "nemohu změnit id skupiny" msgstr "nemohu změnit id skupiny"


#: src/mount_davfs.c:473 src/mount_davfs.c:567 src/mount_davfs.c:593 #: src/mount_davfs.c:470 src/mount_davfs.c:564 src/mount_davfs.c:590
#, c-format #, c-format
msgid "can't create directory %s" msgid "can't create directory %s"
msgstr "nemohu vytvořit adresář %s" msgstr "nemohu vytvořit adresář %s"


#: src/mount_davfs.c:477 src/mount_davfs.c:571 src/mount_davfs.c:597 #: src/mount_davfs.c:474 src/mount_davfs.c:568 src/mount_davfs.c:594
#: src/mount_davfs.c:602 src/mount_davfs.c:610 #: src/mount_davfs.c:599 src/mount_davfs.c:607
#, c-format #, c-format
msgid "can't access directory %s" msgid "can't access directory %s"
msgstr "nemohu přistupovat k adresáři %s" msgstr "nemohu přistupovat k adresáři %s"


#: src/mount_davfs.c:483 src/mount_davfs.c:577 #: src/mount_davfs.c:480 src/mount_davfs.c:574
#, c-format #, c-format
msgid "can't change mode of directory %s" msgid "can't change mode of directory %s"
msgstr "nemohu změnit oprávnění (mode) adresáře %s" msgstr "nemohu změnit oprávnění (mode) adresáře %s"


#: src/mount_davfs.c:488 src/mount_davfs.c:583 #: src/mount_davfs.c:485 src/mount_davfs.c:580
#, c-format #, c-format
msgid "can't change group of directory %s" msgid "can't change group of directory %s"
msgstr "nemohu změnit skupinu adresáře %s" msgstr "nemohu změnit skupinu adresáře %s"


#: src/mount_davfs.c:495 src/mount_davfs.c:551 #: src/mount_davfs.c:492 src/mount_davfs.c:548
#, c-format #, c-format
msgid "file %s has wrong owner" msgid "file %s has wrong owner"
msgstr "soubor %s má chybného vlastníka" msgstr "soubor %s má chybného vlastníka"


#: src/mount_davfs.c:499 src/mount_davfs.c:556 #: src/mount_davfs.c:496 src/mount_davfs.c:553
#, c-format #, c-format
msgid "file %s has wrong permissions" msgid "file %s has wrong permissions"
msgstr "soubor %s má chybná oprávnění" msgstr "soubor %s má chybná oprávnění"


#: src/mount_davfs.c:628 src/mount_davfs.c:680 #: src/mount_davfs.c:625 src/mount_davfs.c:677
#, c-format #, c-format
msgid "can't open file %s" msgid "can't open file %s"
msgstr "nemohu otevřít soubor %s" msgstr "nemohu otevřít soubor %s"


#: src/mount_davfs.c:633 #: src/mount_davfs.c:630
#, c-format #, c-format
msgid "%s is already mounted on %s" msgid "%s is already mounted on %s"
msgstr "%s už je připojeno jako %s" msgstr "%s už je připojeno jako %s"


#: src/mount_davfs.c:655 #: src/mount_davfs.c:652
#, c-format #, c-format
msgid "" msgid ""
"found PID file %s.\n" "found PID file %s.\n"
@ -230,82 +230,82 @@ msgstr ""
"Buď %s používá jiný proces, nebo\n" "Buď %s používá jiný proces, nebo\n"
"jiné připojení skončilo neobvykle" "jiné připojení skončilo neobvykle"


#: src/mount_davfs.c:697 #: src/mount_davfs.c:694
#, c-format #, c-format
msgid "no entry for %s found in %s" msgid "no entry for %s found in %s"
msgstr "pro %s nebyla v %s nalezena žádná položka" msgstr "pro %s nebyla v %s nalezena žádná položka"


#: src/mount_davfs.c:701 #: src/mount_davfs.c:698
#, c-format #, c-format
msgid "different URL in %s" msgid "different URL in %s"
msgstr "v %s je jiné URL" msgstr "v %s je jiné URL"


#: src/mount_davfs.c:704 #: src/mount_davfs.c:701
#, c-format #, c-format
msgid "different file system type in %s" msgid "different file system type in %s"
msgstr "v %s je jiný souborový systém" msgstr "v %s je jiný souborový systém"


#: src/mount_davfs.c:715 #: src/mount_davfs.c:712
#, c-format #, c-format
msgid "different config file in %s" msgid "different config file in %s"
msgstr "v %s je jiný konfigurační soubor" msgstr "v %s je jiný konfigurační soubor"


#: src/mount_davfs.c:721 #: src/mount_davfs.c:718
#, fuzzy, c-format #, fuzzy, c-format
msgid "different username in %s" msgid "different username in %s"
msgstr "v %s je odlišný dir_mode" msgstr "v %s je odlišný dir_mode"


#: src/mount_davfs.c:725 #: src/mount_davfs.c:722
#, fuzzy, c-format #, fuzzy, c-format
msgid "neither option `user' nor option `users' set in %s" msgid "neither option `user' nor option `users' set in %s"
msgstr "volba 'user' není v %s nastavena" msgstr "volba 'user' není v %s nastavena"


#: src/mount_davfs.c:728 #: src/mount_davfs.c:725
#, c-format #, c-format
msgid "different mount options in %s" msgid "different mount options in %s"
msgstr "v %s jsou jiné parametry připojení" msgstr "v %s jsou jiné parametry připojení"


#: src/mount_davfs.c:731 #: src/mount_davfs.c:728
#, c-format #, c-format
msgid "different uid in %s" msgid "different uid in %s"
msgstr "v %s je odlišné uid" msgstr "v %s je odlišné uid"


#: src/mount_davfs.c:733 #: src/mount_davfs.c:730
#, c-format #, c-format
msgid "different gid in %s" msgid "different gid in %s"
msgstr "v %s je odlišné gid" msgstr "v %s je odlišné gid"


#: src/mount_davfs.c:735 #: src/mount_davfs.c:732
#, c-format #, c-format
msgid "different dir_mode in %s" msgid "different dir_mode in %s"
msgstr "v %s je odlišný dir_mode" msgstr "v %s je odlišný dir_mode"


#: src/mount_davfs.c:737 #: src/mount_davfs.c:734
#, c-format #, c-format
msgid "different file_mode in %s" msgid "different file_mode in %s"
msgstr "v %s je odlišný file_mode" msgstr "v %s je odlišný file_mode"


#: src/mount_davfs.c:757 #: src/mount_davfs.c:754
#, c-format #, c-format
msgid "you can't set file owner different from your uid" msgid "you can't set file owner different from your uid"
msgstr "nemůžete nastavit jiného vlastníka souboru než je vaše uid" msgstr "nemůžete nastavit jiného vlastníka souboru než je vaše uid"


#: src/mount_davfs.c:769 #: src/mount_davfs.c:766
#, c-format #, c-format
msgid "you must be member of the group of the file system" msgid "you must be member of the group of the file system"
msgstr "musíte být členem skupiny souborového systému" msgstr "musíte být členem skupiny souborového systému"


#: src/mount_davfs.c:780 #: src/mount_davfs.c:777
#, c-format #, c-format
msgid "user %s must be member of group %s" msgid "user %s must be member of group %s"
msgstr "uživatel %s musí být členem skupiny %s" msgstr "uživatel %s musí být členem skupiny %s"


#: src/mount_davfs.c:800 src/mount_davfs.c:1139 #: src/mount_davfs.c:797 src/mount_davfs.c:1137
#, c-format #, c-format
msgid "can't change effective user id" msgid "can't change effective user id"
msgstr "nemohu změnit identifikátor efektivního uživatele" msgstr "nemohu změnit identifikátor efektivního uživatele"


#: src/mount_davfs.c:844 src/umount_davfs.c:92 #: src/mount_davfs.c:841 src/umount_davfs.c:92
#, c-format #, c-format
msgid "" msgid ""
"This is free software; see the source for copying conditions. There is NO\n" "This is free software; see the source for copying conditions. There is NO\n"
@ -316,67 +316,67 @@ msgstr ""
"Program je poskytován BEZ JAKÉKOLIV záruky, včetně záruky PRODEJNOSTI či " "Program je poskytován BEZ JAKÉKOLIV záruky, včetně záruky PRODEJNOSTI či "
"VHODNOSTI K URČITÉMU ÚČELU.\n" "VHODNOSTI K URČITÉMU ÚČELU.\n"


#: src/mount_davfs.c:860 src/umount_davfs.c:117 #: src/mount_davfs.c:857 src/umount_davfs.c:117
#, c-format #, c-format
msgid "unknown error parsing arguments" msgid "unknown error parsing arguments"
msgstr "neznámá chyba při zpracování argumentů" msgstr "neznámá chyba při zpracování argumentů"


#: src/mount_davfs.c:869 src/umount_davfs.c:123 #: src/mount_davfs.c:866 src/umount_davfs.c:123
#, c-format #, c-format
msgid "missing argument" msgid "missing argument"
msgstr "chybějící argument" msgstr "chybějící argument"


#: src/mount_davfs.c:882 #: src/mount_davfs.c:879
#, c-format #, c-format
msgid "can't evaluate path of mount point %s" msgid "can't evaluate path of mount point %s"
msgstr "nemohu vyhodnotit cestu k přípojnému bodu %s" msgstr "nemohu vyhodnotit cestu k přípojnému bodu %s"


#: src/mount_davfs.c:885 src/umount_davfs.c:125 #: src/mount_davfs.c:882 src/umount_davfs.c:125
#, c-format #, c-format
msgid "too many arguments" msgid "too many arguments"
msgstr "příliš mnoho argumentů" msgstr "příliš mnoho argumentů"


#: src/mount_davfs.c:892 #: src/mount_davfs.c:889
#, c-format #, c-format
msgid "A relative mount point must lie within your home directory" msgid "A relative mount point must lie within your home directory"
msgstr "Relativní přípojný bod musí ležet ve vašem domovském adresáři" msgstr "Relativní přípojný bod musí ležet ve vašem domovském adresáři"


#: src/mount_davfs.c:897 #: src/mount_davfs.c:894
#, c-format #, c-format
msgid "no WebDAV-server specified" msgid "no WebDAV-server specified"
msgstr "nebyl zadán žádný WebDAV server" msgstr "nebyl zadán žádný WebDAV server"


#: src/mount_davfs.c:900 #: src/mount_davfs.c:897
#, c-format #, c-format
msgid "invalid URL" msgid "invalid URL"
msgstr "neplatné URL" msgstr "neplatné URL"


#: src/mount_davfs.c:930 #: src/mount_davfs.c:927
#, c-format #, c-format
msgid "user %s does not exist" msgid "user %s does not exist"
msgstr "uživatel %s neexistuje" msgstr "uživatel %s neexistuje"


#: src/mount_davfs.c:938 #: src/mount_davfs.c:935
#, c-format #, c-format
msgid "group %s does not exist" msgid "group %s does not exist"
msgstr "skupina %s neexistuje" msgstr "skupina %s neexistuje"


#: src/mount_davfs.c:1004 #: src/mount_davfs.c:1002
#, c-format #, c-format
msgid "program is not setuid root" msgid "program is not setuid root"
msgstr "program není spuštěn jako setuid root" msgstr "program není spuštěn jako setuid root"


#: src/mount_davfs.c:1022 #: src/mount_davfs.c:1020
#, c-format #, c-format
msgid "can't read group data base" msgid "can't read group data base"
msgstr "nemohu přečíst údaje o skupinách" msgstr "nemohu přečíst údaje o skupinách"


#: src/mount_davfs.c:1049 src/mount_davfs.c:1062 src/mount_davfs.c:1064 #: src/mount_davfs.c:1047 src/mount_davfs.c:1060 src/mount_davfs.c:1062
#: src/mount_davfs.c:1082 src/mount_davfs.c:1084 src/mount_davfs.c:1099 #: src/mount_davfs.c:1080 src/mount_davfs.c:1082 src/mount_davfs.c:1097
msgid "Password: " msgid "Password: "
msgstr "Heslo: " msgstr "Heslo: "


#: src/mount_davfs.c:1053 #: src/mount_davfs.c:1051
#, fuzzy, c-format #, fuzzy, c-format
msgid "" msgid ""
"Please enter the username to authenticate with proxy\n" "Please enter the username to authenticate with proxy\n"
@ -386,11 +386,11 @@ msgstr ""
"%s (pokud žádné zadat nechcete, pouze stiskněte enter).\n" "%s (pokud žádné zadat nechcete, pouze stiskněte enter).\n"
"Uživatelské jméno: " "Uživatelské jméno: "


#: src/mount_davfs.c:1055 src/mount_davfs.c:1075 #: src/mount_davfs.c:1053 src/mount_davfs.c:1073
msgid "Username:" msgid "Username:"
msgstr "" msgstr ""


#: src/mount_davfs.c:1059 #: src/mount_davfs.c:1057
#, c-format #, c-format
msgid "" msgid ""
"Please enter the password to authenticate user %s with proxy\n" "Please enter the password to authenticate user %s with proxy\n"
@ -399,7 +399,7 @@ msgstr ""
"Zadejte prosím heslo pro autentizaci uživatele %s na proxy\n" "Zadejte prosím heslo pro autentizaci uživatele %s na proxy\n"
"%s (pokud žádné zadat nechcete, pouze stiskněte enter).\n" "%s (pokud žádné zadat nechcete, pouze stiskněte enter).\n"


#: src/mount_davfs.c:1073 #: src/mount_davfs.c:1071
#, fuzzy, c-format #, fuzzy, c-format
msgid "" msgid ""
"Please enter the username to authenticate with server\n" "Please enter the username to authenticate with server\n"
@ -409,7 +409,7 @@ msgstr ""
"%s (nebo pouze stiskně enter, pokud nic zadat nechcete).\n" "%s (nebo pouze stiskně enter, pokud nic zadat nechcete).\n"
"Uživatelské jméno: " "Uživatelské jméno: "


#: src/mount_davfs.c:1079 #: src/mount_davfs.c:1077
#, c-format #, c-format
msgid "" msgid ""
"Please enter the password to authenticate user %s with server\n" "Please enter the password to authenticate user %s with server\n"
@ -418,7 +418,7 @@ msgstr ""
"Zadejte prosím heslo uživatele %s pro autentizaci na serveru\n" "Zadejte prosím heslo uživatele %s pro autentizaci na serveru\n"
"%s (nebo pouze stiskně enter, pokud nic zadat nechcete).\n" "%s (nebo pouze stiskně enter, pokud nic zadat nechcete).\n"


#: src/mount_davfs.c:1097 #: src/mount_davfs.c:1095
#, c-format #, c-format
msgid "" msgid ""
"Please enter the password to decrypt client\n" "Please enter the password to decrypt client\n"
@ -427,85 +427,85 @@ msgstr ""
"Zadejte prosím heslo pro dešifrování klientského\n" "Zadejte prosím heslo pro dešifrování klientského\n"
"certifikátu %s.\n" "certifikátu %s.\n"


#: src/mount_davfs.c:1104 #: src/mount_davfs.c:1102
#, c-format #, c-format
msgid "can't decrypt client certificate %s" msgid "can't decrypt client certificate %s"
msgstr "nemohu dešifrovat klientský certifikát %s" msgstr "nemohu dešifrovat klientský certifikát %s"


#: src/mount_davfs.c:1167 #: src/mount_davfs.c:1165
#, c-format #, c-format
msgid "pid %i, got signal %i" msgid "pid %i, got signal %i"
msgstr "pid %i dostal signál %i" msgstr "pid %i dostal signál %i"


#: src/mount_davfs.c:1206 #: src/mount_davfs.c:1204
#, c-format #, c-format
msgid "" msgid ""
"Warning: can't write entry into mtab, but will mount the file system anyway" "Warning: can't write entry into mtab, but will mount the file system anyway"
msgstr "" msgstr ""
"Varování: nelze zapsat položku do mtab, přesto souborový systém připojím" "Varování: nelze zapsat položku do mtab, přesto souborový systém připojím"


#: src/mount_davfs.c:1232 #: src/mount_davfs.c:1230
#, c-format #, c-format
msgid "option %s has invalid argument;it must be a decimal number" msgid "option %s has invalid argument;it must be a decimal number"
msgstr "volba %s má neplatný argument; musí to být číslo v desítkové soustavě" msgstr "volba %s má neplatný argument; musí to být číslo v desítkové soustavě"


#: src/mount_davfs.c:1235 #: src/mount_davfs.c:1233
#, c-format #, c-format
msgid "option %s has invalid argument;it must be an octal number" msgid "option %s has invalid argument;it must be an octal number"
msgstr "volba %s má neplatný argument; musí to být číslo v osmičkové soustavě" msgstr "volba %s má neplatný argument; musí to být číslo v osmičkové soustavě"


#: src/mount_davfs.c:1238 #: src/mount_davfs.c:1236
#, c-format #, c-format
msgid "option %s has invalid argument;it must be a number" msgid "option %s has invalid argument;it must be a number"
msgstr "volba %s má neplatný argument; musí to být číslo" msgstr "volba %s má neplatný argument; musí to být číslo"


#: src/mount_davfs.c:1513 #: src/mount_davfs.c:1476
#, c-format #, c-format
msgid "option %s requires argument" msgid "option %s requires argument"
msgstr "volba %s vyžaduje argument" msgstr "volba %s vyžaduje argument"


#: src/mount_davfs.c:1605 #: src/mount_davfs.c:1568
#, c-format #, c-format
msgid "Unknown option %s.\n" msgid "Unknown option %s.\n"
msgstr "Neznámá volba %s.\n" msgstr "Neznámá volba %s.\n"


#: src/mount_davfs.c:1976 #: src/mount_davfs.c:1937
#, fuzzy, c-format #, fuzzy, c-format
msgid "can't read certificate %s" msgid "can't read certificate %s"
msgstr "nelze přečíst klientský certifikát %s" msgstr "nelze přečíst klientský certifikát %s"


#: src/mount_davfs.c:2008 src/mount_davfs.c:2021 #: src/mount_davfs.c:1969 src/mount_davfs.c:1982
#, c-format #, c-format
msgid "can't read client certificate %s" msgid "can't read client certificate %s"
msgstr "nelze přečíst klientský certifikát %s" msgstr "nelze přečíst klientský certifikát %s"


#: src/mount_davfs.c:2012 #: src/mount_davfs.c:1973
#, c-format #, c-format
msgid "client certificate file %s has wrong owner" msgid "client certificate file %s has wrong owner"
msgstr "klientský certifikát %s má chybného vlastníka" msgstr "klientský certifikát %s má chybného vlastníka"


#: src/mount_davfs.c:2016 #: src/mount_davfs.c:1977
#, c-format #, c-format
msgid "client certificate file %s has wrong permissions" msgid "client certificate file %s has wrong permissions"
msgstr "soubor s klientským certifikátem %s má chybná oprávnění" msgstr "soubor s klientským certifikátem %s má chybná oprávnění"


#: src/mount_davfs.c:2038 src/mount_davfs.c:2266 #: src/mount_davfs.c:1999 src/mount_davfs.c:2227
#, fuzzy, c-format #, fuzzy, c-format
msgid "opening %s failed" msgid "opening %s failed"
msgstr "odpojení selhalo" msgstr "odpojení selhalo"


#: src/mount_davfs.c:2059 src/mount_davfs.c:2104 src/mount_davfs.c:2196 #: src/mount_davfs.c:2020 src/mount_davfs.c:2065 src/mount_davfs.c:2157
#: src/mount_davfs.c:2293 src/mount_davfs.c:2351 src/mount_davfs.c:2364 #: src/mount_davfs.c:2254 src/mount_davfs.c:2312 src/mount_davfs.c:2325
#, c-format #, c-format
msgid "malformed line" msgid "malformed line"
msgstr "špatně zapsaný řádek" msgstr "špatně zapsaný řádek"


#: src/mount_davfs.c:2174 src/mount_davfs.c:2190 #: src/mount_davfs.c:2135 src/mount_davfs.c:2151
#, c-format #, c-format
msgid "unknown option" msgid "unknown option"
msgstr "neznámá volba" msgstr "neznámá volba"


#: src/mount_davfs.c:2496 #: src/mount_davfs.c:2457
#, c-format #, c-format
msgid "" msgid ""
"Usage:\n" "Usage:\n"
@ -518,7 +518,7 @@ msgstr ""
" %s -h,--help : vytiskne tuto zprávu\n" " %s -h,--help : vytiskne tuto zprávu\n"
"\n" "\n"


#: src/mount_davfs.c:2500 #: src/mount_davfs.c:2461
#, c-format #, c-format
msgid "" msgid ""
"To mount a WebDAV-resource don't call %s directly, but use\n" "To mount a WebDAV-resource don't call %s directly, but use\n"
@ -527,7 +527,7 @@ msgstr ""
"Pro připojení zdroje WebDAV nevolejte přímo %s, ale\n" "Pro připojení zdroje WebDAV nevolejte přímo %s, ale\n"
"použijte místo toho `mount'.\n" "použijte místo toho `mount'.\n"


#: src/mount_davfs.c:2502 #: src/mount_davfs.c:2463
#, c-format #, c-format
msgid "" msgid ""
" mount <mountpoint> : or\n" " mount <mountpoint> : or\n"
@ -538,7 +538,7 @@ msgstr ""
" mount <url_serveru> : připojí zdroj WebDAV tak, jak je zadáno\n" " mount <url_serveru> : připojí zdroj WebDAV tak, jak je zadáno\n"
" v /etc/fstab.\n" " v /etc/fstab.\n"


#: src/mount_davfs.c:2505 #: src/mount_davfs.c:2466
#, c-format #, c-format
msgid "" msgid ""
" mount -t davfs <server-url> <mountpoint> [-o options]\n" " mount -t davfs <server-url> <mountpoint> [-o options]\n"
@ -555,7 +555,7 @@ msgstr ""
" označuje seznam voleb oddělených čárkou.\n" " označuje seznam voleb oddělených čárkou.\n"
"\n" "\n"


#: src/mount_davfs.c:2510 #: src/mount_davfs.c:2471
#, c-format #, c-format
msgid "" msgid ""
"Recognised options:\n" "Recognised options:\n"
@ -574,7 +574,7 @@ msgstr ""
" file_mode= : výchozí mode souboru (v osmičkové soustavě)\n" " file_mode= : výchozí mode souboru (v osmičkové soustavě)\n"
" dir_mode= : výchozí mode adresáře (v osmičkové soustavě)\n" " dir_mode= : výchozí mode adresáře (v osmičkové soustavě)\n"


#: src/mount_davfs.c:2516 #: src/mount_davfs.c:2477
#, c-format #, c-format
msgid "" msgid ""
" ro : mount read-only\n" " ro : mount read-only\n"
@ -674,96 +674,96 @@ msgstr "%s: čekám, než si %s (pid %s) sesynchronizuje vyrovnávací paměť.
msgid "an error occured while waiting; please wait for %s to terminate" msgid "an error occured while waiting; please wait for %s to terminate"
msgstr "při čekání došlo k chybě; čekejte prosím až %s skončí" msgstr "při čekání došlo k chybě; čekejte prosím až %s skončí"


#: src/webdav.c:360 #: src/webdav.c:337
#, fuzzy, c-format #, fuzzy, c-format
msgid "socket library initialization failed" msgid "socket library initialization failed"
msgstr "selhala inicializace knihovny socketů" msgstr "selhala inicializace knihovny socketů"


#: src/webdav.c:372 #: src/webdav.c:349
#, c-format #, c-format
msgid "can't open stream to log neon-messages" msgid "can't open stream to log neon-messages"
msgstr "" msgstr ""


#: src/webdav.c:413 #: src/webdav.c:380
#, c-format #, c-format
msgid "neon library does not support TLS/SSL" msgid "neon library does not support TLS/SSL"
msgstr "knihovna neon nepodporuje TLS/SSL" msgstr "knihovna neon nepodporuje TLS/SSL"


#: src/webdav.c:475 src/webdav.c:478 #: src/webdav.c:440 src/webdav.c:443
#, c-format #, c-format
msgid "mounting failed; the server does not support WebDAV" msgid "mounting failed; the server does not support WebDAV"
msgstr "připojení selhalo; server nepodporuje WebDAV" msgstr "připojení selhalo; server nepodporuje WebDAV"


#: src/webdav.c:486 #: src/webdav.c:451
#, c-format #, c-format
msgid "warning: the server does not support locks" msgid "warning: the server does not support locks"
msgstr "varování: server nepodporuje zámky" msgstr "varování: server nepodporuje zámky"


#: src/webdav.c:1566 #: src/webdav.c:1454
msgid "authentication failure:" msgid "authentication failure:"
msgstr "selhání autentizace:" msgstr "selhání autentizace:"


#: src/webdav.c:1604 #: src/webdav.c:1492
#, c-format #, c-format
msgid "%i can't open cache file" msgid "%i can't open cache file"
msgstr "%i nemůže otevřít soubor vyrovnávací paměti" msgstr "%i nemůže otevřít soubor vyrovnávací paměti"


#: src/webdav.c:1612 #: src/webdav.c:1500
#, c-format #, c-format
msgid "%i error writing to cache file" msgid "%i error writing to cache file"
msgstr "%i chyba při zápisu do souboru vyrovnávací paměti" msgstr "%i chyba při zápisu do souboru vyrovnávací paměti"


#: src/webdav.c:1922 src/webdav.c:1951 src/webdav.c:1988 #: src/webdav.c:1741 src/webdav.c:1770 src/webdav.c:1807
#, c-format #, c-format
msgid "the server certificate is not trusted" msgid "the server certificate is not trusted"
msgstr "certifikát serveru je nedůvěryhodný" msgstr "certifikát serveru je nedůvěryhodný"


#: src/webdav.c:1931 src/webdav.c:1934 #: src/webdav.c:1750 src/webdav.c:1753
#, c-format #, c-format
msgid "error processing server certificate" msgid "error processing server certificate"
msgstr "chyba při zpracování certifikátu serveru" msgstr "chyba při zpracování certifikátu serveru"


#: src/webdav.c:1945 src/webdav.c:1979 #: src/webdav.c:1764 src/webdav.c:1798
#, c-format #, c-format
msgid "the server certificate is not yet valid" msgid "the server certificate is not yet valid"
msgstr "certifikát serveru zatím není platný" msgstr "certifikát serveru zatím není platný"


#: src/webdav.c:1947 src/webdav.c:1982 #: src/webdav.c:1766 src/webdav.c:1801
#, c-format #, c-format
msgid "the server certificate has expired" msgid "the server certificate has expired"
msgstr "platnost certifikátu serveru vypršela" msgstr "platnost certifikátu serveru vypršela"


#: src/webdav.c:1949 src/webdav.c:1985 #: src/webdav.c:1768 src/webdav.c:1804
#, c-format #, c-format
msgid "the server certificate does not match the server name" msgid "the server certificate does not match the server name"
msgstr "certifikát serveru nedopovídá jménu serveru" msgstr "certifikát serveru nedopovídá jménu serveru"


#: src/webdav.c:1953 src/webdav.c:1991 #: src/webdav.c:1772 src/webdav.c:1810
#, c-format #, c-format
msgid "unknown certificate error" msgid "unknown certificate error"
msgstr "neznámá chyba certifikátu" msgstr "neznámá chyba certifikátu"


#: src/webdav.c:1954 #: src/webdav.c:1773
#, c-format #, c-format
msgid " issuer: %s" msgid " issuer: %s"
msgstr " vydavatel: %s" msgstr " vydavatel: %s"


#: src/webdav.c:1956 #: src/webdav.c:1775
#, c-format #, c-format
msgid " subject: %s" msgid " subject: %s"
msgstr " subjekt: %s" msgstr " subjekt: %s"


#: src/webdav.c:1958 #: src/webdav.c:1777
#, c-format #, c-format
msgid " identity: %s" msgid " identity: %s"
msgstr " identita: %s" msgstr " identita: %s"


#: src/webdav.c:1960 #: src/webdav.c:1779
#, c-format #, c-format
msgid " fingerprint: %s" msgid " fingerprint: %s"
msgstr " otisk: %s" msgstr " otisk: %s"


#: src/webdav.c:1962 #: src/webdav.c:1781
#, c-format #, c-format
msgid "" msgid ""
"You only should accept this certificate, if you can\n" "You only should accept this certificate, if you can\n"
@ -774,27 +774,27 @@ msgstr ""
"ověřit jeho otisk! Server může být podvržen nebo může\n" "ověřit jeho otisk! Server může být podvržen nebo může\n"
"dojít k útoku s prostředníkem (man-in-the-middle attack).\n" "dojít k útoku s prostředníkem (man-in-the-middle attack).\n"


#: src/webdav.c:1965 #: src/webdav.c:1784
#, c-format #, c-format
msgid "Accept certificate for this session? [y,N] " msgid "Accept certificate for this session? [y,N] "
msgstr "Přijmout certifikát pro toto sezení? [y,N] " msgstr "Přijmout certifikát pro toto sezení? [y,N] "


#: src/webdav.c:1992 #: src/webdav.c:1811
#, c-format #, c-format
msgid " issuer: %s" msgid " issuer: %s"
msgstr " vydavatel: %s" msgstr " vydavatel: %s"


#: src/webdav.c:1993 #: src/webdav.c:1812
#, c-format #, c-format
msgid " subject: %s" msgid " subject: %s"
msgstr " subjekt: %s" msgstr " subjekt: %s"


#: src/webdav.c:1994 #: src/webdav.c:1813
#, c-format #, c-format
msgid " identity: %s" msgid " identity: %s"
msgstr " identita: %s" msgstr " identita: %s"


#: src/webdav.c:1997 #: src/webdav.c:1816
msgid " accepted by user" msgid " accepted by user"
msgstr " přijat uživatelem" msgstr " přijat uživatelem"



View File

@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: davfs2 1.4.6\n" "Project-Id-Version: davfs2 1.4.6\n"
"Report-Msgid-Bugs-To: http://savannah.nongnu.org/support/?" "Report-Msgid-Bugs-To: http://savannah.nongnu.org/support/?"
"func=additem&group=davfs2\n" "func=additem&group=davfs2\n"
"POT-Creation-Date: 2013-08-09 12:39+0200\n" "POT-Creation-Date: 2013-09-01 18:45+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,202 +18,202 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"


#: src/cache.c:656 #: src/cache.c:650
#, c-format #, c-format
msgid "" msgid ""
"connection timed out two times;\n" "connection timed out two times;\n"
"trying one last time" "trying one last time"
msgstr "" msgstr ""


#: src/cache.c:661 #: src/cache.c:655
#, c-format #, c-format
msgid "Last try succeeded.\n" msgid "Last try succeeded.\n"
msgstr "" msgstr ""


#: src/cache.c:664 #: src/cache.c:658
#, c-format #, c-format
msgid "" msgid ""
"server temporarily unreachable;\n" "server temporarily unreachable;\n"
"mounting anyway" "mounting anyway"
msgstr "" msgstr ""


#: src/cache.c:667 #: src/cache.c:661
#, c-format #, c-format
msgid "" msgid ""
"Mounting failed.\n" "Mounting failed.\n"
"%s" "%s"
msgstr "" msgstr ""


#: src/cache.c:706 #: src/cache.c:700
#, c-format #, c-format
msgid "can't replace %s with %s" msgid "can't replace %s with %s"
msgstr "" msgstr ""


#: src/cache.c:710 #: src/cache.c:704
#, c-format #, c-format
msgid "error writing new index file %s" msgid "error writing new index file %s"
msgstr "" msgstr ""


#: src/cache.c:714 #: src/cache.c:708
#, c-format #, c-format
msgid "can't create new index file for %s" msgid "can't create new index file for %s"
msgstr "" msgstr ""


#: src/cache.c:925 #: src/cache.c:911
#, c-format #, c-format
msgid "" msgid ""
"File %s exists on the server but should not. Maybe it is an error in the " "File %s exists on the server but should not. Maybe it is an error in the "
"server's LOCK impementation. You may try option 'use_locks 0' in davfs2.conf." "server's LOCK impementation. You may try option 'use_locks 0' in davfs2.conf."
msgstr "" msgstr ""


#: src/cache.c:2512 src/cache.c:2545 #: src/cache.c:2384 src/cache.c:2417
#, c-format #, c-format
msgid "can't create cache file %s" msgid "can't create cache file %s"
msgstr "" msgstr ""


#: src/cache.c:2560 #: src/cache.c:2432
#, c-format #, c-format
msgid "error writing directory %s" msgid "error writing directory %s"
msgstr "" msgstr ""


#: src/cache.c:2723 src/mount_davfs.c:1013 #: src/cache.c:2594 src/mount_davfs.c:1011
#, c-format #, c-format
msgid "can't read user data base" msgid "can't read user data base"
msgstr "" msgstr ""


#: src/cache.c:2735 #: src/cache.c:2606
#, c-format #, c-format
msgid "can't open cache directory %s" msgid "can't open cache directory %s"
msgstr "" msgstr ""


#: src/cache.c:2750 #: src/cache.c:2621
#, c-format #, c-format
msgid "can't create cache directory %s" msgid "can't create cache directory %s"
msgstr "" msgstr ""


#: src/cache.c:2757 #: src/cache.c:2628
#, c-format #, c-format
msgid "can't access cache directory %s" msgid "can't access cache directory %s"
msgstr "" msgstr ""


#: src/cache.c:2760 #: src/cache.c:2631
#, c-format #, c-format
msgid "wrong owner of cache directory %s" msgid "wrong owner of cache directory %s"
msgstr "" msgstr ""


#: src/cache.c:2764 #: src/cache.c:2635
#, c-format #, c-format
msgid "wrong permissions set for cache directory %s" msgid "wrong permissions set for cache directory %s"
msgstr "" msgstr ""


#: src/cache.c:2794 #: src/cache.c:2665
msgid "found orphaned file in cache:" msgid "found orphaned file in cache:"
msgstr "" msgstr ""


#: src/cache.c:2867 #: src/cache.c:2738
#, c-format #, c-format
msgid "error parsing %s" msgid "error parsing %s"
msgstr "" msgstr ""


#: src/cache.c:2868 #: src/cache.c:2739
#, c-format #, c-format
msgid " at line %i" msgid " at line %i"
msgstr "" msgstr ""


#: src/cache.c:2913 #: src/cache.c:2784
#, c-format #, c-format
msgid "open files exceed max cache size by %llu MiBytes" msgid "open files exceed max cache size by %llu MiBytes"
msgstr "" msgstr ""


#: src/kernel_interface.c:209 #: src/kernel_interface.c:219
#, c-format
msgid "can't open fuse device"
msgstr ""

#: src/kernel_interface.c:217
#, c-format
msgid "mounting failed"
msgstr ""

#: src/kernel_interface.c:226
#, c-format #, c-format
msgid "can't allocate message buffer" msgid "can't allocate message buffer"
msgstr "" msgstr ""


#: src/mount_davfs.c:294 #: src/kernel_interface.c:246
#, c-format
msgid "can't open fuse device"
msgstr ""

#: src/kernel_interface.c:254
#, c-format
msgid "mounting failed"
msgstr ""

#: src/mount_davfs.c:291
#, c-format #, c-format
msgid "can't start daemon process" msgid "can't start daemon process"
msgstr "" msgstr ""


#: src/mount_davfs.c:316 #: src/mount_davfs.c:313
msgid "can't release root privileges" msgid "can't release root privileges"
msgstr "" msgstr ""


#: src/mount_davfs.c:333 #: src/mount_davfs.c:330
msgid "failed to release tty properly" msgid "failed to release tty properly"
msgstr "" msgstr ""


#: src/mount_davfs.c:345 #: src/mount_davfs.c:342
#, c-format #, c-format
msgid "can't write pid file %s" msgid "can't write pid file %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:362 #: src/mount_davfs.c:359
#, c-format #, c-format
msgid "unmounting %s" msgid "unmounting %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:364 #: src/mount_davfs.c:361
msgid "unmounting failed" msgid "unmounting failed"
msgstr "" msgstr ""


#: src/mount_davfs.c:435 #: src/mount_davfs.c:432
#, c-format #, c-format
msgid "can't change group id" msgid "can't change group id"
msgstr "" msgstr ""


#: src/mount_davfs.c:473 src/mount_davfs.c:567 src/mount_davfs.c:593 #: src/mount_davfs.c:470 src/mount_davfs.c:564 src/mount_davfs.c:590
#, c-format #, c-format
msgid "can't create directory %s" msgid "can't create directory %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:477 src/mount_davfs.c:571 src/mount_davfs.c:597 #: src/mount_davfs.c:474 src/mount_davfs.c:568 src/mount_davfs.c:594
#: src/mount_davfs.c:602 src/mount_davfs.c:610 #: src/mount_davfs.c:599 src/mount_davfs.c:607
#, c-format #, c-format
msgid "can't access directory %s" msgid "can't access directory %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:483 src/mount_davfs.c:577 #: src/mount_davfs.c:480 src/mount_davfs.c:574
#, c-format #, c-format
msgid "can't change mode of directory %s" msgid "can't change mode of directory %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:488 src/mount_davfs.c:583 #: src/mount_davfs.c:485 src/mount_davfs.c:580
#, c-format #, c-format
msgid "can't change group of directory %s" msgid "can't change group of directory %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:495 src/mount_davfs.c:551 #: src/mount_davfs.c:492 src/mount_davfs.c:548
#, c-format #, c-format
msgid "file %s has wrong owner" msgid "file %s has wrong owner"
msgstr "" msgstr ""


#: src/mount_davfs.c:499 src/mount_davfs.c:556 #: src/mount_davfs.c:496 src/mount_davfs.c:553
#, c-format #, c-format
msgid "file %s has wrong permissions" msgid "file %s has wrong permissions"
msgstr "" msgstr ""


#: src/mount_davfs.c:628 src/mount_davfs.c:680 #: src/mount_davfs.c:625 src/mount_davfs.c:677
#, c-format #, c-format
msgid "can't open file %s" msgid "can't open file %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:633 #: src/mount_davfs.c:630
#, c-format #, c-format
msgid "%s is already mounted on %s" msgid "%s is already mounted on %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:655 #: src/mount_davfs.c:652
#, c-format #, c-format
msgid "" msgid ""
"found PID file %s.\n" "found PID file %s.\n"
@ -221,265 +221,265 @@ msgid ""
"or another mount process ended irregular" "or another mount process ended irregular"
msgstr "" msgstr ""


#: src/mount_davfs.c:697 #: src/mount_davfs.c:694
#, c-format #, c-format
msgid "no entry for %s found in %s" msgid "no entry for %s found in %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:701 #: src/mount_davfs.c:698
#, c-format #, c-format
msgid "different URL in %s" msgid "different URL in %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:704 #: src/mount_davfs.c:701
#, c-format #, c-format
msgid "different file system type in %s" msgid "different file system type in %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:715 #: src/mount_davfs.c:712
#, c-format #, c-format
msgid "different config file in %s" msgid "different config file in %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:721 #: src/mount_davfs.c:718
#, c-format #, c-format
msgid "different username in %s" msgid "different username in %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:725 #: src/mount_davfs.c:722
#, c-format #, c-format
msgid "neither option `user' nor option `users' set in %s" msgid "neither option `user' nor option `users' set in %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:728 #: src/mount_davfs.c:725
#, c-format #, c-format
msgid "different mount options in %s" msgid "different mount options in %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:731 #: src/mount_davfs.c:728
#, c-format #, c-format
msgid "different uid in %s" msgid "different uid in %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:733 #: src/mount_davfs.c:730
#, c-format #, c-format
msgid "different gid in %s" msgid "different gid in %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:735 #: src/mount_davfs.c:732
#, c-format #, c-format
msgid "different dir_mode in %s" msgid "different dir_mode in %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:737 #: src/mount_davfs.c:734
#, c-format #, c-format
msgid "different file_mode in %s" msgid "different file_mode in %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:757 #: src/mount_davfs.c:754
#, c-format #, c-format
msgid "you can't set file owner different from your uid" msgid "you can't set file owner different from your uid"
msgstr "" msgstr ""


#: src/mount_davfs.c:769 #: src/mount_davfs.c:766
#, c-format #, c-format
msgid "you must be member of the group of the file system" msgid "you must be member of the group of the file system"
msgstr "" msgstr ""


#: src/mount_davfs.c:780 #: src/mount_davfs.c:777
#, c-format #, c-format
msgid "user %s must be member of group %s" msgid "user %s must be member of group %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:800 src/mount_davfs.c:1139 #: src/mount_davfs.c:797 src/mount_davfs.c:1137
#, c-format #, c-format
msgid "can't change effective user id" msgid "can't change effective user id"
msgstr "" msgstr ""


#: src/mount_davfs.c:844 src/umount_davfs.c:92 #: src/mount_davfs.c:841 src/umount_davfs.c:92
#, c-format #, c-format
msgid "" msgid ""
"This is free software; see the source for copying conditions. There is NO\n" "This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr "" msgstr ""


#: src/mount_davfs.c:860 src/umount_davfs.c:117 #: src/mount_davfs.c:857 src/umount_davfs.c:117
#, c-format #, c-format
msgid "unknown error parsing arguments" msgid "unknown error parsing arguments"
msgstr "" msgstr ""


#: src/mount_davfs.c:869 src/umount_davfs.c:123 #: src/mount_davfs.c:866 src/umount_davfs.c:123
#, c-format #, c-format
msgid "missing argument" msgid "missing argument"
msgstr "" msgstr ""


#: src/mount_davfs.c:882 #: src/mount_davfs.c:879
#, c-format #, c-format
msgid "can't evaluate path of mount point %s" msgid "can't evaluate path of mount point %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:885 src/umount_davfs.c:125 #: src/mount_davfs.c:882 src/umount_davfs.c:125
#, c-format #, c-format
msgid "too many arguments" msgid "too many arguments"
msgstr "" msgstr ""


#: src/mount_davfs.c:892 #: src/mount_davfs.c:889
#, c-format #, c-format
msgid "A relative mount point must lie within your home directory" msgid "A relative mount point must lie within your home directory"
msgstr "" msgstr ""


#: src/mount_davfs.c:897 #: src/mount_davfs.c:894
#, c-format #, c-format
msgid "no WebDAV-server specified" msgid "no WebDAV-server specified"
msgstr "" msgstr ""


#: src/mount_davfs.c:900 #: src/mount_davfs.c:897
#, c-format #, c-format
msgid "invalid URL" msgid "invalid URL"
msgstr "" msgstr ""


#: src/mount_davfs.c:930 #: src/mount_davfs.c:927
#, c-format #, c-format
msgid "user %s does not exist" msgid "user %s does not exist"
msgstr "" msgstr ""


#: src/mount_davfs.c:938 #: src/mount_davfs.c:935
#, c-format #, c-format
msgid "group %s does not exist" msgid "group %s does not exist"
msgstr "" msgstr ""


#: src/mount_davfs.c:1004 #: src/mount_davfs.c:1002
#, c-format #, c-format
msgid "program is not setuid root" msgid "program is not setuid root"
msgstr "" msgstr ""


#: src/mount_davfs.c:1022 #: src/mount_davfs.c:1020
#, c-format #, c-format
msgid "can't read group data base" msgid "can't read group data base"
msgstr "" msgstr ""


#: src/mount_davfs.c:1049 src/mount_davfs.c:1062 src/mount_davfs.c:1064 #: src/mount_davfs.c:1047 src/mount_davfs.c:1060 src/mount_davfs.c:1062
#: src/mount_davfs.c:1082 src/mount_davfs.c:1084 src/mount_davfs.c:1099 #: src/mount_davfs.c:1080 src/mount_davfs.c:1082 src/mount_davfs.c:1097
msgid "Password: " msgid "Password: "
msgstr "" msgstr ""


#: src/mount_davfs.c:1053 #: src/mount_davfs.c:1051
#, c-format #, c-format
msgid "" msgid ""
"Please enter the username to authenticate with proxy\n" "Please enter the username to authenticate with proxy\n"
"%s or hit enter for none.\n" "%s or hit enter for none.\n"
msgstr "" msgstr ""


#: src/mount_davfs.c:1055 src/mount_davfs.c:1075 #: src/mount_davfs.c:1053 src/mount_davfs.c:1073
msgid "Username:" msgid "Username:"
msgstr "" msgstr ""


#: src/mount_davfs.c:1059 #: src/mount_davfs.c:1057
#, c-format #, c-format
msgid "" msgid ""
"Please enter the password to authenticate user %s with proxy\n" "Please enter the password to authenticate user %s with proxy\n"
"%s or hit enter for none.\n" "%s or hit enter for none.\n"
msgstr "" msgstr ""


#: src/mount_davfs.c:1073 #: src/mount_davfs.c:1071
#, c-format #, c-format
msgid "" msgid ""
"Please enter the username to authenticate with server\n" "Please enter the username to authenticate with server\n"
"%s or hit enter for none.\n" "%s or hit enter for none.\n"
msgstr "" msgstr ""


#: src/mount_davfs.c:1079 #: src/mount_davfs.c:1077
#, c-format #, c-format
msgid "" msgid ""
"Please enter the password to authenticate user %s with server\n" "Please enter the password to authenticate user %s with server\n"
"%s or hit enter for none.\n" "%s or hit enter for none.\n"
msgstr "" msgstr ""


#: src/mount_davfs.c:1097 #: src/mount_davfs.c:1095
#, c-format #, c-format
msgid "" msgid ""
"Please enter the password to decrypt client\n" "Please enter the password to decrypt client\n"
"certificate %s.\n" "certificate %s.\n"
msgstr "" msgstr ""


#: src/mount_davfs.c:1104 #: src/mount_davfs.c:1102
#, c-format #, c-format
msgid "can't decrypt client certificate %s" msgid "can't decrypt client certificate %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:1167 #: src/mount_davfs.c:1165
#, c-format #, c-format
msgid "pid %i, got signal %i" msgid "pid %i, got signal %i"
msgstr "" msgstr ""


#: src/mount_davfs.c:1206 #: src/mount_davfs.c:1204
#, c-format #, c-format
msgid "" msgid ""
"Warning: can't write entry into mtab, but will mount the file system anyway" "Warning: can't write entry into mtab, but will mount the file system anyway"
msgstr "" msgstr ""


#: src/mount_davfs.c:1232 #: src/mount_davfs.c:1230
#, c-format #, c-format
msgid "option %s has invalid argument;it must be a decimal number" msgid "option %s has invalid argument;it must be a decimal number"
msgstr "" msgstr ""


#: src/mount_davfs.c:1235 #: src/mount_davfs.c:1233
#, c-format #, c-format
msgid "option %s has invalid argument;it must be an octal number" msgid "option %s has invalid argument;it must be an octal number"
msgstr "" msgstr ""


#: src/mount_davfs.c:1238 #: src/mount_davfs.c:1236
#, c-format #, c-format
msgid "option %s has invalid argument;it must be a number" msgid "option %s has invalid argument;it must be a number"
msgstr "" msgstr ""


#: src/mount_davfs.c:1513 #: src/mount_davfs.c:1476
#, c-format #, c-format
msgid "option %s requires argument" msgid "option %s requires argument"
msgstr "" msgstr ""


#: src/mount_davfs.c:1605 #: src/mount_davfs.c:1568
#, c-format #, c-format
msgid "Unknown option %s.\n" msgid "Unknown option %s.\n"
msgstr "" msgstr ""


#: src/mount_davfs.c:1976 #: src/mount_davfs.c:1937
#, c-format #, c-format
msgid "can't read certificate %s" msgid "can't read certificate %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:2008 src/mount_davfs.c:2021 #: src/mount_davfs.c:1969 src/mount_davfs.c:1982
#, c-format #, c-format
msgid "can't read client certificate %s" msgid "can't read client certificate %s"
msgstr "" msgstr ""


#: src/mount_davfs.c:2012 #: src/mount_davfs.c:1973
#, c-format #, c-format
msgid "client certificate file %s has wrong owner" msgid "client certificate file %s has wrong owner"
msgstr "" msgstr ""


#: src/mount_davfs.c:2016 #: src/mount_davfs.c:1977
#, c-format #, c-format
msgid "client certificate file %s has wrong permissions" msgid "client certificate file %s has wrong permissions"
msgstr "" msgstr ""


#: src/mount_davfs.c:2038 src/mount_davfs.c:2266 #: src/mount_davfs.c:1999 src/mount_davfs.c:2227
#, c-format #, c-format
msgid "opening %s failed" msgid "opening %s failed"
msgstr "" msgstr ""


#: src/mount_davfs.c:2059 src/mount_davfs.c:2104 src/mount_davfs.c:2196 #: src/mount_davfs.c:2020 src/mount_davfs.c:2065 src/mount_davfs.c:2157
#: src/mount_davfs.c:2293 src/mount_davfs.c:2351 src/mount_davfs.c:2364 #: src/mount_davfs.c:2254 src/mount_davfs.c:2312 src/mount_davfs.c:2325
#, c-format #, c-format
msgid "malformed line" msgid "malformed line"
msgstr "" msgstr ""


#: src/mount_davfs.c:2174 src/mount_davfs.c:2190 #: src/mount_davfs.c:2135 src/mount_davfs.c:2151
#, c-format #, c-format
msgid "unknown option" msgid "unknown option"
msgstr "" msgstr ""


#: src/mount_davfs.c:2496 #: src/mount_davfs.c:2457
#, c-format #, c-format
msgid "" msgid ""
"Usage:\n" "Usage:\n"
@ -488,14 +488,14 @@ msgid ""
"\n" "\n"
msgstr "" msgstr ""


#: src/mount_davfs.c:2500 #: src/mount_davfs.c:2461
#, c-format #, c-format
msgid "" msgid ""
"To mount a WebDAV-resource don't call %s directly, but use\n" "To mount a WebDAV-resource don't call %s directly, but use\n"
"`mount' instead.\n" "`mount' instead.\n"
msgstr "" msgstr ""


#: src/mount_davfs.c:2502 #: src/mount_davfs.c:2463
#, c-format #, c-format
msgid "" msgid ""
" mount <mountpoint> : or\n" " mount <mountpoint> : or\n"
@ -503,7 +503,7 @@ msgid ""
" /etc/fstab.\n" " /etc/fstab.\n"
msgstr "" msgstr ""


#: src/mount_davfs.c:2505 #: src/mount_davfs.c:2466
#, c-format #, c-format
msgid "" msgid ""
" mount -t davfs <server-url> <mountpoint> [-o options]\n" " mount -t davfs <server-url> <mountpoint> [-o options]\n"
@ -514,7 +514,7 @@ msgid ""
"\n" "\n"
msgstr "" msgstr ""


#: src/mount_davfs.c:2510 #: src/mount_davfs.c:2471
#, c-format #, c-format
msgid "" msgid ""
"Recognised options:\n" "Recognised options:\n"
@ -525,7 +525,7 @@ msgid ""
" dir_mode= : default directory mode (octal)\n" " dir_mode= : default directory mode (octal)\n"
msgstr "" msgstr ""


#: src/mount_davfs.c:2516 #: src/mount_davfs.c:2477
#, c-format #, c-format
msgid "" msgid ""
" ro : mount read-only\n" " ro : mount read-only\n"
@ -600,96 +600,96 @@ msgstr ""
msgid "an error occured while waiting; please wait for %s to terminate" msgid "an error occured while waiting; please wait for %s to terminate"
msgstr "" msgstr ""


#: src/webdav.c:360 #: src/webdav.c:337
#, c-format #, c-format
msgid "socket library initialization failed" msgid "socket library initialization failed"
msgstr "" msgstr ""


#: src/webdav.c:372 #: src/webdav.c:349
#, c-format #, c-format
msgid "can't open stream to log neon-messages" msgid "can't open stream to log neon-messages"
msgstr "" msgstr ""


#: src/webdav.c:413 #: src/webdav.c:380
#, c-format #, c-format
msgid "neon library does not support TLS/SSL" msgid "neon library does not support TLS/SSL"
msgstr "" msgstr ""


#: src/webdav.c:475 src/webdav.c:478 #: src/webdav.c:440 src/webdav.c:443
#, c-format #, c-format
msgid "mounting failed; the server does not support WebDAV" msgid "mounting failed; the server does not support WebDAV"
msgstr "" msgstr ""


#: src/webdav.c:486 #: src/webdav.c:451
#, c-format #, c-format
msgid "warning: the server does not support locks" msgid "warning: the server does not support locks"
msgstr "" msgstr ""


#: src/webdav.c:1566 #: src/webdav.c:1454
msgid "authentication failure:" msgid "authentication failure:"
msgstr "" msgstr ""


#: src/webdav.c:1604 #: src/webdav.c:1492
#, c-format #, c-format
msgid "%i can't open cache file" msgid "%i can't open cache file"
msgstr "" msgstr ""


#: src/webdav.c:1612 #: src/webdav.c:1500
#, c-format #, c-format
msgid "%i error writing to cache file" msgid "%i error writing to cache file"
msgstr "" msgstr ""


#: src/webdav.c:1922 src/webdav.c:1951 src/webdav.c:1988 #: src/webdav.c:1741 src/webdav.c:1770 src/webdav.c:1807
#, c-format #, c-format
msgid "the server certificate is not trusted" msgid "the server certificate is not trusted"
msgstr "" msgstr ""


#: src/webdav.c:1931 src/webdav.c:1934 #: src/webdav.c:1750 src/webdav.c:1753
#, c-format #, c-format
msgid "error processing server certificate" msgid "error processing server certificate"
msgstr "" msgstr ""


#: src/webdav.c:1945 src/webdav.c:1979 #: src/webdav.c:1764 src/webdav.c:1798
#, c-format #, c-format
msgid "the server certificate is not yet valid" msgid "the server certificate is not yet valid"
msgstr "" msgstr ""


#: src/webdav.c:1947 src/webdav.c:1982 #: src/webdav.c:1766 src/webdav.c:1801
#, c-format #, c-format
msgid "the server certificate has expired" msgid "the server certificate has expired"
msgstr "" msgstr ""


#: src/webdav.c:1949 src/webdav.c:1985 #: src/webdav.c:1768 src/webdav.c:1804
#, c-format #, c-format
msgid "the server certificate does not match the server name" msgid "the server certificate does not match the server name"
msgstr "" msgstr ""


#: src/webdav.c:1953 src/webdav.c:1991 #: src/webdav.c:1772 src/webdav.c:1810
#, c-format #, c-format
msgid "unknown certificate error" msgid "unknown certificate error"
msgstr "" msgstr ""


#: src/webdav.c:1954 #: src/webdav.c:1773
#, c-format #, c-format
msgid " issuer: %s" msgid " issuer: %s"
msgstr "" msgstr ""


#: src/webdav.c:1956 #: src/webdav.c:1775
#, c-format #, c-format
msgid " subject: %s" msgid " subject: %s"
msgstr "" msgstr ""


#: src/webdav.c:1958 #: src/webdav.c:1777
#, c-format #, c-format
msgid " identity: %s" msgid " identity: %s"
msgstr "" msgstr ""


#: src/webdav.c:1960 #: src/webdav.c:1779
#, c-format #, c-format
msgid " fingerprint: %s" msgid " fingerprint: %s"
msgstr "" msgstr ""


#: src/webdav.c:1962 #: src/webdav.c:1781
#, c-format #, c-format
msgid "" msgid ""
"You only should accept this certificate, if you can\n" "You only should accept this certificate, if you can\n"
@ -697,26 +697,26 @@ msgid ""
"or there might be a man-in-the-middle-attack.\n" "or there might be a man-in-the-middle-attack.\n"
msgstr "" msgstr ""


#: src/webdav.c:1965 #: src/webdav.c:1784
#, c-format #, c-format
msgid "Accept certificate for this session? [y,N] " msgid "Accept certificate for this session? [y,N] "
msgstr "" msgstr ""


#: src/webdav.c:1992 #: src/webdav.c:1811
#, c-format #, c-format
msgid " issuer: %s" msgid " issuer: %s"
msgstr "" msgstr ""


#: src/webdav.c:1993 #: src/webdav.c:1812
#, c-format #, c-format
msgid " subject: %s" msgid " subject: %s"
msgstr "" msgstr ""


#: src/webdav.c:1994 #: src/webdav.c:1813
#, c-format #, c-format
msgid " identity: %s" msgid " identity: %s"
msgstr "" msgstr ""


#: src/webdav.c:1997 #: src/webdav.c:1816
msgid " accepted by user" msgid " accepted by user"
msgstr "" msgstr ""

262
po/de.po
View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: davfs2 1.5.0\n" "Project-Id-Version: davfs2 1.5.0\n"
"Report-Msgid-Bugs-To: http://savannah.nongnu.org/support/?" "Report-Msgid-Bugs-To: http://savannah.nongnu.org/support/?"
"func=additem&group=davfs2\n" "func=additem&group=davfs2\n"
"POT-Creation-Date: 2013-08-09 12:39+0200\n" "POT-Creation-Date: 2013-09-01 18:45+0200\n"
"PO-Revision-Date: 2013-08-09 12:49+0100\n" "PO-Revision-Date: 2013-08-09 12:49+0100\n"
"Last-Translator: Werner Baumann <werner.baumann@onlinehome.de>\n" "Last-Translator: Werner Baumann <werner.baumann@onlinehome.de>\n"
"Language-Team: \n" "Language-Team: \n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"


#: src/cache.c:656 #: src/cache.c:650
#, c-format #, c-format
msgid "" msgid ""
"connection timed out two times;\n" "connection timed out two times;\n"
@ -26,12 +26,12 @@ msgstr ""
"die Verbindung wurde zweimal wegen Zeitüberschreitung abgebrochen;\n" "die Verbindung wurde zweimal wegen Zeitüberschreitung abgebrochen;\n"
"ich versuche es zum letzten mal" "ich versuche es zum letzten mal"


#: src/cache.c:661 #: src/cache.c:655
#, c-format #, c-format
msgid "Last try succeeded.\n" msgid "Last try succeeded.\n"
msgstr "Der letzte Versuch war erfolgreich.\n" msgstr "Der letzte Versuch war erfolgreich.\n"


#: src/cache.c:664 #: src/cache.c:658
#, c-format #, c-format
msgid "" msgid ""
"server temporarily unreachable;\n" "server temporarily unreachable;\n"
@ -40,7 +40,7 @@ msgstr ""
"der Server ist zur Zeit nicht erreichbar;\n" "der Server ist zur Zeit nicht erreichbar;\n"
"das Dateisystem wird trotzdem eingehängt" "das Dateisystem wird trotzdem eingehängt"


#: src/cache.c:667 #: src/cache.c:661
#, c-format #, c-format
msgid "" msgid ""
"Mounting failed.\n" "Mounting failed.\n"
@ -49,22 +49,22 @@ msgstr ""
"das Einhängen schlug fehl;\n" "das Einhängen schlug fehl;\n"
"%s" "%s"


#: src/cache.c:706 #: src/cache.c:700
#, c-format #, c-format
msgid "can't replace %s with %s" msgid "can't replace %s with %s"
msgstr "kann %s nicht durch %s ersetzen" msgstr "kann %s nicht durch %s ersetzen"


#: src/cache.c:710 #: src/cache.c:704
#, c-format #, c-format
msgid "error writing new index file %s" msgid "error writing new index file %s"
msgstr "Fehler beim Schreiben der neuen Indexdatei %s" msgstr "Fehler beim Schreiben der neuen Indexdatei %s"


#: src/cache.c:714 #: src/cache.c:708
#, c-format #, c-format
msgid "can't create new index file for %s" msgid "can't create new index file for %s"
msgstr "kann keine neue Indexdatei für %s erzeugen" msgstr "kann keine neue Indexdatei für %s erzeugen"


#: src/cache.c:925 #: src/cache.c:911
#, c-format #, c-format
msgid "" msgid ""
"File %s exists on the server but should not. Maybe it is an error in the " "File %s exists on the server but should not. Maybe it is an error in the "
@ -74,156 +74,156 @@ msgstr ""
"behandelt der Server LOCK-Requests fehlerhaft. Du kannst es mit der Option " "behandelt der Server LOCK-Requests fehlerhaft. Du kannst es mit der Option "
"'use_locks 0' in davfs2.conf versuchen." "'use_locks 0' in davfs2.conf versuchen."


#: src/cache.c:2512 src/cache.c:2545 #: src/cache.c:2384 src/cache.c:2417
#, c-format #, c-format
msgid "can't create cache file %s" msgid "can't create cache file %s"
msgstr "kann die Cachedatei %s nicht erzeugen" msgstr "kann die Cachedatei %s nicht erzeugen"


#: src/cache.c:2560 #: src/cache.c:2432
#, c-format #, c-format
msgid "error writing directory %s" msgid "error writing directory %s"
msgstr "Fehler beim Schreiben des Verzeichnisses %s" msgstr "Fehler beim Schreiben des Verzeichnisses %s"


#: src/cache.c:2723 src/mount_davfs.c:1013 #: src/cache.c:2594 src/mount_davfs.c:1011
#, c-format #, c-format
msgid "can't read user data base" msgid "can't read user data base"
msgstr "kann die Benutzerdatenbank nicht lesen" msgstr "kann die Benutzerdatenbank nicht lesen"


#: src/cache.c:2735 #: src/cache.c:2606
#, c-format #, c-format
msgid "can't open cache directory %s" msgid "can't open cache directory %s"
msgstr "kann das Cacheverzeichnis %s nicht öffnen" msgstr "kann das Cacheverzeichnis %s nicht öffnen"


#: src/cache.c:2750 #: src/cache.c:2621
#, c-format #, c-format
msgid "can't create cache directory %s" msgid "can't create cache directory %s"
msgstr "kann das Cacheverzeichnis %s nicht erzeugen" msgstr "kann das Cacheverzeichnis %s nicht erzeugen"


#: src/cache.c:2757 #: src/cache.c:2628
#, c-format #, c-format
msgid "can't access cache directory %s" msgid "can't access cache directory %s"
msgstr "Zugriff auf das Cachverzeichnis %s verweigert" msgstr "Zugriff auf das Cachverzeichnis %s verweigert"


#: src/cache.c:2760 #: src/cache.c:2631
#, c-format #, c-format
msgid "wrong owner of cache directory %s" msgid "wrong owner of cache directory %s"
msgstr "das Cacheverzeichnis %s hat den falschen Besitzer" msgstr "das Cacheverzeichnis %s hat den falschen Besitzer"


#: src/cache.c:2764 #: src/cache.c:2635
#, c-format #, c-format
msgid "wrong permissions set for cache directory %s" msgid "wrong permissions set for cache directory %s"
msgstr "das Cachverzeichnis %s hat die falschen Dateirechte" msgstr "das Cachverzeichnis %s hat die falschen Dateirechte"


#: src/cache.c:2794 #: src/cache.c:2665
msgid "found orphaned file in cache:" msgid "found orphaned file in cache:"
msgstr "fand verwaiste Datei im Cache:" msgstr "fand verwaiste Datei im Cache:"


#: src/cache.c:2867 #: src/cache.c:2738
#, c-format #, c-format
msgid "error parsing %s" msgid "error parsing %s"
msgstr "Syntaxfehler in %s" msgstr "Syntaxfehler in %s"


#: src/cache.c:2868 #: src/cache.c:2739
#, c-format #, c-format
msgid " at line %i" msgid " at line %i"
msgstr " in Zeile %i" msgstr " in Zeile %i"


#: src/cache.c:2913 #: src/cache.c:2784
#, c-format #, c-format
msgid "open files exceed max cache size by %llu MiBytes" msgid "open files exceed max cache size by %llu MiBytes"
msgstr "" msgstr ""
"Die Größe der offenen Dateien überschreitet die maximale Größe des Cache um " "Die Größe der offenen Dateien überschreitet die maximale Größe des Cache um "
"%llu MiBytes" "%llu MiBytes"


#: src/kernel_interface.c:209 #: src/kernel_interface.c:219
#, c-format
msgid "can't open fuse device"
msgstr "kann die fuse-Gerätedatei nicht öffnen"

#: src/kernel_interface.c:217
#, c-format
msgid "mounting failed"
msgstr "das Aushängen schlug fehl"

#: src/kernel_interface.c:226
#, c-format #, c-format
msgid "can't allocate message buffer" msgid "can't allocate message buffer"
msgstr "kein Speicher für den Nachrichtenpuffer verfügbar" msgstr "kein Speicher für den Nachrichtenpuffer verfügbar"


#: src/mount_davfs.c:294 #: src/kernel_interface.c:246
#, c-format
msgid "can't open fuse device"
msgstr "kann die fuse-Gerätedatei nicht öffnen"

#: src/kernel_interface.c:254
#, c-format
msgid "mounting failed"
msgstr "das Aushängen schlug fehl"

#: src/mount_davfs.c:291
#, c-format #, c-format
msgid "can't start daemon process" msgid "can't start daemon process"
msgstr "kann den Hintergrundprozess nicht starten" msgstr "kann den Hintergrundprozess nicht starten"


#: src/mount_davfs.c:316 #: src/mount_davfs.c:313
msgid "can't release root privileges" msgid "can't release root privileges"
msgstr "ich werde die root-Rechte nicht los" msgstr "ich werde die root-Rechte nicht los"


#: src/mount_davfs.c:333 #: src/mount_davfs.c:330
msgid "failed to release tty properly" msgid "failed to release tty properly"
msgstr "kann das Terminal nicht freigeben" msgstr "kann das Terminal nicht freigeben"


#: src/mount_davfs.c:345 #: src/mount_davfs.c:342
#, c-format #, c-format
msgid "can't write pid file %s" msgid "can't write pid file %s"
msgstr "kann die PID-Datei %s nicht schreiben" msgstr "kann die PID-Datei %s nicht schreiben"


#: src/mount_davfs.c:362 #: src/mount_davfs.c:359
#, c-format #, c-format
msgid "unmounting %s" msgid "unmounting %s"
msgstr "hänge %s aus" msgstr "hänge %s aus"


#: src/mount_davfs.c:364 #: src/mount_davfs.c:361
msgid "unmounting failed" msgid "unmounting failed"
msgstr "das Aushängen schlug fehl" msgstr "das Aushängen schlug fehl"


#: src/mount_davfs.c:435 #: src/mount_davfs.c:432
#, c-format #, c-format
msgid "can't change group id" msgid "can't change group id"
msgstr "kann die Gruppenkennung nicht ändern" msgstr "kann die Gruppenkennung nicht ändern"


#: src/mount_davfs.c:473 src/mount_davfs.c:567 src/mount_davfs.c:593 #: src/mount_davfs.c:470 src/mount_davfs.c:564 src/mount_davfs.c:590
#, c-format #, c-format
msgid "can't create directory %s" msgid "can't create directory %s"
msgstr "kann das Verzeichnis %s nicht erzeugen" msgstr "kann das Verzeichnis %s nicht erzeugen"


#: src/mount_davfs.c:477 src/mount_davfs.c:571 src/mount_davfs.c:597 #: src/mount_davfs.c:474 src/mount_davfs.c:568 src/mount_davfs.c:594
#: src/mount_davfs.c:602 src/mount_davfs.c:610 #: src/mount_davfs.c:599 src/mount_davfs.c:607
#, c-format #, c-format
msgid "can't access directory %s" msgid "can't access directory %s"
msgstr "Zugriff auf das Verzeichnis %s verweigert" msgstr "Zugriff auf das Verzeichnis %s verweigert"


#: src/mount_davfs.c:483 src/mount_davfs.c:577 #: src/mount_davfs.c:480 src/mount_davfs.c:574
#, c-format #, c-format
msgid "can't change mode of directory %s" msgid "can't change mode of directory %s"
msgstr "kann die Rechte des Verzeichnisses %s nicht ändern" msgstr "kann die Rechte des Verzeichnisses %s nicht ändern"


#: src/mount_davfs.c:488 src/mount_davfs.c:583 #: src/mount_davfs.c:485 src/mount_davfs.c:580
#, c-format #, c-format
msgid "can't change group of directory %s" msgid "can't change group of directory %s"
msgstr "kann die Gruppenkennung des Verneichnisses %s nicht ändern" msgstr "kann die Gruppenkennung des Verneichnisses %s nicht ändern"


#: src/mount_davfs.c:495 src/mount_davfs.c:551 #: src/mount_davfs.c:492 src/mount_davfs.c:548
#, c-format #, c-format
msgid "file %s has wrong owner" msgid "file %s has wrong owner"
msgstr "die Datei %s hat den falschen Besitzer" msgstr "die Datei %s hat den falschen Besitzer"


#: src/mount_davfs.c:499 src/mount_davfs.c:556 #: src/mount_davfs.c:496 src/mount_davfs.c:553
#, c-format #, c-format
msgid "file %s has wrong permissions" msgid "file %s has wrong permissions"
msgstr "die Dateirechte für %s sind falsch" msgstr "die Dateirechte für %s sind falsch"


#: src/mount_davfs.c:628 src/mount_davfs.c:680 #: src/mount_davfs.c:625 src/mount_davfs.c:677
#, c-format #, c-format
msgid "can't open file %s" msgid "can't open file %s"
msgstr "kann die Datei %s nicht öffnen" msgstr "kann die Datei %s nicht öffnen"


#: src/mount_davfs.c:633 #: src/mount_davfs.c:630
#, c-format #, c-format
msgid "%s is already mounted on %s" msgid "%s is already mounted on %s"
msgstr "%s ist bereits auf %s eingehängt" msgstr "%s ist bereits auf %s eingehängt"


#: src/mount_davfs.c:655 #: src/mount_davfs.c:652
#, c-format #, c-format
msgid "" msgid ""
"found PID file %s.\n" "found PID file %s.\n"
@ -234,84 +234,84 @@ msgstr ""
"Möglicherweise wird %s von einem anderen Prozess benutzt,\n" "Möglicherweise wird %s von einem anderen Prozess benutzt,\n"
"oder ein anderer Mount-Prozess endete irregulär" "oder ein anderer Mount-Prozess endete irregulär"


#: src/mount_davfs.c:697 #: src/mount_davfs.c:694
#, c-format #, c-format
msgid "no entry for %s found in %s" msgid "no entry for %s found in %s"
msgstr "für %s ist kein Eintrag in %s" msgstr "für %s ist kein Eintrag in %s"


#: src/mount_davfs.c:701 #: src/mount_davfs.c:698
#, c-format #, c-format
msgid "different URL in %s" msgid "different URL in %s"
msgstr "in %s ist eine andere URL angegeben" msgstr "in %s ist eine andere URL angegeben"


#: src/mount_davfs.c:704 #: src/mount_davfs.c:701
#, c-format #, c-format
msgid "different file system type in %s" msgid "different file system type in %s"
msgstr "in %s ist ein anderer Dateisystemtyp angegeben" msgstr "in %s ist ein anderer Dateisystemtyp angegeben"


#: src/mount_davfs.c:715 #: src/mount_davfs.c:712
#, c-format #, c-format
msgid "different config file in %s" msgid "different config file in %s"
msgstr "in %s ist eine andere Konfigurationsdatei angegeben" msgstr "in %s ist eine andere Konfigurationsdatei angegeben"


#: src/mount_davfs.c:721 #: src/mount_davfs.c:718
#, c-format #, c-format
msgid "different username in %s" msgid "different username in %s"
msgstr "in %s ist ein anderer Benutzername angegeben" msgstr "in %s ist ein anderer Benutzername angegeben"


#: src/mount_davfs.c:725 #: src/mount_davfs.c:722
#, c-format #, c-format
msgid "neither option `user' nor option `users' set in %s" msgid "neither option `user' nor option `users' set in %s"
msgstr "in %s ist weder die Option „user” noch die Option „users” angegeben" msgstr "in %s ist weder die Option „user” noch die Option „users” angegeben"


#: src/mount_davfs.c:728 #: src/mount_davfs.c:725
#, c-format #, c-format
msgid "different mount options in %s" msgid "different mount options in %s"
msgstr "in %s sind andere Mount-Optionen angegeben" msgstr "in %s sind andere Mount-Optionen angegeben"


#: src/mount_davfs.c:731 #: src/mount_davfs.c:728
#, c-format #, c-format
msgid "different uid in %s" msgid "different uid in %s"
msgstr "in %s ist eine andere uid angegeben" msgstr "in %s ist eine andere uid angegeben"


#: src/mount_davfs.c:733 #: src/mount_davfs.c:730
#, c-format #, c-format
msgid "different gid in %s" msgid "different gid in %s"
msgstr "in %s ist eine andere gid angegeben" msgstr "in %s ist eine andere gid angegeben"


#: src/mount_davfs.c:735 #: src/mount_davfs.c:732
#, c-format #, c-format
msgid "different dir_mode in %s" msgid "different dir_mode in %s"
msgstr "in %s ist ein anderer dir_mode angegeben" msgstr "in %s ist ein anderer dir_mode angegeben"


#: src/mount_davfs.c:737 #: src/mount_davfs.c:734
#, c-format #, c-format
msgid "different file_mode in %s" msgid "different file_mode in %s"
msgstr "in %s ist ein anderer file_mode angegeben" msgstr "in %s ist ein anderer file_mode angegeben"


#: src/mount_davfs.c:757 #: src/mount_davfs.c:754
#, c-format #, c-format
msgid "you can't set file owner different from your uid" msgid "you can't set file owner different from your uid"
msgstr "" msgstr ""
"du kannst als Besitzer des Dateisystems keine fremde Benutzerkennung angeben" "du kannst als Besitzer des Dateisystems keine fremde Benutzerkennung angeben"


#: src/mount_davfs.c:769 #: src/mount_davfs.c:766
#, c-format #, c-format
msgid "you must be member of the group of the file system" msgid "you must be member of the group of the file system"
msgstr "" msgstr ""
"du musst Mitglied in der Gruppe sein, zu der das Dateisystem gehören soll" "du musst Mitglied in der Gruppe sein, zu der das Dateisystem gehören soll"


#: src/mount_davfs.c:780 #: src/mount_davfs.c:777
#, c-format #, c-format
msgid "user %s must be member of group %s" msgid "user %s must be member of group %s"
msgstr "der Benutzer %s muss Mitglied der Gruppe %s sein" msgstr "der Benutzer %s muss Mitglied der Gruppe %s sein"


#: src/mount_davfs.c:800 src/mount_davfs.c:1139 #: src/mount_davfs.c:797 src/mount_davfs.c:1137
#, c-format #, c-format
msgid "can't change effective user id" msgid "can't change effective user id"
msgstr "kann die effektive Benutzer-ID nicht ändern" msgstr "kann die effektive Benutzer-ID nicht ändern"


#: src/mount_davfs.c:844 src/umount_davfs.c:92 #: src/mount_davfs.c:841 src/umount_davfs.c:92
#, c-format #, c-format
msgid "" msgid ""
"This is free software; see the source for copying conditions. There is NO\n" "This is free software; see the source for copying conditions. There is NO\n"
@ -322,67 +322,67 @@ msgstr ""
"gibt keine Garantie; auch nicht für VERKAUFBARKEIT oder FÜR SPEZIELLE " "gibt keine Garantie; auch nicht für VERKAUFBARKEIT oder FÜR SPEZIELLE "
"ZWECKE.\n" "ZWECKE.\n"


#: src/mount_davfs.c:860 src/umount_davfs.c:117 #: src/mount_davfs.c:857 src/umount_davfs.c:117
#, c-format #, c-format
msgid "unknown error parsing arguments" msgid "unknown error parsing arguments"
msgstr "Fehler beim Analysieren der Befehlsargumente" msgstr "Fehler beim Analysieren der Befehlsargumente"


#: src/mount_davfs.c:869 src/umount_davfs.c:123 #: src/mount_davfs.c:866 src/umount_davfs.c:123
#, c-format #, c-format
msgid "missing argument" msgid "missing argument"
msgstr "zu wenig Argumente" msgstr "zu wenig Argumente"


#: src/mount_davfs.c:882 #: src/mount_davfs.c:879
#, c-format #, c-format
msgid "can't evaluate path of mount point %s" msgid "can't evaluate path of mount point %s"
msgstr "kann den eindeutigen Pfad des Einhängepunktes %s nicht ermitteln" msgstr "kann den eindeutigen Pfad des Einhängepunktes %s nicht ermitteln"


#: src/mount_davfs.c:885 src/umount_davfs.c:125 #: src/mount_davfs.c:882 src/umount_davfs.c:125
#, c-format #, c-format
msgid "too many arguments" msgid "too many arguments"
msgstr "zu viele Argumente" msgstr "zu viele Argumente"


#: src/mount_davfs.c:892 #: src/mount_davfs.c:889
#, c-format #, c-format
msgid "A relative mount point must lie within your home directory" msgid "A relative mount point must lie within your home directory"
msgstr "Ein relativer Einhängepunkt muss in deinem Home-Verzeichnis liegen" msgstr "Ein relativer Einhängepunkt muss in deinem Home-Verzeichnis liegen"


#: src/mount_davfs.c:897 #: src/mount_davfs.c:894
#, c-format #, c-format
msgid "no WebDAV-server specified" msgid "no WebDAV-server specified"
msgstr "es wurde kein WebDAV-Server angegeben" msgstr "es wurde kein WebDAV-Server angegeben"


#: src/mount_davfs.c:900 #: src/mount_davfs.c:897
#, c-format #, c-format
msgid "invalid URL" msgid "invalid URL"
msgstr "die URL ist ungültig" msgstr "die URL ist ungültig"


#: src/mount_davfs.c:930 #: src/mount_davfs.c:927
#, c-format #, c-format
msgid "user %s does not exist" msgid "user %s does not exist"
msgstr "der Benutzer %s existiert nicht" msgstr "der Benutzer %s existiert nicht"


#: src/mount_davfs.c:938 #: src/mount_davfs.c:935
#, c-format #, c-format
msgid "group %s does not exist" msgid "group %s does not exist"
msgstr "die Gruppe %s existiert nicht" msgstr "die Gruppe %s existiert nicht"


#: src/mount_davfs.c:1004 #: src/mount_davfs.c:1002
#, c-format #, c-format
msgid "program is not setuid root" msgid "program is not setuid root"
msgstr "die Programmdatei hat das setuid-Bit nicht gesetzt" msgstr "die Programmdatei hat das setuid-Bit nicht gesetzt"


#: src/mount_davfs.c:1022 #: src/mount_davfs.c:1020
#, c-format #, c-format
msgid "can't read group data base" msgid "can't read group data base"
msgstr "kann die Gruppendatenbank nicht lesen" msgstr "kann die Gruppendatenbank nicht lesen"


#: src/mount_davfs.c:1049 src/mount_davfs.c:1062 src/mount_davfs.c:1064 #: src/mount_davfs.c:1047 src/mount_davfs.c:1060 src/mount_davfs.c:1062
#: src/mount_davfs.c:1082 src/mount_davfs.c:1084 src/mount_davfs.c:1099 #: src/mount_davfs.c:1080 src/mount_davfs.c:1082 src/mount_davfs.c:1097
msgid "Password: " msgid "Password: "
msgstr "Passwort:" msgstr "Passwort:"


#: src/mount_davfs.c:1053 #: src/mount_davfs.c:1051
#, c-format #, c-format
msgid "" msgid ""
"Please enter the username to authenticate with proxy\n" "Please enter the username to authenticate with proxy\n"
@ -391,11 +391,11 @@ msgstr ""
"Gib bitte den Benutzernamen für den Proxy %s an; wenn du keinen angeben " "Gib bitte den Benutzernamen für den Proxy %s an; wenn du keinen angeben "
"willst, drücke Return.\n" "willst, drücke Return.\n"


#: src/mount_davfs.c:1055 src/mount_davfs.c:1075 #: src/mount_davfs.c:1053 src/mount_davfs.c:1073
msgid "Username:" msgid "Username:"
msgstr "Benutzername:" msgstr "Benutzername:"


#: src/mount_davfs.c:1059 #: src/mount_davfs.c:1057
#, c-format #, c-format
msgid "" msgid ""
"Please enter the password to authenticate user %s with proxy\n" "Please enter the password to authenticate user %s with proxy\n"
@ -404,7 +404,7 @@ msgstr ""
"Gib bitte das Passwort von %s für den Proxy %s\n" "Gib bitte das Passwort von %s für den Proxy %s\n"
"an; wenn du keines angeben willst, drücke Return.\n" "an; wenn du keines angeben willst, drücke Return.\n"


#: src/mount_davfs.c:1073 #: src/mount_davfs.c:1071
#, c-format #, c-format
msgid "" msgid ""
"Please enter the username to authenticate with server\n" "Please enter the username to authenticate with server\n"
@ -413,7 +413,7 @@ msgstr ""
"Gib bitte den Benutzernamen für den Server %s an; wenn du keinen angeben " "Gib bitte den Benutzernamen für den Server %s an; wenn du keinen angeben "
"willst, drücke Return.\n" "willst, drücke Return.\n"


#: src/mount_davfs.c:1079 #: src/mount_davfs.c:1077
#, c-format #, c-format
msgid "" msgid ""
"Please enter the password to authenticate user %s with server\n" "Please enter the password to authenticate user %s with server\n"
@ -422,7 +422,7 @@ msgstr ""
"Gib bitte das Passwort von %s für den Server %s\n" "Gib bitte das Passwort von %s für den Server %s\n"
"an; wenn du keines angeben willst, drücke Return.\n" "an; wenn du keines angeben willst, drücke Return.\n"


#: src/mount_davfs.c:1097 #: src/mount_davfs.c:1095
#, c-format #, c-format
msgid "" msgid ""
"Please enter the password to decrypt client\n" "Please enter the password to decrypt client\n"
@ -431,17 +431,17 @@ msgstr ""
"Gib bitte das Passwort für die Entschlüsselung des\n" "Gib bitte das Passwort für die Entschlüsselung des\n"
"Client-Zertifikats %s ein.\n" "Client-Zertifikats %s ein.\n"


#: src/mount_davfs.c:1104 #: src/mount_davfs.c:1102
#, c-format #, c-format
msgid "can't decrypt client certificate %s" msgid "can't decrypt client certificate %s"
msgstr "kann das Zertifikat %s nicht entschlüsseln" msgstr "kann das Zertifikat %s nicht entschlüsseln"


#: src/mount_davfs.c:1167 #: src/mount_davfs.c:1165
#, c-format #, c-format
msgid "pid %i, got signal %i" msgid "pid %i, got signal %i"
msgstr "PID %i, erhielt Signal %i" msgstr "PID %i, erhielt Signal %i"


#: src/mount_davfs.c:1206 #: src/mount_davfs.c:1204
#, c-format #, c-format
msgid "" msgid ""
"Warning: can't write entry into mtab, but will mount the file system anyway" "Warning: can't write entry into mtab, but will mount the file system anyway"
@ -449,72 +449,72 @@ msgstr ""
"Warnung: kann keinen Eintrag in die mtab schreiben, häne das Dateisystem " "Warnung: kann keinen Eintrag in die mtab schreiben, häne das Dateisystem "
"trotzdem ein." "trotzdem ein."


#: src/mount_davfs.c:1232 #: src/mount_davfs.c:1230
#, c-format #, c-format
msgid "option %s has invalid argument;it must be a decimal number" msgid "option %s has invalid argument;it must be a decimal number"
msgstr "das Argument der Option %s ist ungültig; es muss eine Dezimalzahl sein" msgstr "das Argument der Option %s ist ungültig; es muss eine Dezimalzahl sein"


#: src/mount_davfs.c:1235 #: src/mount_davfs.c:1233
#, c-format #, c-format
msgid "option %s has invalid argument;it must be an octal number" msgid "option %s has invalid argument;it must be an octal number"
msgstr "das Argument der Option %s ist ungültig; es muss eine Oktalzahl sein" msgstr "das Argument der Option %s ist ungültig; es muss eine Oktalzahl sein"


#: src/mount_davfs.c:1238 #: src/mount_davfs.c:1236
#, c-format #, c-format
msgid "option %s has invalid argument;it must be a number" msgid "option %s has invalid argument;it must be a number"
msgstr "das Argument der Option %s ist ungültig; es muss eine Zahl sein" msgstr "das Argument der Option %s ist ungültig; es muss eine Zahl sein"


#: src/mount_davfs.c:1513 #: src/mount_davfs.c:1476
#, c-format #, c-format
msgid "option %s requires argument" msgid "option %s requires argument"
msgstr "die Option %s verlangt ein Argument" msgstr "die Option %s verlangt ein Argument"


#: src/mount_davfs.c:1605 #: src/mount_davfs.c:1568
#, c-format #, c-format
msgid "Unknown option %s.\n" msgid "Unknown option %s.\n"
msgstr "unbekannte Option %s.\n" msgstr "unbekannte Option %s.\n"


#: src/mount_davfs.c:1976 #: src/mount_davfs.c:1937
#, c-format #, c-format
msgid "can't read certificate %s" msgid "can't read certificate %s"
msgstr "kann das Zertifikat %s nicht lesen" msgstr "kann das Zertifikat %s nicht lesen"


#: src/mount_davfs.c:2008 src/mount_davfs.c:2021 #: src/mount_davfs.c:1969 src/mount_davfs.c:1982
#, c-format #, c-format
msgid "can't read client certificate %s" msgid "can't read client certificate %s"
msgstr "kann das Client-Zertifikat %s nicht lesen" msgstr "kann das Client-Zertifikat %s nicht lesen"


#: src/mount_davfs.c:2012 #: src/mount_davfs.c:1973
#, c-format #, c-format
msgid "client certificate file %s has wrong owner" msgid "client certificate file %s has wrong owner"
msgstr "" msgstr ""
"die Datei %s\n" "die Datei %s\n"
"des Client-Zertifikats hat den falschen Besitzer" "des Client-Zertifikats hat den falschen Besitzer"


#: src/mount_davfs.c:2016 #: src/mount_davfs.c:1977
#, c-format #, c-format
msgid "client certificate file %s has wrong permissions" msgid "client certificate file %s has wrong permissions"
msgstr "" msgstr ""
"die Dateirechte für das Cient-Zertifikat\n" "die Dateirechte für das Cient-Zertifikat\n"
"%s sind falsch" "%s sind falsch"


#: src/mount_davfs.c:2038 src/mount_davfs.c:2266 #: src/mount_davfs.c:1999 src/mount_davfs.c:2227
#, c-format #, c-format
msgid "opening %s failed" msgid "opening %s failed"
msgstr "konnte %s nicht öffnen" msgstr "konnte %s nicht öffnen"


#: src/mount_davfs.c:2059 src/mount_davfs.c:2104 src/mount_davfs.c:2196 #: src/mount_davfs.c:2020 src/mount_davfs.c:2065 src/mount_davfs.c:2157
#: src/mount_davfs.c:2293 src/mount_davfs.c:2351 src/mount_davfs.c:2364 #: src/mount_davfs.c:2254 src/mount_davfs.c:2312 src/mount_davfs.c:2325
#, c-format #, c-format
msgid "malformed line" msgid "malformed line"
msgstr "Syntaxfehler in der Zeile" msgstr "Syntaxfehler in der Zeile"


#: src/mount_davfs.c:2174 src/mount_davfs.c:2190 #: src/mount_davfs.c:2135 src/mount_davfs.c:2151
#, c-format #, c-format
msgid "unknown option" msgid "unknown option"
msgstr "unbekannte Option" msgstr "unbekannte Option"


#: src/mount_davfs.c:2496 #: src/mount_davfs.c:2457
#, c-format #, c-format
msgid "" msgid ""
"Usage:\n" "Usage:\n"
@ -527,7 +527,7 @@ msgstr ""
" %s -h, --help : diese Hilfe anzeigen\n" " %s -h, --help : diese Hilfe anzeigen\n"
"\n" "\n"


#: src/mount_davfs.c:2500 #: src/mount_davfs.c:2461
#, c-format #, c-format
msgid "" msgid ""
"To mount a WebDAV-resource don't call %s directly, but use\n" "To mount a WebDAV-resource don't call %s directly, but use\n"
@ -536,7 +536,7 @@ msgstr ""
"Um eine WebDAV-Resource zu einzuhängen, sollte %s nicht direkt\n" "Um eine WebDAV-Resource zu einzuhängen, sollte %s nicht direkt\n"
"aufgerufen werden; stattdessen sollte „mount” benutzt werden.\n" "aufgerufen werden; stattdessen sollte „mount” benutzt werden.\n"


#: src/mount_davfs.c:2502 #: src/mount_davfs.c:2463
#, c-format #, c-format
msgid "" msgid ""
" mount <mountpoint> : or\n" " mount <mountpoint> : or\n"
@ -547,7 +547,7 @@ msgstr ""
" mount <server-url> : hänge die WebDAV-Resource entsprechend den\n" " mount <server-url> : hänge die WebDAV-Resource entsprechend den\n"
" Angaben in /etc/fstab ein.\n" " Angaben in /etc/fstab ein.\n"


#: src/mount_davfs.c:2505 #: src/mount_davfs.c:2466
#, c-format #, c-format
msgid "" msgid ""
" mount -t davfs <server-url> <mountpoint> [-o options]\n" " mount -t davfs <server-url> <mountpoint> [-o options]\n"
@ -564,7 +564,7 @@ msgstr ""
" Kommas unterteilte Liste von Optionen.\n" " Kommas unterteilte Liste von Optionen.\n"
"\n" "\n"


#: src/mount_davfs.c:2510 #: src/mount_davfs.c:2471
#, c-format #, c-format
msgid "" msgid ""
"Recognised options:\n" "Recognised options:\n"
@ -581,7 +581,7 @@ msgstr ""
" file_mode= : Standard-Rechte für Dateien (oktal)\n" " file_mode= : Standard-Rechte für Dateien (oktal)\n"
" dir_mode= : Standard-Rechte für Verzeichnisse (oktal)\n" " dir_mode= : Standard-Rechte für Verzeichnisse (oktal)\n"


#: src/mount_davfs.c:2516 #: src/mount_davfs.c:2477
#, c-format #, c-format
msgid "" msgid ""
" ro : mount read-only\n" " ro : mount read-only\n"
@ -684,96 +684,96 @@ msgid "an error occured while waiting; please wait for %s to terminate"
msgstr "" msgstr ""
"während des Wartens trat ein Fehler auf; bitte warte bis der %s-Prozess endet" "während des Wartens trat ein Fehler auf; bitte warte bis der %s-Prozess endet"


#: src/webdav.c:360 #: src/webdav.c:337
#, c-format #, c-format
msgid "socket library initialization failed" msgid "socket library initialization failed"
msgstr "die socket-Bibliothek konnte nicht initialisiert werden" msgstr "die socket-Bibliothek konnte nicht initialisiert werden"


#: src/webdav.c:372 #: src/webdav.c:349
#, c-format #, c-format
msgid "can't open stream to log neon-messages" msgid "can't open stream to log neon-messages"
msgstr "kann die Ausgabe für neon-Log-Meldungen nicht öffnen" msgstr "kann die Ausgabe für neon-Log-Meldungen nicht öffnen"


#: src/webdav.c:413 #: src/webdav.c:380
#, c-format #, c-format
msgid "neon library does not support TLS/SSL" msgid "neon library does not support TLS/SSL"
msgstr "die Neon-Bibliothek uterstützt TLS/SSL nicht" msgstr "die Neon-Bibliothek uterstützt TLS/SSL nicht"


#: src/webdav.c:475 src/webdav.c:478 #: src/webdav.c:440 src/webdav.c:443
#, c-format #, c-format
msgid "mounting failed; the server does not support WebDAV" msgid "mounting failed; the server does not support WebDAV"
msgstr "das Einhängen schlug fehl; der Server unterstützt WebDAV nicht" msgstr "das Einhängen schlug fehl; der Server unterstützt WebDAV nicht"


#: src/webdav.c:486 #: src/webdav.c:451
#, c-format #, c-format
msgid "warning: the server does not support locks" msgid "warning: the server does not support locks"
msgstr "Warnung: der Server kann Dateien nicht sperren" msgstr "Warnung: der Server kann Dateien nicht sperren"


#: src/webdav.c:1566 #: src/webdav.c:1454
msgid "authentication failure:" msgid "authentication failure:"
msgstr "Authentifizierungsfehler" msgstr "Authentifizierungsfehler"


#: src/webdav.c:1604 #: src/webdav.c:1492
#, c-format #, c-format
msgid "%i can't open cache file" msgid "%i can't open cache file"
msgstr "%i kann die Cache-Datei nicht öffnen" msgstr "%i kann die Cache-Datei nicht öffnen"


#: src/webdav.c:1612 #: src/webdav.c:1500
#, c-format #, c-format
msgid "%i error writing to cache file" msgid "%i error writing to cache file"
msgstr "%i Fehler beim Schreiben der Cache-Datei" msgstr "%i Fehler beim Schreiben der Cache-Datei"


#: src/webdav.c:1922 src/webdav.c:1951 src/webdav.c:1988 #: src/webdav.c:1741 src/webdav.c:1770 src/webdav.c:1807
#, c-format #, c-format
msgid "the server certificate is not trusted" msgid "the server certificate is not trusted"
msgstr "wir trauen dem Zertifikat nicht" msgstr "wir trauen dem Zertifikat nicht"


#: src/webdav.c:1931 src/webdav.c:1934 #: src/webdav.c:1750 src/webdav.c:1753
#, c-format #, c-format
msgid "error processing server certificate" msgid "error processing server certificate"
msgstr "Fehler beim Analysieren des Server-Zertifikats" msgstr "Fehler beim Analysieren des Server-Zertifikats"


#: src/webdav.c:1945 src/webdav.c:1979 #: src/webdav.c:1764 src/webdav.c:1798
#, c-format #, c-format
msgid "the server certificate is not yet valid" msgid "the server certificate is not yet valid"
msgstr "das Server-Zertifikat ist noch nicht gültig" msgstr "das Server-Zertifikat ist noch nicht gültig"


#: src/webdav.c:1947 src/webdav.c:1982 #: src/webdav.c:1766 src/webdav.c:1801
#, c-format #, c-format
msgid "the server certificate has expired" msgid "the server certificate has expired"
msgstr "das Server-Zertifikat ist nicht mehr gültig" msgstr "das Server-Zertifikat ist nicht mehr gültig"


#: src/webdav.c:1949 src/webdav.c:1985 #: src/webdav.c:1768 src/webdav.c:1804
#, c-format #, c-format
msgid "the server certificate does not match the server name" msgid "the server certificate does not match the server name"
msgstr "das Server-Zertifikat passt nicht zum Namen des Servers" msgstr "das Server-Zertifikat passt nicht zum Namen des Servers"


#: src/webdav.c:1953 src/webdav.c:1991 #: src/webdav.c:1772 src/webdav.c:1810
#, c-format #, c-format
msgid "unknown certificate error" msgid "unknown certificate error"
msgstr "Fehler beim Analysieren des Server-Zertifikats" msgstr "Fehler beim Analysieren des Server-Zertifikats"


#: src/webdav.c:1954 #: src/webdav.c:1773
#, c-format #, c-format
msgid " issuer: %s" msgid " issuer: %s"
msgstr " Aussteller: %s" msgstr " Aussteller: %s"


#: src/webdav.c:1956 #: src/webdav.c:1775
#, c-format #, c-format
msgid " subject: %s" msgid " subject: %s"
msgstr " Inhaber: %s" msgstr " Inhaber: %s"


#: src/webdav.c:1958 #: src/webdav.c:1777
#, c-format #, c-format
msgid " identity: %s" msgid " identity: %s"
msgstr " Name: %s" msgstr " Name: %s"


#: src/webdav.c:1960 #: src/webdav.c:1779
#, c-format #, c-format
msgid " fingerprint: %s" msgid " fingerprint: %s"
msgstr " Fingerabdruck: %s" msgstr " Fingerabdruck: %s"


#: src/webdav.c:1962 #: src/webdav.c:1781
#, c-format #, c-format
msgid "" msgid ""
"You only should accept this certificate, if you can\n" "You only should accept this certificate, if you can\n"
@ -784,28 +784,26 @@ msgstr ""
"dass der Fingerabdruck stimmt. Der Server könnte gefälscht sein oder\n" "dass der Fingerabdruck stimmt. Der Server könnte gefälscht sein oder\n"
"ein Angreifer könnte sich in die Verbindung zum Server eingeschaltet haben.\n" "ein Angreifer könnte sich in die Verbindung zum Server eingeschaltet haben.\n"


#: src/webdav.c:1965 #: src/webdav.c:1784
#, c-format #, c-format
msgid "Accept certificate for this session? [y,N] " msgid "Accept certificate for this session? [y,N] "
msgstr "Ich akzeptiere das Zertifikat für diese Sitzung [j,N]: " msgstr "Ich akzeptiere das Zertifikat für diese Sitzung [j,N]: "


#: src/webdav.c:1992 #: src/webdav.c:1811
#, c-format #, c-format
msgid " issuer: %s" msgid " issuer: %s"
msgstr " Aussteller des Zertifikats: %s" msgstr " Aussteller des Zertifikats: %s"


#: src/webdav.c:1993 #: src/webdav.c:1812
#, c-format #, c-format
msgid " subject: %s" msgid " subject: %s"
msgstr " Inhaber des Zertifikats: %s" msgstr " Inhaber des Zertifikats: %s"


#: src/webdav.c:1994 #: src/webdav.c:1813
#, c-format #, c-format
msgid " identity: %s" msgid " identity: %s"
msgstr " Name: %s" msgstr " Name: %s"


#: src/webdav.c:1997 #: src/webdav.c:1816
msgid " accepted by user" msgid " accepted by user"
msgstr " durch den Benutzer akzeptiert" msgstr " durch den Benutzer akzeptiert"



View File

@ -1,13 +1,14 @@
/* This file is taken from FUSE 2.5.3.
From the two alternative licences the BSD licence has been chosen.
#include and #ifdef directives have been removed.
Modifications by Werner Baumann, 2009-04-14. */


/* This file defines the kernel interface of FUSE */

/* /*
Copyright (C) 2001-2006 Miklos Szeredi. All rights reserved. This file defines the kernel interface of FUSE
Copyright (C) 2001-2008 Miklos Szeredi <miklos@szeredi.hu>

This program can be distributed under the terms of the GNU GPL.
See the file COPYING.

This -- and only this -- header file may also be distributed under
the terms of the BSD Licence as follows:

Copyright (C) 2001-2007 Miklos Szeredi. All rights reserved.


Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions
@ -31,26 +32,98 @@
SUCH DAMAGE. SUCH DAMAGE.
*/ */


/*
* This file defines the kernel interface of FUSE
*
* Protocol changelog:
*
* 7.9:
* - new fuse_getattr_in input argument of GETATTR
* - add lk_flags in fuse_lk_in
* - add lock_owner field to fuse_setattr_in, fuse_read_in and fuse_write_in
* - add blksize field to fuse_attr
* - add file flags field to fuse_read_in and fuse_write_in
*
* 7.10
* - add nonseekable open flag
*
* 7.11
* - add IOCTL message
* - add unsolicited notification support
* - add POLL message and NOTIFY_POLL notification
*
* 7.12
* - add umask flag to input argument of open, mknod and mkdir
* - add notification messages for invalidation of inodes and
* directory entries
*
* 7.13
* - make max number of background requests and congestion threshold
* tunables
*
* 7.14
* - add splice support to fuse device
*
* 7.15
* - add store notify
* - add retrieve notify
*
* 7.16
* - add BATCH_FORGET request
* - FUSE_IOCTL_UNRESTRICTED shall now return with array of 'struct
* fuse_ioctl_iovec' instead of ambiguous 'struct iovec'
* - add FUSE_IOCTL_32BIT flag
*
* 7.17
* - add FUSE_FLOCK_LOCKS and FUSE_RELEASE_FLOCK_UNLOCK
*
* 7.18
* - add FUSE_IOCTL_DIR flag
* - add FUSE_NOTIFY_DELETE
*
* 7.19
* - add FUSE_FALLOCATE
*/


#ifndef _LINUX_FUSE_H
#define _LINUX_FUSE_H

#include <sys/types.h>
#define __u64 uint64_t #define __u64 uint64_t
#define __s64 int64_t
#define __u32 uint32_t #define __u32 uint32_t
#define __s32 int32_t #define __s32 int32_t
#define __u16 uint16_t

/*
* Version negotiation:
*
* Both the kernel and userspace send the version they support in the
* INIT request and reply respectively.
*
* If the major versions match then both shall use the smallest
* of the two minor versions for communication.
*
* If the kernel supports a larger major version, then userspace shall
* reply with the major version it supports, ignore the rest of the
* INIT message and expect a new INIT message from the kernel with a
* matching major version.
*
* If the library supports a larger major version, then it shall fall
* back to the major protocol version sent by the kernel for
* communication and reply with that major version (and an arbitrary
* supported minor version).
*/


/** Version number of this interface */ /** Version number of this interface */
#define FUSE_KERNEL_VERSION 7 #define FUSE_KERNEL_VERSION 7


/** Minor version number of this interface */ /** Minor version number of this interface */
#define FUSE_KERNEL_MINOR_VERSION 5 #define FUSE_KERNEL_MINOR_VERSION 19


/** The node ID of the root inode */ /** The node ID of the root inode */
#define FUSE_ROOT_ID 1 #define FUSE_ROOT_ID 1


/** The major number of the fuse character device */
#define FUSE_MAJOR 10

/** The minor number of the fuse character device */
#define FUSE_MINOR 229

/* Make sure all structures are padded to 64bit boundary, so 32bit /* Make sure all structures are padded to 64bit boundary, so 32bit
userspace works under 64bit kernels */ userspace works under 64bit kernels */


@ -69,6 +142,8 @@ struct fuse_attr {
__u32 uid; __u32 uid;
__u32 gid; __u32 gid;
__u32 rdev; __u32 rdev;
__u32 blksize;
__u32 padding;
}; };


struct fuse_kstatfs { struct fuse_kstatfs {
@ -84,6 +159,16 @@ struct fuse_kstatfs {
__u32 spare[6]; __u32 spare[6];
}; };


struct fuse_file_lock {
__u64 start;
__u64 end;
__u32 type;
__u32 pid; /* tgid */
};

/**
* Bitmasks for fuse_setattr_in.valid
*/
#define FATTR_MODE (1 << 0) #define FATTR_MODE (1 << 0)
#define FATTR_UID (1 << 1) #define FATTR_UID (1 << 1)
#define FATTR_GID (1 << 2) #define FATTR_GID (1 << 2)
@ -91,15 +176,100 @@ struct fuse_kstatfs {
#define FATTR_ATIME (1 << 4) #define FATTR_ATIME (1 << 4)
#define FATTR_MTIME (1 << 5) #define FATTR_MTIME (1 << 5)
#define FATTR_FH (1 << 6) #define FATTR_FH (1 << 6)
#define FATTR_ATIME_NOW (1 << 7)
#define FATTR_MTIME_NOW (1 << 8)
#define FATTR_LOCKOWNER (1 << 9)


/** /**
* Flags returned by the OPEN request * Flags returned by the OPEN request
* *
* FOPEN_DIRECT_IO: bypass page cache for this open file * FOPEN_DIRECT_IO: bypass page cache for this open file
* FOPEN_KEEP_CACHE: don't invalidate the data cache on open * FOPEN_KEEP_CACHE: don't invalidate the data cache on open
* FOPEN_NONSEEKABLE: the file is not seekable
*/ */
#define FOPEN_DIRECT_IO (1 << 0) #define FOPEN_DIRECT_IO (1 << 0)
#define FOPEN_KEEP_CACHE (1 << 1) #define FOPEN_KEEP_CACHE (1 << 1)
#define FOPEN_NONSEEKABLE (1 << 2)

/**
* INIT request/reply flags
*
* FUSE_POSIX_LOCKS: remote locking for POSIX file locks
* FUSE_EXPORT_SUPPORT: filesystem handles lookups of "." and ".."
* FUSE_DONT_MASK: don't apply umask to file mode on create operations
* FUSE_FLOCK_LOCKS: remote locking for BSD style file locks
*/
#define FUSE_ASYNC_READ (1 << 0)
#define FUSE_POSIX_LOCKS (1 << 1)
#define FUSE_FILE_OPS (1 << 2)
#define FUSE_ATOMIC_O_TRUNC (1 << 3)
#define FUSE_EXPORT_SUPPORT (1 << 4)
#define FUSE_BIG_WRITES (1 << 5)
#define FUSE_DONT_MASK (1 << 6)
#define FUSE_FLOCK_LOCKS (1 << 10)

/**
* CUSE INIT request/reply flags
*
* CUSE_UNRESTRICTED_IOCTL: use unrestricted ioctl
*/
#define CUSE_UNRESTRICTED_IOCTL (1 << 0)

/**
* Release flags
*/
#define FUSE_RELEASE_FLUSH (1 << 0)
#define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1)

/**
* Getattr flags
*/
#define FUSE_GETATTR_FH (1 << 0)

/**
* Lock flags
*/
#define FUSE_LK_FLOCK (1 << 0)

/**
* WRITE flags
*
* FUSE_WRITE_CACHE: delayed write from page cache, file handle is guessed
* FUSE_WRITE_LOCKOWNER: lock_owner field is valid
*/
#define FUSE_WRITE_CACHE (1 << 0)
#define FUSE_WRITE_LOCKOWNER (1 << 1)

/**
* Read flags
*/
#define FUSE_READ_LOCKOWNER (1 << 1)

/**
* Ioctl flags
*
* FUSE_IOCTL_COMPAT: 32bit compat ioctl on 64bit machine
* FUSE_IOCTL_UNRESTRICTED: not restricted to well-formed ioctls, retry allowed
* FUSE_IOCTL_RETRY: retry with new iovecs
* FUSE_IOCTL_32BIT: 32bit ioctl
* FUSE_IOCTL_DIR: is a directory
*
* FUSE_IOCTL_MAX_IOV: maximum of in_iovecs + out_iovecs
*/
#define FUSE_IOCTL_COMPAT (1 << 0)
#define FUSE_IOCTL_UNRESTRICTED (1 << 1)
#define FUSE_IOCTL_RETRY (1 << 2)
#define FUSE_IOCTL_32BIT (1 << 3)
#define FUSE_IOCTL_DIR (1 << 4)

#define FUSE_IOCTL_MAX_IOV 256

/**
* Poll flags
*
* FUSE_POLL_SCHEDULE_NOTIFY: request poll notify
*/
#define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0)


enum fuse_opcode { enum fuse_opcode {
FUSE_LOOKUP = 1, FUSE_LOOKUP = 1,
@ -130,13 +300,38 @@ enum fuse_opcode {
FUSE_READDIR = 28, FUSE_READDIR = 28,
FUSE_RELEASEDIR = 29, FUSE_RELEASEDIR = 29,
FUSE_FSYNCDIR = 30, FUSE_FSYNCDIR = 30,
FUSE_GETLK = 31,
FUSE_SETLK = 32,
FUSE_SETLKW = 33,
FUSE_ACCESS = 34, FUSE_ACCESS = 34,
FUSE_CREATE = 35 FUSE_CREATE = 35,
FUSE_INTERRUPT = 36,
FUSE_BMAP = 37,
FUSE_DESTROY = 38,
FUSE_IOCTL = 39,
FUSE_POLL = 40,
FUSE_NOTIFY_REPLY = 41,
FUSE_BATCH_FORGET = 42,
FUSE_FALLOCATE = 43,

/* CUSE specific operations */
CUSE_INIT = 4096,
};

enum fuse_notify_code {
FUSE_NOTIFY_POLL = 1,
FUSE_NOTIFY_INVAL_INODE = 2,
FUSE_NOTIFY_INVAL_ENTRY = 3,
FUSE_NOTIFY_STORE = 4,
FUSE_NOTIFY_RETRIEVE = 5,
FUSE_NOTIFY_DELETE = 6,
FUSE_NOTIFY_CODE_MAX,
}; };


/* The read buffer is required to be at least 8k, but may be much larger */ /* The read buffer is required to be at least 8k, but may be much larger */
/* 2009-04-14, increased size of FUSE_MIN_READ_BUFFER, Werner Baumann */ #define FUSE_MIN_READ_BUFFER 8192
#define FUSE_MIN_READ_BUFFER 16384
#define FUSE_COMPAT_ENTRY_OUT_SIZE 120


struct fuse_entry_out { struct fuse_entry_out {
__u64 nodeid; /* Inode ID */ __u64 nodeid; /* Inode ID */
@ -153,6 +348,24 @@ struct fuse_forget_in {
__u64 nlookup; __u64 nlookup;
}; };


struct fuse_forget_one {
__u64 nodeid;
__u64 nlookup;
};

struct fuse_batch_forget_in {
__u32 count;
__u32 dummy;
};

struct fuse_getattr_in {
__u32 getattr_flags;
__u32 dummy;
__u64 fh;
};

#define FUSE_COMPAT_ATTR_OUT_SIZE 96

struct fuse_attr_out { struct fuse_attr_out {
__u64 attr_valid; /* Cache timeout for the attributes */ __u64 attr_valid; /* Cache timeout for the attributes */
__u32 attr_valid_nsec; __u32 attr_valid_nsec;
@ -160,14 +373,18 @@ struct fuse_attr_out {
struct fuse_attr attr; struct fuse_attr attr;
}; };


#define FUSE_COMPAT_MKNOD_IN_SIZE 8

struct fuse_mknod_in { struct fuse_mknod_in {
__u32 mode; __u32 mode;
__u32 rdev; __u32 rdev;
__u32 umask;
__u32 padding;
}; };


struct fuse_mkdir_in { struct fuse_mkdir_in {
__u32 mode; __u32 mode;
__u32 padding; __u32 umask;
}; };


struct fuse_rename_in { struct fuse_rename_in {
@ -183,7 +400,7 @@ struct fuse_setattr_in {
__u32 padding; __u32 padding;
__u64 fh; __u64 fh;
__u64 size; __u64 size;
__u64 unused1; __u64 lock_owner;
__u64 atime; __u64 atime;
__u64 mtime; __u64 mtime;
__u64 unused2; __u64 unused2;
@ -198,8 +415,15 @@ struct fuse_setattr_in {
}; };


struct fuse_open_in { struct fuse_open_in {
__u32 flags;
__u32 unused;
};

struct fuse_create_in {
__u32 flags; __u32 flags;
__u32 mode; __u32 mode;
__u32 umask;
__u32 padding;
}; };


struct fuse_open_out { struct fuse_open_out {
@ -211,27 +435,37 @@ struct fuse_open_out {
struct fuse_release_in { struct fuse_release_in {
__u64 fh; __u64 fh;
__u32 flags; __u32 flags;
__u32 padding; __u32 release_flags;
__u64 lock_owner;
}; };


struct fuse_flush_in { struct fuse_flush_in {
__u64 fh; __u64 fh;
__u32 flush_flags; __u32 unused;
__u32 padding; __u32 padding;
__u64 lock_owner;
}; };


struct fuse_read_in { struct fuse_read_in {
__u64 fh; __u64 fh;
__u64 offset; __u64 offset;
__u32 size; __u32 size;
__u32 read_flags;
__u64 lock_owner;
__u32 flags;
__u32 padding; __u32 padding;
}; };


#define FUSE_COMPAT_WRITE_IN_SIZE 24

struct fuse_write_in { struct fuse_write_in {
__u64 fh; __u64 fh;
__u64 offset; __u64 offset;
__u32 size; __u32 size;
__u32 write_flags; __u32 write_flags;
__u64 lock_owner;
__u32 flags;
__u32 padding;
}; };


struct fuse_write_out { struct fuse_write_out {
@ -266,6 +500,18 @@ struct fuse_getxattr_out {
__u32 padding; __u32 padding;
}; };


struct fuse_lk_in {
__u64 fh;
__u64 owner;
struct fuse_file_lock lk;
__u32 lk_flags;
__u32 padding;
};

struct fuse_lk_out {
struct fuse_file_lock lk;
};

struct fuse_access_in { struct fuse_access_in {
__u32 mask; __u32 mask;
__u32 padding; __u32 padding;
@ -274,15 +520,100 @@ struct fuse_access_in {
struct fuse_init_in { struct fuse_init_in {
__u32 major; __u32 major;
__u32 minor; __u32 minor;
__u32 max_readahead;
__u32 flags;
}; };


struct fuse_init_out { struct fuse_init_out {
__u32 major; __u32 major;
__u32 minor; __u32 minor;
__u32 unused[3]; __u32 max_readahead;
__u32 flags;
__u16 max_background;
__u16 congestion_threshold;
__u32 max_write; __u32 max_write;
}; };


#define CUSE_INIT_INFO_MAX 4096

struct cuse_init_in {
__u32 major;
__u32 minor;
__u32 unused;
__u32 flags;
};

struct cuse_init_out {
__u32 major;
__u32 minor;
__u32 unused;
__u32 flags;
__u32 max_read;
__u32 max_write;
__u32 dev_major; /* chardev major */
__u32 dev_minor; /* chardev minor */
__u32 spare[10];
};

struct fuse_interrupt_in {
__u64 unique;
};

struct fuse_bmap_in {
__u64 block;
__u32 blocksize;
__u32 padding;
};

struct fuse_bmap_out {
__u64 block;
};

struct fuse_ioctl_in {
__u64 fh;
__u32 flags;
__u32 cmd;
__u64 arg;
__u32 in_size;
__u32 out_size;
};

struct fuse_ioctl_iovec {
__u64 base;
__u64 len;
};

struct fuse_ioctl_out {
__s32 result;
__u32 flags;
__u32 in_iovs;
__u32 out_iovs;
};

struct fuse_poll_in {
__u64 fh;
__u64 kh;
__u32 flags;
__u32 padding;
};

struct fuse_poll_out {
__u32 revents;
__u32 padding;
};

struct fuse_notify_poll_wakeup_out {
__u64 kh;
};

struct fuse_fallocate_in {
__u64 fh;
__u64 offset;
__u64 length;
__u32 mode;
__u32 padding;
};

struct fuse_in_header { struct fuse_in_header {
__u32 len; __u32 len;
__u32 opcode; __u32 opcode;
@ -305,10 +636,56 @@ struct fuse_dirent {
__u64 off; __u64 off;
__u32 namelen; __u32 namelen;
__u32 type; __u32 type;
char name[0]; char name[];
}; };


#define FUSE_NAME_OFFSET ((unsigned) ((struct fuse_dirent *) 0)->name) #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
#define FUSE_DIRENT_ALIGN(x) (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1)) #define FUSE_DIRENT_ALIGN(x) (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1))
#define FUSE_DIRENT_SIZE(d) \ #define FUSE_DIRENT_SIZE(d) \
FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen) FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)

struct fuse_notify_inval_inode_out {
__u64 ino;
__s64 off;
__s64 len;
};

struct fuse_notify_inval_entry_out {
__u64 parent;
__u32 namelen;
__u32 padding;
};

struct fuse_notify_delete_out {
__u64 parent;
__u64 child;
__u32 namelen;
__u32 padding;
};

struct fuse_notify_store_out {
__u64 nodeid;
__u64 offset;
__u32 size;
__u32 padding;
};

struct fuse_notify_retrieve_out {
__u64 notify_unique;
__u64 nodeid;
__u64 offset;
__u32 size;
__u32 padding;
};

/* Matches the size of fuse_write_in */
struct fuse_notify_retrieve_in {
__u64 dummy1;
__u64 offset;
__u32 size;
__u32 dummy2;
__u64 dummy3;
__u64 dummy4;
};

#endif /* _LINUX_FUSE_H */

View File

@ -55,6 +55,9 @@
#ifdef HAVE_SYS_STAT_H #ifdef HAVE_SYS_STAT_H
#include <sys/stat.h> #include <sys/stat.h>
#endif #endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif


#include "xalloc.h" #include "xalloc.h"
#include "xvasprintf.h" #include "xvasprintf.h"
@ -74,6 +77,17 @@
#endif #endif




/* Constants from Linux headers */
/*==============================*/

#ifndef MISC_MAJOR
#define MISC_MAJOR 10
#endif
#ifndef FUSE_MINOR
#define FUSE_MINOR 229
#endif


/* Data Types */ /* Data Types */
/*============*/ /*============*/


@ -92,6 +106,9 @@ struct create_out {
kernel file system. */ kernel file system. */
#define FUSE_DEV_NAME "fuse" #define FUSE_DEV_NAME "fuse"


/* Minimum minor version of fuse. */
#define FUSE_MIN_MINOR 13



/* Private global variables */ /* Private global variables */
/*==========================*/ /*==========================*/
@ -102,6 +119,14 @@ static int fuse_device;
/* Buffer used for communication with the kernel module (in and out). */ /* Buffer used for communication with the kernel module (in and out). */
static size_t buf_size; static size_t buf_size;
static char *buf; static char *buf;
/* Header of incomming calls. */
static struct fuse_in_header *ih;
/* Header of outgoing replies. */
static struct fuse_out_header *oh;
/* Start of upcall specific structure. */
static char *upcall;
/* Start of upcall specific reply structure. */
static char *reply;


/* Time to wait for upcalls before calling dav_tidy_cache(). */ /* Time to wait for upcalls before calling dav_tidy_cache(). */
static time_t idle_time; static time_t idle_time;
@ -161,6 +186,10 @@ fuse_stat(void);
static uint32_t static uint32_t
fuse_write(void); fuse_write(void);


static uint32_t
not_implemented(const char *msg);


/* Auxiliary functions. */ /* Auxiliary functions. */


static off_t static off_t
@ -183,12 +212,17 @@ dav_init_kernel_interface(const char *url, const char *mpoint,
"Initializing kernel interface"); "Initializing kernel interface");


buf_size = args->buf_size * 1024; buf_size = args->buf_size * 1024;
if (buf_size < (FUSE_MIN_READ_BUFFER + 4096)) if (buf_size < (FUSE_MIN_READ_BUFFER + 1024))
buf_size = FUSE_MIN_READ_BUFFER + 4096; buf_size = FUSE_MIN_READ_BUFFER + 1024;
buf = malloc(buf_size); buf = malloc(buf_size);
if (!buf) if (!buf)
error(EXIT_FAILURE, errno, _("can't allocate message buffer")); error(EXIT_FAILURE, errno, _("can't allocate message buffer"));


ih = (struct fuse_in_header *) buf;
oh = (struct fuse_out_header *) buf;
upcall = buf + sizeof(struct fuse_in_header);
reply = buf + sizeof(struct fuse_out_header);

idle_time = args->delay_upload; idle_time = args->delay_upload;


char *path = xasprintf("%s/%s", DAV_DEV_DIR, FUSE_DEV_NAME); char *path = xasprintf("%s/%s", DAV_DEV_DIR, FUSE_DEV_NAME);
@ -198,7 +232,7 @@ dav_init_kernel_interface(const char *url, const char *mpoint,
fuse_device = open(path, O_RDWR | O_NONBLOCK); fuse_device = open(path, O_RDWR | O_NONBLOCK);
} }
if (fuse_device <= 0) { if (fuse_device <= 0) {
if (mknod(path, S_IFCHR, makedev(FUSE_MAJOR, FUSE_MINOR)) == 0) { if (mknod(path, S_IFCHR, makedev(MISC_MAJOR, FUSE_MINOR)) == 0) {
if (chown(path, 0, 0) == 0 && chmod(path, S_IRUSR | S_IWUSR) == 0) { if (chown(path, 0, 0) == 0 && chmod(path, S_IRUSR | S_IWUSR) == 0) {
fuse_device = open(path, O_RDWR | O_NONBLOCK); fuse_device = open(path, O_RDWR | O_NONBLOCK);
} else { } else {
@ -214,7 +248,7 @@ dav_init_kernel_interface(const char *url, const char *mpoint,
char *mdata = xasprintf("fd=%i,rootmode=%o,user_id=%i,group_id=%i," char *mdata = xasprintf("fd=%i,rootmode=%o,user_id=%i,group_id=%i,"
"allow_other,max_read=%lu", fuse_device, "allow_other,max_read=%lu", fuse_device,
args->dir_mode, args->fsuid, args->fsgid, args->dir_mode, args->fsuid, args->fsgid,
(unsigned long int) (buf_size - 4096)); (unsigned long int) (buf_size - 1024));


if (mount(url, mpoint, "fuse", args->mopts, mdata) != 0) if (mount(url, mpoint, "fuse", args->mopts, mdata) != 0)
error(EXIT_FAILURE, errno, _("mounting failed")); error(EXIT_FAILURE, errno, _("mounting failed"));
@ -273,8 +307,6 @@ dav_run_msgloop(volatile int *keep_on_running)
break; break;
} }


struct fuse_in_header *ih = (struct fuse_in_header *) buf;
struct fuse_out_header *oh = (struct fuse_out_header *) buf;
if (ih->nodeid == 1) if (ih->nodeid == 1)
ih->nodeid = root; ih->nodeid = root;


@ -286,7 +318,6 @@ dav_run_msgloop(volatile int *keep_on_running)
if (debug) if (debug)
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
"FUSE_FORGET: no reply"); "FUSE_FORGET: no reply");
oh->error = 0;
oh->len = 0; oh->len = 0;
break; break;
case FUSE_GETATTR: case FUSE_GETATTR:
@ -296,16 +327,10 @@ dav_run_msgloop(volatile int *keep_on_running)
oh->len = fuse_setattr(); oh->len = fuse_setattr();
break; break;
case FUSE_READLINK: case FUSE_READLINK:
if (debug) oh->len = not_implemented("FUSE_READLINK:");
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_READLINK:");
oh->error = -ENOSYS;
oh->len = sizeof(struct fuse_out_header);
break; break;
case FUSE_SYMLINK: case FUSE_SYMLINK:
if (debug) oh->len = not_implemented("FUSE_SYMLINK:");
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_SYMLINK:");
oh->error = -ENOSYS;
oh->len = sizeof(struct fuse_out_header);
break; break;
case FUSE_MKNOD: case FUSE_MKNOD:
oh->len = fuse_mknod(); oh->len = fuse_mknod();
@ -315,28 +340,30 @@ dav_run_msgloop(volatile int *keep_on_running)
break; break;
case FUSE_UNLINK: case FUSE_UNLINK:
if (debug) { if (debug) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_UNLINK:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " p 0x%llx, %s", "FUSE_UNLINK %llu: n=0x%llx",
(unsigned long long) ih->nodeid, (unsigned long long) ih->unique,
(char *) (buf + sizeof(struct fuse_in_header))); (unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
ih->uid, ih->gid, ih->pid);
} }
oh->error = dav_remove((dav_node *) ((size_t) ih->nodeid), oh->error = dav_remove((dav_node *) ((size_t) ih->nodeid), upcall,
(char *) (buf + sizeof(struct fuse_in_header)), ih->uid);
ih->uid);
if (oh->error) if (oh->error)
oh->error *= -1; oh->error *= -1;
oh->len = sizeof(struct fuse_out_header); oh->len = sizeof(struct fuse_out_header);
break; break;
case FUSE_RMDIR: case FUSE_RMDIR:
if (debug) { if (debug) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_RMDIR:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " p 0x%llx, %s", "FUSE_RMDIR %llu: n=0x%llx",
(unsigned long long) ih->nodeid, (unsigned long long) ih->unique,
(char *) (buf + sizeof(struct fuse_in_header))); (unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
ih->uid, ih->gid, ih->pid);
} }
oh->error = dav_rmdir((dav_node *) ((size_t) ih->nodeid), oh->error = dav_rmdir((dav_node *) ((size_t) ih->nodeid), upcall,
(char *) (buf + sizeof(struct fuse_in_header)), ih->uid);
ih->uid);
if (oh->error) if (oh->error)
oh->error *= -1; oh->error *= -1;
oh->len = sizeof(struct fuse_out_header); oh->len = sizeof(struct fuse_out_header);
@ -345,10 +372,7 @@ dav_run_msgloop(volatile int *keep_on_running)
oh->len = fuse_rename(); oh->len = fuse_rename();
break; break;
case FUSE_LINK: case FUSE_LINK:
if (debug) oh->len = not_implemented("FUSE_LINK:");
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_LINK:");
oh->error = -ENOSYS;
oh->len = sizeof(struct fuse_out_header);
break; break;
case FUSE_OPEN: case FUSE_OPEN:
oh->len = fuse_open(); oh->len = fuse_open();
@ -368,9 +392,12 @@ dav_run_msgloop(volatile int *keep_on_running)
break; break;
case FUSE_FSYNC: case FUSE_FSYNC:
if (debug) { if (debug) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_FSYNC:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " n 0x%llx", "FUSE_FSYNC %llu: n=0x%llx",
(unsigned long long) ih->nodeid); (unsigned long long) ih->unique,
(unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
ih->uid, ih->gid, ih->pid);
} }
oh->error = dav_sync((dav_node *) ((size_t) ih->nodeid)); oh->error = dav_sync((dav_node *) ((size_t) ih->nodeid));
if (oh->error) if (oh->error)
@ -378,28 +405,16 @@ dav_run_msgloop(volatile int *keep_on_running)
oh->len = sizeof(struct fuse_out_header); oh->len = sizeof(struct fuse_out_header);
break; break;
case FUSE_SETXATTR: case FUSE_SETXATTR:
if (debug) oh->len = not_implemented("FUSE_SETXATTR:");
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_SETXATTR:");
oh->error = -ENOSYS;
oh->len = sizeof(struct fuse_out_header);
break; break;
case FUSE_GETXATTR: case FUSE_GETXATTR:
if (debug) oh->len = not_implemented("FUSE_GETXATTR:");
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_GETXATTR:");
oh->error = -ENOSYS;
oh->len = sizeof(struct fuse_out_header);
break; break;
case FUSE_LISTXATTR: case FUSE_LISTXATTR:
if (debug) oh->len = not_implemented("FUSE_LISTXATTR:");
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_LISTXATTR:");
oh->error = -ENOSYS;
oh->len = sizeof(struct fuse_out_header);
break; break;
case FUSE_REMOVEXATTR: case FUSE_REMOVEXATTR:
if (debug) oh->len = not_implemented("FUSE_REMOVEXATTR:");
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_REMOVEXATTR:");
oh->error = -ENOSYS;
oh->len = sizeof(struct fuse_out_header);
break; break;
case FUSE_FLUSH: case FUSE_FLUSH:
if (debug) if (debug)
@ -421,10 +436,16 @@ dav_run_msgloop(volatile int *keep_on_running)
oh->len = fuse_release(); oh->len = fuse_release();
break; break;
case FUSE_FSYNCDIR: case FUSE_FSYNCDIR:
if (debug) oh->len = not_implemented("FUSE_FSYNCDIR:");
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_FSYNCDIR:"); break;
oh->error = -ENOSYS; case FUSE_GETLK:
oh->len = sizeof(struct fuse_out_header); oh->len = not_implemented("FUSE_GETLK:");
break;
case FUSE_SETLK:
oh->len = not_implemented("FUSE_SETLK:");
break;
case FUSE_SETLKW:
oh->len = not_implemented("FUSE_SETLKW:");
break; break;
case FUSE_ACCESS: case FUSE_ACCESS:
oh->len = fuse_access(); oh->len = fuse_access();
@ -432,6 +453,30 @@ dav_run_msgloop(volatile int *keep_on_running)
case FUSE_CREATE: case FUSE_CREATE:
oh->len = fuse_create(); oh->len = fuse_create();
break; break;
case FUSE_INTERRUPT:
oh->len = not_implemented("FUSE_INTERRUPT:");
break;
case FUSE_BMAP:
oh->len = not_implemented("FUSE_BMAP:");
break;
case FUSE_DESTROY:
oh->len = not_implemented("FUSE_DESTROY:");
break;
case FUSE_IOCTL:
oh->len = not_implemented("FUSE_IOCTL:");
break;
case FUSE_POLL:
oh->len = not_implemented("FUSE_POLL:");
break;
case FUSE_NOTIFY_REPLY:
oh->len = not_implemented("FUSE_NOTIFY_REPLY:");
break;
case FUSE_BATCH_FORGET:
oh->len = not_implemented("FUSE_BATCH_FORGET:");
break;
case FUSE_FALLOCATE:
oh->len = not_implemented("FUSE_FALLOCATE:");
break;
default: default:
if (debug) if (debug)
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
@ -478,15 +523,16 @@ dav_run_msgloop(volatile int *keep_on_running)
static uint32_t static uint32_t
fuse_access(void) fuse_access(void)
{ {
struct fuse_in_header *ih = (struct fuse_in_header *) buf; struct fuse_access_in *in = (struct fuse_access_in *) upcall;
struct fuse_access_in *in = (struct fuse_access_in *)
(buf + sizeof(struct fuse_in_header));
struct fuse_out_header *oh = (struct fuse_out_header *) buf;
if (debug) { if (debug) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_ACCESS:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_ACCESS %llu: n=0x%llx",
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " n 0x%llx, f 0%o", (unsigned long long) ih->unique,
(unsigned long long) ih->nodeid, in->mask); (unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " uid %i", ih->uid); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
ih->uid, ih->gid, ih->pid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " m=0x%x",
in->mask);
} }


oh->error = dav_access((dav_node *) ((size_t) ih->nodeid), ih->uid, oh->error = dav_access((dav_node *) ((size_t) ih->nodeid), ih->uid,
@ -502,18 +548,18 @@ fuse_access(void)
static uint32_t static uint32_t
fuse_create(void) fuse_create(void)
{ {
struct fuse_in_header *ih= (struct fuse_in_header *) buf; struct fuse_create_in *in = (struct fuse_create_in *) upcall;
struct fuse_open_in *in = (struct fuse_open_in *) char *name = upcall + sizeof(struct fuse_create_in);
(buf + sizeof(struct fuse_in_header)); struct create_out *out = (struct create_out *) reply;
char *name = buf + sizeof(struct fuse_in_header)
+ sizeof(struct fuse_open_in);
struct fuse_out_header *oh = (struct fuse_out_header *) buf;
struct create_out *out = (struct create_out *)
(buf + sizeof(struct fuse_out_header));
if (debug) { if (debug) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_CREATE:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_CREATE %llu: n=0x%llx",
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " n 0x%llx, f 0%o", (unsigned long long) ih->unique,
(unsigned long long) ih->nodeid, in->flags); (unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
ih->uid, ih->gid, ih->pid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " f=0x%x m=0%o um=0%o",
in->flags, in->mode, in->umask);
} }


int created = 0; int created = 0;
@ -570,6 +616,7 @@ fuse_create(void)


if (debug) if (debug)
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " fd %i", fd); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " fd %i", fd);

return sizeof(struct fuse_out_header) + sizeof(struct create_out); return sizeof(struct fuse_out_header) + sizeof(struct create_out);
} }


@ -577,14 +624,17 @@ fuse_create(void)
static uint32_t static uint32_t
fuse_getattr(void) fuse_getattr(void)
{ {
struct fuse_in_header *ih = (struct fuse_in_header *) buf; struct fuse_getattr_in *in = (struct fuse_getattr_in *) upcall;
struct fuse_out_header *oh = (struct fuse_out_header *) buf; struct fuse_attr_out *out = (struct fuse_attr_out *) reply;
struct fuse_attr_out *out = (struct fuse_attr_out *)
(buf + sizeof(struct fuse_out_header));
if (debug) { if (debug) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_GETATTR:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_GETATTR %llu: n=0x%llx",
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " n 0x%llx", (unsigned long long) ih->unique,
(unsigned long long) ih->nodeid); (unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
ih->uid, ih->gid, ih->pid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " f=0x%x fh=%llu",
in->getattr_flags, in->fh);
} }


oh->error = dav_getattr((dav_node *) ((size_t) ih->nodeid), ih->uid); oh->error = dav_getattr((dav_node *) ((size_t) ih->nodeid), ih->uid);
@ -606,16 +656,33 @@ fuse_getattr(void)
static uint32_t static uint32_t
fuse_init(void) fuse_init(void)
{ {
struct fuse_in_header *ih = (struct fuse_in_header *) buf; struct fuse_init_in *in = (struct fuse_init_in *) upcall;
struct fuse_init_in *in = (struct fuse_init_in *) struct fuse_init_out *out = (struct fuse_init_out *) reply;
(buf + sizeof(struct fuse_in_header));
struct fuse_out_header *oh = (struct fuse_out_header *) buf;
struct fuse_init_out *out = (struct fuse_init_out *)
(buf + sizeof(struct fuse_out_header));
if (debug) { if (debug) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_INIT:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_INIT %llu: n=0x%llx",
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " version %i.%i", (unsigned long long) ih->unique,
(unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
ih->uid, ih->gid, ih->pid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " verson=%u.%u",
in->major, in->minor); in->major, in->minor);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " ra=%u f=0x%x",
in->max_readahead, in->flags);
}

if (in->major < FUSE_KERNEL_VERSION
|| (in->major == FUSE_KERNEL_VERSION && in->minor < FUSE_MIN_MINOR)) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
"FATAL: Kernel-version too old.");
oh->error = -ENOSYS;
return sizeof(struct fuse_out_header);
}

if (in->major > FUSE_KERNEL_VERSION) {
oh->error = 0;
out->major = FUSE_KERNEL_VERSION;
return sizeof(struct fuse_out_header);
} }


dav_node *node; dav_node *node;
@ -630,12 +697,16 @@ fuse_init(void)


root = (size_t) node; root = (size_t) node;
out->major = FUSE_KERNEL_VERSION; out->major = FUSE_KERNEL_VERSION;
out->minor = FUSE_KERNEL_MINOR_VERSION; if (in->minor > FUSE_KERNEL_MINOR_VERSION) {
out->unused[0] = 0; out->minor = FUSE_KERNEL_MINOR_VERSION;
out->unused[1] = 0; } else {
out->unused[2] = 0; out->minor = in->minor;
out->max_write = buf_size - sizeof(struct fuse_in_header) }
- sizeof(struct fuse_write_in) - 4095; out->max_readahead = 0;
out->flags = 0;
out->max_background = 0;
out->congestion_threshold = 0;
out->max_write = buf_size - 1024;


return sizeof(struct fuse_out_header) + sizeof(struct fuse_init_out); return sizeof(struct fuse_out_header) + sizeof(struct fuse_init_out);
} }
@ -644,15 +715,16 @@ fuse_init(void)
static uint32_t static uint32_t
fuse_lookup(void) fuse_lookup(void)
{ {
struct fuse_in_header *ih = (struct fuse_in_header *) buf; char * name = upcall;
char * name = (char *) (buf + sizeof(struct fuse_in_header)); struct fuse_entry_out *out = (struct fuse_entry_out *) reply;
struct fuse_out_header *oh = (struct fuse_out_header *) buf;
struct fuse_entry_out *out = (struct fuse_entry_out *)
(buf + sizeof(struct fuse_out_header));
if (debug) { if (debug) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_LOOKUP:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_LOOKUP %llu: n=0x%llx",
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " p 0x%llx, %s", (unsigned long long) ih->unique,
(unsigned long long) ih->nodeid, name); (unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
ih->uid, ih->gid, ih->pid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " %s", name);
} }


dav_node *node = NULL; dav_node *node = NULL;
@ -666,7 +738,7 @@ fuse_lookup(void)
return sizeof(struct fuse_out_header); return sizeof(struct fuse_out_header);
} }


out->nodeid = (size_t) node; out->nodeid = (uint64_t) ((size_t) node);
out->generation = out->nodeid; out->generation = out->nodeid;
out->entry_valid = 1; out->entry_valid = 1;
out->attr_valid = 1; out->attr_valid = 1;
@ -681,18 +753,18 @@ fuse_lookup(void)
static uint32_t static uint32_t
fuse_mkdir(void) fuse_mkdir(void)
{ {
struct fuse_in_header *ih = (struct fuse_in_header *) buf; struct fuse_mkdir_in *in = (struct fuse_mkdir_in *) upcall;
struct fuse_mkdir_in *in = (struct fuse_mkdir_in *) char *name = upcall + sizeof(struct fuse_mkdir_in);
(buf + sizeof(struct fuse_in_header)); struct fuse_entry_out *out = (struct fuse_entry_out *) reply;
char *name = (char *) (buf + sizeof(struct fuse_in_header)
+ sizeof(struct fuse_mkdir_in));
struct fuse_out_header *oh = (struct fuse_out_header *) buf;
struct fuse_entry_out *out = (struct fuse_entry_out *)
(buf + sizeof(struct fuse_out_header));
if (debug) { if (debug) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_MKDIR:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_MKDIR %llu: n=0x%llx",
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " p 0x%llx, %s", (unsigned long long) ih->unique,
(unsigned long long) ih->nodeid, name); (unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
ih->uid, ih->gid, ih->pid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " m=0%o um=0%o %s",
in->mode, in->umask, name);
} }


dav_node *node = NULL; dav_node *node = NULL;
@ -721,18 +793,18 @@ fuse_mkdir(void)
static uint32_t static uint32_t
fuse_mknod(void) fuse_mknod(void)
{ {
struct fuse_in_header *ih = (struct fuse_in_header *) buf; struct fuse_mknod_in *in = (struct fuse_mknod_in *) upcall;
struct fuse_mknod_in *in = (struct fuse_mknod_in *) char *name = upcall + sizeof(struct fuse_mknod_in);
(buf + sizeof(struct fuse_in_header)); struct fuse_entry_out *out = (struct fuse_entry_out *) reply;
char *name = (char *) (buf + sizeof(struct fuse_in_header)
+ sizeof(struct fuse_mknod_in));
struct fuse_out_header *oh = (struct fuse_out_header *) buf;
struct fuse_entry_out *out = (struct fuse_entry_out *)
(buf + sizeof(struct fuse_out_header));
if (debug) { if (debug) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_MKNOD:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_MKNOD %llu: n=0x%llx",
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " p 0x%llx, m 0%o", (unsigned long long) ih->unique,
(unsigned long long) ih->nodeid, in->mode); (unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
ih->uid, ih->gid, ih->pid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " m=0%o r=%u um=0%o",
in->mode, in->rdev, in->umask);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " %s", name); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " %s", name);
} }


@ -767,20 +839,24 @@ fuse_mknod(void)
static uint32_t static uint32_t
fuse_open(void) fuse_open(void)
{ {
struct fuse_in_header *ih= (struct fuse_in_header *) buf; struct fuse_open_in *in = (struct fuse_open_in *) upcall;
struct fuse_open_in *in = (struct fuse_open_in *) struct fuse_open_out *out = (struct fuse_open_out *) reply;
(buf + sizeof(struct fuse_in_header));
struct fuse_out_header *oh = (struct fuse_out_header *) buf;
struct fuse_open_out *out = (struct fuse_open_out *)
(buf + sizeof(struct fuse_out_header));
if (debug) { if (debug) {
if (ih->opcode == FUSE_OPENDIR) { if (ih->opcode == FUSE_OPENDIR) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_OPENDIR:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
"FUSE_OPENDIR %llu: n=0x%llx",
(unsigned long long) ih->unique,
(unsigned long long) ih->nodeid);
} else { } else {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_OPEN:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
"FUSE_OPEN %llu: n=0x%llx",
(unsigned long long) ih-> unique,
(unsigned long long) ih->nodeid);
} }
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " n 0x%llx, f 0%o", syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
(unsigned long long) ih->nodeid, in->flags); ih->uid, ih->gid, ih->pid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " f=0x%x", in->flags);
} }


int fd = 0; int fd = 0;
@ -800,6 +876,7 @@ fuse_open(void)


if (debug) if (debug)
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " fd %i", fd); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " fd %i", fd);

return sizeof(struct fuse_out_header) + sizeof(struct fuse_open_out); return sizeof(struct fuse_out_header) + sizeof(struct fuse_open_out);
} }


@ -807,21 +884,27 @@ fuse_open(void)
static uint32_t static uint32_t
fuse_read(void) fuse_read(void)
{ {
struct fuse_in_header *ih= (struct fuse_in_header *) buf; struct fuse_read_in *in = (struct fuse_read_in *) upcall;
struct fuse_read_in *in = (struct fuse_read_in *)
(buf + sizeof(struct fuse_in_header));
struct fuse_out_header *oh = (struct fuse_out_header *) buf;
if (debug) { if (debug) {
if (ih->opcode == FUSE_READDIR) { if (ih->opcode == FUSE_READDIR) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_READDIR:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
"FUSE_READDIR %llu: n=0x%llx",
(unsigned long long) ih->unique,
(unsigned long long) ih->nodeid);
} else { } else {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_READ:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
"FUSE_READ %llu: n=0x%llx",
(unsigned long long) ih-> unique,
(unsigned long long) ih->nodeid);
} }
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " n 0x%llx, fd %llu", syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
(unsigned long long) ih->nodeid, (unsigned long long) in->fh); ih->uid, ih->gid, ih->pid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " pid %i", ih->pid); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " fh=%llu, off=%llu, sz=%u",
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " size %u, off %llu", (unsigned long long) in->fh, (unsigned long long) in->offset,
in->size, (unsigned long long) in->offset); in->size);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " rf=0x%x, f=0x%x",
in->read_flags, in->flags);
} }


if (in->size > (buf_size - sizeof(struct fuse_out_header))) { if (in->size > (buf_size - sizeof(struct fuse_out_header))) {
@ -831,8 +914,7 @@ fuse_read(void)


ssize_t len; ssize_t len;
oh->error = dav_read(&len, (dav_node *) ((size_t) ih->nodeid), oh->error = dav_read(&len, (dav_node *) ((size_t) ih->nodeid),
in->fh, buf + sizeof(struct fuse_out_header), in->fh, reply, in->size, in->offset);
in->size, in->offset);


if (oh->error) if (oh->error)
oh->error *= -1; oh->error *= -1;
@ -844,20 +926,24 @@ fuse_read(void)
static uint32_t static uint32_t
fuse_release(void) fuse_release(void)
{ {
struct fuse_in_header *ih = (struct fuse_in_header *) buf; struct fuse_release_in *in = (struct fuse_release_in *) upcall;
struct fuse_release_in *in = (struct fuse_release_in *)
(buf + sizeof(struct fuse_in_header));
struct fuse_out_header *oh = (struct fuse_out_header *) buf;
if (debug) { if (debug) {
if (ih->opcode == FUSE_RELEASEDIR) { if (ih->opcode == FUSE_RELEASEDIR) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_RELEASEDIR:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
"FUSE_RELEASEDIR %llu: n=0x%llx",
(unsigned long long) ih->unique,
(unsigned long long) ih->nodeid);
} else { } else {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_RELEASE:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
"FUSE_RELEASE %llu: n=0x%llx",
(unsigned long long) ih->unique,
(unsigned long long) ih->nodeid);
} }
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " n 0x%llx, f 0%o", syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
(unsigned long long) ih->nodeid, in->flags); ih->uid, ih->gid, ih->pid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " pid %i, fd %llu", syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " fh=%llu, f=0x%x, rf=0x%x",
ih->pid, (unsigned long long) in->fh); (unsigned long long) in->fh, in->flags, in->release_flags);
} }


oh->error = dav_close((dav_node *) ((size_t) ih->nodeid), in->fh, oh->error = dav_close((dav_node *) ((size_t) ih->nodeid), in->fh,
@ -873,18 +959,18 @@ fuse_release(void)
static uint32_t static uint32_t
fuse_rename(void) fuse_rename(void)
{ {
struct fuse_in_header *ih = (struct fuse_in_header *) buf; struct fuse_rename_in *in = (struct fuse_rename_in *) upcall;
struct fuse_rename_in *in = (struct fuse_rename_in *) char *old = upcall + sizeof(struct fuse_rename_in);
(buf + sizeof(struct fuse_in_header));
char *old = (char *) (buf + sizeof(struct fuse_in_header)
+ sizeof(struct fuse_rename_in));
char *new = old + strlen(old) + 1; char *new = old + strlen(old) + 1;
struct fuse_out_header *oh = (struct fuse_out_header *) buf;
if (debug) { if (debug) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_RENAME:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_RENAME %llu: n=0x%llx",
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " sp 0x%llx, %s", (unsigned long long) ih->unique,
(unsigned long long) ih->nodeid, old); (unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " dp 0x%llx, %s", syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
ih->uid, ih->gid, ih->pid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " %s", old);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " n=0x%llx %s",
(unsigned long long) in->newdir, new); (unsigned long long) in->newdir, new);
} }


@ -903,22 +989,21 @@ fuse_rename(void)
static uint32_t static uint32_t
fuse_setattr(void) fuse_setattr(void)
{ {
struct fuse_in_header *ih = (struct fuse_in_header *) buf; struct fuse_setattr_in *in = (struct fuse_setattr_in *) upcall;
struct fuse_setattr_in *in = (struct fuse_setattr_in *) struct fuse_attr_out *out = (struct fuse_attr_out *) reply;
(buf + sizeof(struct fuse_in_header));
struct fuse_out_header *oh = (struct fuse_out_header *) buf;
struct fuse_attr_out *out = (struct fuse_attr_out *)
(buf + sizeof(struct fuse_out_header));
if (debug) { if (debug) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_SETATTR:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_SETATTR %llu: n=0x%llx",
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " n 0x%llx, m 0%o", (unsigned long long) ih->unique,
(unsigned long long) ih->nodeid, in->mode); (unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " uid %i, gid %i", syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
in->uid, in->gid); ih->uid, ih->gid, ih->pid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " sz %llu, at %llu,", syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " v=0x%x sz=%llu",
(unsigned long long) in->size, (unsigned long long) in->atime); in->valid, (unsigned long long) in->size);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " mt %llu", syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " at=%llu mt=%llu",
(unsigned long long) in->mtime); (unsigned long long) in->atime, (unsigned long long) in->mtime);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " m=0%o uid=%u gid=%u",
in->mode, in->uid, in->gid);
} }


oh->error = dav_setattr((dav_node *) ((size_t) ih->nodeid), ih->uid, oh->error = dav_setattr((dav_node *) ((size_t) ih->nodeid), ih->uid,
@ -946,11 +1031,15 @@ fuse_setattr(void)
static uint32_t static uint32_t
fuse_stat(void) fuse_stat(void)
{ {
struct fuse_out_header *oh = (struct fuse_out_header *) buf; struct fuse_statfs_out *out = (struct fuse_statfs_out *) reply;
struct fuse_statfs_out *out = (struct fuse_statfs_out *)
(buf + sizeof(struct fuse_out_header)); if (debug) {
if (debug) syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_STATFS %llu: n=0x%llx",
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_STATFS:"); (unsigned long long) ih->unique,
(unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
ih->uid, ih->gid, ih->pid);
}


dav_stat *st = dav_statfs(); dav_stat *st = dav_statfs();
if (!st) { if (!st) {
@ -988,20 +1077,20 @@ fuse_stat(void)
static uint32_t static uint32_t
fuse_write(void) fuse_write(void)
{ {
struct fuse_in_header *ih= (struct fuse_in_header *) buf; struct fuse_write_in *in = (struct fuse_write_in *) upcall;
struct fuse_write_in *in = (struct fuse_write_in *) struct fuse_write_out *out = (struct fuse_write_out *) reply;
(buf + sizeof(struct fuse_in_header));
struct fuse_out_header *oh = (struct fuse_out_header *) buf;
struct fuse_write_out *out = (struct fuse_write_out *)
(buf + sizeof(struct fuse_out_header));
if (debug) { if (debug) {
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_WRITE:"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "FUSE_WRITE %llu: n=0x%llx",
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " n 0x%llx, fd %llu", (unsigned long long) ih->unique,
(unsigned long long) ih->nodeid, (unsigned long long) in->fh); (unsigned long long) ih->nodeid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " pid %i, flags 0%o", syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " u=%u g=%u p=%u",
ih->pid, in->write_flags); ih->uid, ih->gid, ih->pid);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " size %u, off %llu", syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " fh=%llu, off=%llu, sz=%u",
in->size, (unsigned long long) in->offset); (unsigned long long) in->fh, (unsigned long long) in->offset,
in->size);
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), " wf=0x%x, f=0x%x",
in->write_flags, in->flags);
} }


if (in->size > (buf_size - sizeof(struct fuse_in_header) if (in->size > (buf_size - sizeof(struct fuse_in_header)
@ -1012,8 +1101,7 @@ fuse_write(void)


size_t size; size_t size;
oh->error = dav_write(&size, (dav_node *) ((size_t) ih->nodeid), oh->error = dav_write(&size, (dav_node *) ((size_t) ih->nodeid),
in->fh, buf + sizeof(struct fuse_in_header) in->fh, upcall + sizeof(struct fuse_write_in),
+ sizeof(struct fuse_write_in),
in->size, in->offset); in->size, in->offset);


if (oh->error) { if (oh->error) {
@ -1027,6 +1115,17 @@ fuse_write(void)
return sizeof(struct fuse_out_header) + sizeof(struct fuse_write_out); return sizeof(struct fuse_out_header) + sizeof(struct fuse_write_out);
} }


static uint32_t
not_implemented(const char *msg)
{
if (debug)
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "%s", msg);

oh->error = -ENOSYS;

return sizeof(struct fuse_out_header);
}



/* Auxiliary functions. */ /* Auxiliary functions. */


@ -1101,4 +1200,7 @@ set_attr(struct fuse_attr *attr, const dav_node *node)
attr->uid = node->uid; attr->uid = node->uid;
attr->gid = node->gid; attr->gid = node->gid;
attr->rdev = 0; attr->rdev = 0;
/* TODO: set blocksize */
attr->blksize = 0;
attr->padding = 0;
} }