option to minimize memory usage

This commit is contained in:
wbaumann 2010-07-25 15:34:34 +00:00
parent 78f56f4b3c
commit 6a51851f4d
13 changed files with 309 additions and 153 deletions

View File

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

2010-05-04 Werner Baumann (werner.baumann@onlinehome.de)
* cache.c, defaults.h, mount_davfs.c, mount_davfs.h
davfs2.conf:
Added option to minimize memory usage by recurrently
removing unused nodes.

2010-05-04 Werner Baumann (werner.baumann@onlinehome.de)
* mount_davfs.c, check_fstab:
Search fstab additionally for mount point with

8
NEWS
View File

@ -4,6 +4,14 @@
# permitted in any medium without royalty.


What is new in davfs2 NEXT_VERSION
===========================

New option 'minimize_mem' to recurrently remove unused nodes.
It is intended for small systems, which may run out of memory
with huge davfs2 file systems. It may slow down davfs2.


What is new in davfs2 1.4.6
===========================


View File

@ -1,8 +1,8 @@
# davfs2 configuration file 2009-04-12
# version 9
# davfs2 configuration file 2010-07-25
# version 10
# ------------------------------------

# Copyright (C) 2006, 2007, 2008, 2009 Werner Baumann
# Copyright (C) 2006, 2007, 2008, 2009, 2010 Werner Baumann

# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
@ -63,6 +63,7 @@
# file_refresh 1 # second
# delay_upload 10
# gui_optimize 0
# minimize_mem 0

# Debugging Options
# -----------------

View File

@ -1,4 +1,4 @@
.TH @CONFIGFILE@ 5 2009\-04\-13 @PACKAGE_STRING@
.TH @CONFIGFILE@ 5 2010\-07\-25 @PACKAGE_STRING@


.SH NAME
@ -452,6 +452,16 @@ from all files in a directory with one PROPFIND request. 0 = no, 1 = yes.
.br
Default: 0

.TP
.B minimize_mem
Minimize the amount of memory used for file and directory nodes. The list
of nodes will be recurrently scaned and all nodes currently not used will
be removed. It is intended for small systems which might run out of memory
with huge file systems. Local changes of file permissions will be lost and
performance is degraded.
.br
Default: 0


.SH Debugging Options


View File

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2009-10-18 18:01+0300\n"
"POT-Creation-Date: 2010-07-25 17:31+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -22,9 +22,9 @@ msgid "@CONFIGFILE@"
msgstr ""

# type: TH
#: davfs2.conf.5:1 umount.davfs.8:1
#: davfs2.conf.5:1
#, no-wrap
msgid "2009-04-13"
msgid "2010-07-25"
msgstr ""

# type: TH
@ -392,7 +392,7 @@ msgid ""
msgstr ""

# type: TP
#: davfs2.conf.5:191 davfs2.conf.5:505
#: davfs2.conf.5:191 davfs2.conf.5:515
#, no-wrap
msgid "B<secrets>"
msgstr ""
@ -517,7 +517,7 @@ msgstr ""

# type: Plain text
#: davfs2.conf.5:247 davfs2.conf.5:255 davfs2.conf.5:273 davfs2.conf.5:283
#: davfs2.conf.5:300 davfs2.conf.5:454
#: davfs2.conf.5:300 davfs2.conf.5:454 davfs2.conf.5:464
msgid "Default: 0"
msgstr ""

@ -927,20 +927,36 @@ msgid ""
"files in a directory with one PROPFIND request. 0 = no, 1 = yes."
msgstr ""

# type: TP
#: davfs2.conf.5:455
#, no-wrap
msgid "B<minimize_mem>"
msgstr ""

# type: Plain text
#: davfs2.conf.5:462
msgid ""
"Minimize the amount of memory used for file and directory nodes. The list of "
"nodes will be recurrently scaned and all nodes currently not used will be "
"removed. It is intended for small systems which might run out of memory with "
"huge file systems. Local changes of file permissions will be lost and "
"performance is degraded."
msgstr ""

# type: SH
#: davfs2.conf.5:456
#: davfs2.conf.5:466
#, no-wrap
msgid "Debugging Options"
msgstr ""

# type: TP
#: davfs2.conf.5:458
#: davfs2.conf.5:468
#, no-wrap
msgid "B<debug>"
msgstr ""

# type: Plain text
#: davfs2.conf.5:466
#: davfs2.conf.5:476
msgid ""
"Send debug messages to the syslog daemon. The value tells what kind of "
"information shall be logged. The messages are send with facility LOG_DAEMON "
@ -951,7 +967,7 @@ msgid ""
msgstr ""

# type: Plain text
#: davfs2.conf.5:470
#: davfs2.conf.5:480
msgid ""
"Unlike other options, this option is cumulative. If there are several debug "
"entries with different values, all of them will be applied. Also debug "
@ -960,171 +976,171 @@ msgid ""
msgstr ""

# type: Plain text
#: davfs2.conf.5:473
#: davfs2.conf.5:483
msgid ""
"B<Note:> Debug messages let the log-files grow quickly. Never use this "
"option in normal operation of mount.davfs."
msgstr ""

# type: Plain text
#: davfs2.conf.5:475
#: davfs2.conf.5:485
msgid "Default: no debugging messages"
msgstr ""

# type: TP
#: davfs2.conf.5:476
#: davfs2.conf.5:486
#, no-wrap
msgid "B<Recognized values:>"
msgstr ""

# type: TP
#: davfs2.conf.5:478
#: davfs2.conf.5:488
#, no-wrap
msgid "B<config>"
msgstr ""

# type: Plain text
#: davfs2.conf.5:481
#: davfs2.conf.5:491
msgid "Command line and configuration options."
msgstr ""

# type: TP
#: davfs2.conf.5:481
#: davfs2.conf.5:491
#, no-wrap
msgid "B<kernel>"
msgstr ""

# type: Plain text
#: davfs2.conf.5:484
#: davfs2.conf.5:494
msgid "Upcalls from the kernel file system."
msgstr ""

# type: TP
#: davfs2.conf.5:484
#: davfs2.conf.5:494
#, no-wrap
msgid "B<cache>"
msgstr ""

# type: Plain text
#: davfs2.conf.5:487
#: davfs2.conf.5:497
msgid "Cache operations like adding and removing nodes."
msgstr ""

# type: TP
#: davfs2.conf.5:487
#: davfs2.conf.5:497
#, no-wrap
msgid "B<http>"
msgstr ""

# type: Plain text
#: davfs2.conf.5:490
#: davfs2.conf.5:500
msgid "HTTP headers."
msgstr ""

# type: TP
#: davfs2.conf.5:490
#: davfs2.conf.5:500
#, no-wrap
msgid "B<xml>"
msgstr ""

# type: Plain text
#: davfs2.conf.5:493
#: davfs2.conf.5:503
msgid "Parsing of the XML-body of WebDAV-requests."
msgstr ""

# type: TP
#: davfs2.conf.5:493
#: davfs2.conf.5:503
#, no-wrap
msgid "B<httpauth>"
msgstr ""

# type: Plain text
#: davfs2.conf.5:496
#: davfs2.conf.5:506
msgid "Negotiation of authentication."
msgstr ""

# type: TP
#: davfs2.conf.5:496
#: davfs2.conf.5:506
#, no-wrap
msgid "B<locks>"
msgstr ""

# type: Plain text
#: davfs2.conf.5:499
#: davfs2.conf.5:509
msgid "Information about locks."
msgstr ""

# type: TP
#: davfs2.conf.5:499
#: davfs2.conf.5:509
#, no-wrap
msgid "B<ssl>"
msgstr ""

# type: Plain text
#: davfs2.conf.5:502
#: davfs2.conf.5:512
msgid "TLS/SSL related stuff like certificates."
msgstr ""

# type: TP
#: davfs2.conf.5:502
#: davfs2.conf.5:512
#, no-wrap
msgid "B<httpbody>"
msgstr ""

# type: Plain text
#: davfs2.conf.5:505
#: davfs2.conf.5:515
msgid "Complete body of HTTP-responses."
msgstr ""

# type: Plain text
#: davfs2.conf.5:508
#: davfs2.conf.5:518
msgid ""
"Also print confidential information, which is usually omitted or obscured."
msgstr ""

# type: TP
#: davfs2.conf.5:508
#: davfs2.conf.5:518
#, no-wrap
msgid "B<most>"
msgstr ""

# type: Plain text
#: davfs2.conf.5:511
#: davfs2.conf.5:521
msgid "Includes config, kernel, cache and http."
msgstr ""

# type: SH
#: davfs2.conf.5:514 mount.davfs.8:532 umount.davfs.8:79
#: davfs2.conf.5:524 mount.davfs.8:532 umount.davfs.8:79
#, no-wrap
msgid "AUTHORS"
msgstr ""

# type: Plain text
#: davfs2.conf.5:518
#: davfs2.conf.5:528
msgid ""
"This man page was written by by Werner Baumann E<lt>werner."
"baumann@onlinehome.deE<gt>."
msgstr ""

# type: SH
#: davfs2.conf.5:520 mount.davfs.8:549 umount.davfs.8:84
#: davfs2.conf.5:530 mount.davfs.8:549 umount.davfs.8:84
#, no-wrap
msgid "DAVFS2 HOME"
msgstr ""

# type: Plain text
#: davfs2.conf.5:523 mount.davfs.8:552 umount.davfs.8:87
#: davfs2.conf.5:533 mount.davfs.8:552 umount.davfs.8:87
msgid "@PACKAGE_BUGREPORT@"
msgstr ""

# type: SH
#: davfs2.conf.5:525 mount.davfs.8:554 umount.davfs.8:89
#: davfs2.conf.5:535 mount.davfs.8:554 umount.davfs.8:89
#, no-wrap
msgid "SEE ALSO"
msgstr ""

# type: Plain text
#: davfs2.conf.5:531
#: davfs2.conf.5:541
msgid ""
"B<@PROGRAM_NAME@>(8), B<u@PROGRAM_NAME@>(8), B<mount>(8), B<umount>(8), "
"B<fstab>(5)"

View File

@ -6,8 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: davfs2 1.4.0\n"
"POT-Creation-Date: 2009-10-18 18:01+0300\n"
"PO-Revision-Date: 2009-06-12 12:25+0200\n"
"POT-Creation-Date: 2010-07-25 17:31+0300\n"
"PO-Revision-Date: 2010-07-25 17:32+0200\n"
"Last-Translator: Werner Baumann <werner.baumann@onlinehome.de>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -21,10 +21,10 @@ msgid "@CONFIGFILE@"
msgstr "@CONFIGFILE@"

# type: TH
#: davfs2.conf.5:1 umount.davfs.8:1
#: davfs2.conf.5:1
#, no-wrap
msgid "2009-04-13"
msgstr "2009-04-13"
msgid "2010-07-25"
msgstr "2010-07-25"

# type: TH
#: davfs2.conf.5:1 mount.davfs.8:1 umount.davfs.8:1
@ -480,7 +480,7 @@ msgstr ""
"I<@SYS_CONF_DIR@/@CERTS_DIR@/@CLICERTS_DIR@> nach ihr gesucht."

# type: TP
#: davfs2.conf.5:191 davfs2.conf.5:505
#: davfs2.conf.5:191 davfs2.conf.5:515
#, no-wrap
msgid "B<secrets>"
msgstr "B<secrets>"
@ -628,7 +628,7 @@ msgstr ""

# type: Plain text
#: davfs2.conf.5:247 davfs2.conf.5:255 davfs2.conf.5:273 davfs2.conf.5:283
#: davfs2.conf.5:300 davfs2.conf.5:454
#: davfs2.conf.5:300 davfs2.conf.5:454 davfs2.conf.5:464
msgid "Default: 0"
msgstr "Voreingestellt: 0"

@ -1141,20 +1141,42 @@ msgstr ""
"B<@PROGRAM_NAME@> diese Abfrage für alle Dateien eines Verzeichnisses mit "
"einem PROPFIND-Request zu erledigen. 0 = nein, 1 = ja."

# type: TP
#: davfs2.conf.5:455
#, no-wrap
msgid "B<minimize_mem>"
msgstr "B<minimize_mem>"

# type: Plain text
#: davfs2.conf.5:462
msgid ""
"Minimize the amount of memory used for file and directory nodes. The list of "
"nodes will be recurrently scaned and all nodes currently not used will be "
"removed. It is intended for small systems which might run out of memory with "
"huge file systems. Local changes of file permissions will be lost and "
"performance is degraded."
msgstr ""
"Minimiert den Hauptspeicher, der für Datei- und Verzeichnis-Knoten genutzt "
"wird. Dazu wird die Liste der Knoten regelmäßig durchsucht und derzeit nicht "
"bnötigte Knoten entfernt. Die Option ist für kleine System gedacht, bei "
"denen der Hauptspeicher sonst für große davfs2-Dateisystem nicht ausreicht. "
"Das Dateisystem wird dadurch etwas langsamer und lokale Änderungen der "
"Dateirchte gehen verloren."

# type: SH
#: davfs2.conf.5:456
#: davfs2.conf.5:466
#, no-wrap
msgid "Debugging Options"
msgstr "Debugging Optionen"

# type: TP
#: davfs2.conf.5:458
#: davfs2.conf.5:468
#, no-wrap
msgid "B<debug>"
msgstr "B<debug>"

# type: Plain text
#: davfs2.conf.5:466
#: davfs2.conf.5:476
msgid ""
"Send debug messages to the syslog daemon. The value tells what kind of "
"information shall be logged. The messages are send with facility LOG_DAEMON "
@ -1171,7 +1193,7 @@ msgstr ""
"hängt von der Neon-Bibliothek ab."

# type: Plain text
#: davfs2.conf.5:470
#: davfs2.conf.5:480
msgid ""
"Unlike other options, this option is cumulative. If there are several debug "
"entries with different values, all of them will be applied. Also debug "
@ -1184,7 +1206,7 @@ msgstr ""
"angewandt."

# type: Plain text
#: davfs2.conf.5:473
#: davfs2.conf.5:483
msgid ""
"B<Note:> Debug messages let the log-files grow quickly. Never use this "
"option in normal operation of mount.davfs."
@ -1193,143 +1215,143 @@ msgstr ""
"Verwende die Option niemals im normalen Betrieb."

# type: Plain text
#: davfs2.conf.5:475
#: davfs2.conf.5:485
msgid "Default: no debugging messages"
msgstr "Voreinstellung: keine Debug-Meldungen."

# type: Plain text
#: davfs2.conf.5:476
#: davfs2.conf.5:486
#, no-wrap
msgid "B<Recognized values:>"
msgstr "B<Mögliche Werte>"

# type: TP
#: davfs2.conf.5:478
#: davfs2.conf.5:488
#, no-wrap
msgid "B<config>"
msgstr "B<config>"

# type: Plain text
#: davfs2.conf.5:481
#: davfs2.conf.5:491
msgid "Command line and configuration options."
msgstr "Kommando-Zeile und Kofigurationsoptionen."

# type: TP
#: davfs2.conf.5:481
#: davfs2.conf.5:491
#, no-wrap
msgid "B<kernel>"
msgstr "B<kernel>"

# type: Plain text
#: davfs2.conf.5:484
#: davfs2.conf.5:494
msgid "Upcalls from the kernel file system."
msgstr "Anfragen vom Kernel-Dateisystem."

# type: TP
#: davfs2.conf.5:484
#: davfs2.conf.5:494
#, no-wrap
msgid "B<cache>"
msgstr "B<cache>"

# type: Plain text
#: davfs2.conf.5:487
#: davfs2.conf.5:497
msgid "Cache operations like adding and removing nodes."
msgstr ""
"Cache-Operationen wie das Erzeugen und Löschen von Dateien und "
"Verzeichnissen."

# type: TP
#: davfs2.conf.5:487
#: davfs2.conf.5:497
#, no-wrap
msgid "B<http>"
msgstr "B<http>"

# type: Plain text
#: davfs2.conf.5:490
#: davfs2.conf.5:500
msgid "HTTP headers."
msgstr "HTTP-Header."

# type: TP
#: davfs2.conf.5:490
#: davfs2.conf.5:500
#, no-wrap
msgid "B<xml>"
msgstr "B<xml>"

# type: Plain text
#: davfs2.conf.5:493
#: davfs2.conf.5:503
msgid "Parsing of the XML-body of WebDAV-requests."
msgstr "Analysieren von XML-Daten in WebDAV-Anfragen."

# type: TP
#: davfs2.conf.5:493
#: davfs2.conf.5:503
#, no-wrap
msgid "B<httpauth>"
msgstr "B<httpauth>"

# type: Plain text
#: davfs2.conf.5:496
#: davfs2.conf.5:506
msgid "Negotiation of authentication."
msgstr "Aushandeln der Authentifizierung."

# type: TP
#: davfs2.conf.5:496
#: davfs2.conf.5:506
#, no-wrap
msgid "B<locks>"
msgstr "B<locks>"

# type: Plain text
#: davfs2.conf.5:499
#: davfs2.conf.5:509
msgid "Information about locks."
msgstr "Informationen über Sperren."

# type: TP
#: davfs2.conf.5:499
#: davfs2.conf.5:509
#, no-wrap
msgid "B<ssl>"
msgstr "B<ssl>"

# type: Plain text
#: davfs2.conf.5:502
#: davfs2.conf.5:512
msgid "TLS/SSL related stuff like certificates."
msgstr "TLS/SSL-Informatinen, z.B. Zertifikate."

# type: TP
#: davfs2.conf.5:502
#: davfs2.conf.5:512
#, no-wrap
msgid "B<httpbody>"
msgstr "B<httpbody>"

# type: Plain text
#: davfs2.conf.5:505
#: davfs2.conf.5:515
msgid "Complete body of HTTP-responses."
msgstr "Der komplette Datenteil von HTTP-Antworten."

# type: Plain text
#: davfs2.conf.5:508
#: davfs2.conf.5:518
msgid ""
"Also print confidential information, which is usually omitted or obscured."
msgstr ""
"Gib auch vertrauliche Daten aus, die normalerweise weg gelassen werden."

# type: TP
#: davfs2.conf.5:508
#: davfs2.conf.5:518
#, no-wrap
msgid "B<most>"
msgstr "B<most>"

# type: Plain text
#: davfs2.conf.5:511
#: davfs2.conf.5:521
msgid "Includes config, kernel, cache and http."
msgstr "Beinhaltet config, kernel, cache und http."

# type: SH
#: davfs2.conf.5:514 mount.davfs.8:532 umount.davfs.8:79
#: davfs2.conf.5:524 mount.davfs.8:532 umount.davfs.8:79
#, no-wrap
msgid "AUTHORS"
msgstr "AUTOREN"

# type: Plain text
#: davfs2.conf.5:518
#: davfs2.conf.5:528
msgid ""
"This man page was written by by Werner Baumann E<lt>werner."
"baumann@onlinehome.deE<gt>."
@ -1338,24 +1360,24 @@ msgstr ""
"geschrieben."

# type: SH
#: davfs2.conf.5:520 mount.davfs.8:549 umount.davfs.8:84
#: davfs2.conf.5:530 mount.davfs.8:549 umount.davfs.8:84
#, no-wrap
msgid "DAVFS2 HOME"
msgstr "DAVFS2 HOME"

# type: TH
#: davfs2.conf.5:523 mount.davfs.8:552 umount.davfs.8:87
#: davfs2.conf.5:533 mount.davfs.8:552 umount.davfs.8:87
msgid "@PACKAGE_BUGREPORT@"
msgstr "@PACKAGE_BUGREPORT@"

# type: SH
#: davfs2.conf.5:525 mount.davfs.8:554 umount.davfs.8:89
#: davfs2.conf.5:535 mount.davfs.8:554 umount.davfs.8:89
#, no-wrap
msgid "SEE ALSO"
msgstr "SIEHE AUCH"

# type: Plain text
#: davfs2.conf.5:531
#: davfs2.conf.5:541
msgid ""
"B<@PROGRAM_NAME@>(8), B<u@PROGRAM_NAME@>(8), B<mount>(8), B<umount>(8), "
"B<fstab>(5)"

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: davfs2 1.4.0\n"
"POT-Creation-Date: 2009-04-27 18:47+0300\n"
"POT-Creation-Date: 2010-07-25 17:24+0300\n"
"PO-Revision-Date: 2009-04-27 18:49+0200\n"
"Last-Translator: Werner Baumann <werner.baumann@onlinehome.de>\n"
"Language-Team: \n"
@ -14,12 +14,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

# type: TH
#: davfs2.conf.5:1 mount.davfs.8:1 umount.davfs.8:1
#, no-wrap
msgid "2009-04-13"
msgstr "2009-04-13"

# type: TH
#: davfs2.conf.5:1 mount.davfs.8:1 umount.davfs.8:1
#, no-wrap
@ -39,24 +33,24 @@ msgid "DESCRIPTION"
msgstr "BESCHREIBUNG"

# type: SH
#: davfs2.conf.5:501 mount.davfs.8:513 umount.davfs.8:79
#: davfs2.conf.5:524 mount.davfs.8:532 umount.davfs.8:79
#, no-wrap
msgid "AUTHORS"
msgstr "AUTOREN"

# type: SH
#: davfs2.conf.5:507 mount.davfs.8:530 umount.davfs.8:84
#: davfs2.conf.5:530 mount.davfs.8:549 umount.davfs.8:84
#, no-wrap
msgid "DAVFS2 HOME"
msgstr "DAVFS2 HOME"

# type: TH
#: davfs2.conf.5:510 mount.davfs.8:533 umount.davfs.8:87
#: davfs2.conf.5:533 mount.davfs.8:552 umount.davfs.8:87
msgid "@PACKAGE_BUGREPORT@"
msgstr "@PACKAGE_BUGREPORT@"

# type: SH
#: davfs2.conf.5:512 mount.davfs.8:535 umount.davfs.8:89
#: davfs2.conf.5:535 mount.davfs.8:554 umount.davfs.8:89
#, no-wrap
msgid "SEE ALSO"
msgstr "SIEHE AUCH"
@ -111,19 +105,19 @@ msgid "Print a help message."
msgstr "Zeige einen Hilfe-Text an."

# type: SH
#: mount.davfs.8:344 umount.davfs.8:67
#: mount.davfs.8:361 umount.davfs.8:67
#, no-wrap
msgid "FILES"
msgstr "DATEIEN"

# type: TP
#: mount.davfs.8:405 umount.davfs.8:69
#: mount.davfs.8:422 umount.davfs.8:69
#, no-wrap
msgid "I<@SYS_RUN@>"
msgstr "I<@SYS_RUN@>"

# type: SH
#: mount.davfs.8:508 umount.davfs.8:74
#: mount.davfs.8:525 umount.davfs.8:74
#, no-wrap
msgid "BUGS"
msgstr "FEHLER"
@ -134,6 +128,12 @@ msgstr "FEHLER"
msgid "u@PROGRAM_NAME@"
msgstr "u@PROGRAM_NAME@"

# type: TH
#: umount.davfs.8:1
#, no-wrap
msgid "2009-04-13"
msgstr "2009-04-13"

# type: Plain text
#: umount.davfs.8:6
msgid "u@PROGRAM_NAME@ - Umount-helper to unmount a @PACKAGE@ file system"

View File

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: davfs2.conf.5\n"
"POT-Creation-Date: 2009-10-18 18:01+0300\n"
"POT-Creation-Date: 2010-07-25 17:31+0300\n"
"PO-Revision-Date: 2007-04-26 01:24-0300\n"
"Last-Translator: Luciano Bello <luciano@linux.org.ar>\n"
"Language-Team: Español <es@li.org>\n"
@ -23,9 +23,9 @@ msgid "@CONFIGFILE@"
msgstr "@CONFIGFILE@"

# type: TH
#: davfs2.conf.5:1 umount.davfs.8:1
#, no-wrap
msgid "2009-04-13"
#: davfs2.conf.5:1
#, fuzzy, no-wrap
msgid "2010-07-25"
msgstr "2009-04-13"

# type: TH
@ -463,7 +463,7 @@ msgstr ""
"I<@SYS_CONF_DIR@/@CERTS_DIR@/@CLICERTS_DIR@> serán buscados."

# type: TP
#: davfs2.conf.5:191 davfs2.conf.5:505
#: davfs2.conf.5:191 davfs2.conf.5:515
#, no-wrap
msgid "B<secrets>"
msgstr "B<secrets>"
@ -613,7 +613,7 @@ msgstr ""

# type: Plain text
#: davfs2.conf.5:247 davfs2.conf.5:255 davfs2.conf.5:273 davfs2.conf.5:283
#: davfs2.conf.5:300 davfs2.conf.5:454
#: davfs2.conf.5:300 davfs2.conf.5:454 davfs2.conf.5:464
msgid "Default: 0"
msgstr "Predeterminado: 0"

@ -1076,20 +1076,36 @@ msgstr ""
"intentará obtener esta información de todos los archivos en un directorio "
"con un único pedido PROPFIND. 0 = no, 1 = sí."

# type: TP
#: davfs2.conf.5:455
#, fuzzy, no-wrap
msgid "B<minimize_mem>"
msgstr "B<ignore_home>"

# type: Plain text
#: davfs2.conf.5:462
msgid ""
"Minimize the amount of memory used for file and directory nodes. The list of "
"nodes will be recurrently scaned and all nodes currently not used will be "
"removed. It is intended for small systems which might run out of memory with "
"huge file systems. Local changes of file permissions will be lost and "
"performance is degraded."
msgstr ""

# type: SH
#: davfs2.conf.5:456
#: davfs2.conf.5:466
#, fuzzy, no-wrap
msgid "Debugging Options"
msgstr "Opciones Generales"

# type: TP
#: davfs2.conf.5:458
#: davfs2.conf.5:468
#, no-wrap
msgid "B<debug>"
msgstr "B<debug>"

# type: Plain text
#: davfs2.conf.5:466
#: davfs2.conf.5:476
msgid ""
"Send debug messages to the syslog daemon. The value tells what kind of "
"information shall be logged. The messages are send with facility LOG_DAEMON "
@ -1100,7 +1116,7 @@ msgid ""
msgstr ""

# type: Plain text
#: davfs2.conf.5:470
#: davfs2.conf.5:480
msgid ""
"Unlike other options, this option is cumulative. If there are several debug "
"entries with different values, all of them will be applied. Also debug "
@ -1109,148 +1125,148 @@ msgid ""
msgstr ""

# type: Plain text
#: davfs2.conf.5:473
#: davfs2.conf.5:483
msgid ""
"B<Note:> Debug messages let the log-files grow quickly. Never use this "
"option in normal operation of mount.davfs."
msgstr ""

# type: Plain text
#: davfs2.conf.5:475
#: davfs2.conf.5:485
msgid "Default: no debugging messages"
msgstr ""

# type: Plain text
#: davfs2.conf.5:476
#: davfs2.conf.5:486
#, no-wrap
msgid "B<Recognized values:>"
msgstr ""

# type: TP
#: davfs2.conf.5:478
#: davfs2.conf.5:488
#, no-wrap
msgid "B<config>"
msgstr "B<config>"

# type: Plain text
#: davfs2.conf.5:481
#: davfs2.conf.5:491
#, fuzzy
msgid "Command line and configuration options."
msgstr "B<Sólo permitido en el archivo general de configuración del sistema.>"

# type: TP
#: davfs2.conf.5:481
#: davfs2.conf.5:491
#, no-wrap
msgid "B<kernel>"
msgstr "B<kernel>"

# type: Plain text
#: davfs2.conf.5:484
#: davfs2.conf.5:494
msgid "Upcalls from the kernel file system."
msgstr ""

# type: TP
#: davfs2.conf.5:484
#: davfs2.conf.5:494
#, no-wrap
msgid "B<cache>"
msgstr "B<cache>"

# type: Plain text
#: davfs2.conf.5:487
#: davfs2.conf.5:497
msgid "Cache operations like adding and removing nodes."
msgstr ""

# type: TP
#: davfs2.conf.5:487
#: davfs2.conf.5:497
#, no-wrap
msgid "B<http>"
msgstr "B<http>"

# type: Plain text
#: davfs2.conf.5:490
#: davfs2.conf.5:500
msgid "HTTP headers."
msgstr ""

# type: TP
#: davfs2.conf.5:490
#: davfs2.conf.5:500
#, no-wrap
msgid "B<xml>"
msgstr "B<xml>"

# type: Plain text
#: davfs2.conf.5:493
#: davfs2.conf.5:503
msgid "Parsing of the XML-body of WebDAV-requests."
msgstr ""

# type: TP
#: davfs2.conf.5:493
#: davfs2.conf.5:503
#, no-wrap
msgid "B<httpauth>"
msgstr "B<httpauth>"

# type: Plain text
#: davfs2.conf.5:496
#: davfs2.conf.5:506
msgid "Negotiation of authentication."
msgstr ""

# type: TP
#: davfs2.conf.5:496
#: davfs2.conf.5:506
#, no-wrap
msgid "B<locks>"
msgstr "B<locks>"

# type: Plain text
#: davfs2.conf.5:499
#: davfs2.conf.5:509
msgid "Information about locks."
msgstr ""

# type: TP
#: davfs2.conf.5:499
#: davfs2.conf.5:509
#, no-wrap
msgid "B<ssl>"
msgstr "B<ssl>"

# type: Plain text
#: davfs2.conf.5:502
#: davfs2.conf.5:512
msgid "TLS/SSL related stuff like certificates."
msgstr ""

# type: TP
#: davfs2.conf.5:502
#: davfs2.conf.5:512
#, no-wrap
msgid "B<httpbody>"
msgstr "B<httpbody>"

# type: Plain text
#: davfs2.conf.5:505
#: davfs2.conf.5:515
msgid "Complete body of HTTP-responses."
msgstr ""

# type: Plain text
#: davfs2.conf.5:508
#: davfs2.conf.5:518
msgid ""
"Also print confidential information, which is usually omitted or obscured."
msgstr ""

# type: TP
#: davfs2.conf.5:508
#: davfs2.conf.5:518
#, no-wrap
msgid "B<most>"
msgstr "B<most>"

# type: Plain text
#: davfs2.conf.5:511
#: davfs2.conf.5:521
msgid "Includes config, kernel, cache and http."
msgstr ""

# type: SH
#: davfs2.conf.5:514 mount.davfs.8:532 umount.davfs.8:79
#: davfs2.conf.5:524 mount.davfs.8:532 umount.davfs.8:79
#, no-wrap
msgid "AUTHORS"
msgstr "AUTORES"

# type: Plain text
#: davfs2.conf.5:518
#: davfs2.conf.5:528
msgid ""
"This man page was written by by Werner Baumann E<lt>werner."
"baumann@onlinehome.deE<gt>."
@ -1259,24 +1275,24 @@ msgstr ""
"baumann@onlinehome.deE<gt>."

# type: SH
#: davfs2.conf.5:520 mount.davfs.8:549 umount.davfs.8:84
#: davfs2.conf.5:530 mount.davfs.8:549 umount.davfs.8:84
#, no-wrap
msgid "DAVFS2 HOME"
msgstr "DAVFS2 HOME"

# type: TH
#: davfs2.conf.5:523 mount.davfs.8:552 umount.davfs.8:87
#: davfs2.conf.5:533 mount.davfs.8:552 umount.davfs.8:87
msgid "@PACKAGE_BUGREPORT@"
msgstr "@PACKAGE_BUGREPORT@"

# type: SH
#: davfs2.conf.5:525 mount.davfs.8:554 umount.davfs.8:89
#: davfs2.conf.5:535 mount.davfs.8:554 umount.davfs.8:89
#, no-wrap
msgid "SEE ALSO"
msgstr "VER TAMBIÉN"

# type: Plain text
#: davfs2.conf.5:531
#: davfs2.conf.5:541
msgid ""
"B<@PROGRAM_NAME@>(8), B<u@PROGRAM_NAME@>(8), B<mount>(8), B<umount>(8), "
"B<fstab>(5)"

View File

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2009-04-27 18:47+0300\n"
"POT-Creation-Date: 2010-07-25 17:24+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -15,12 +15,6 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING"

# type: TH
#: davfs2.conf.5:1 mount.davfs.8:1 umount.davfs.8:1
#, no-wrap
msgid "2009-04-13"
msgstr ""

# type: TH
#: davfs2.conf.5:1 mount.davfs.8:1 umount.davfs.8:1
#, no-wrap
@ -40,24 +34,24 @@ msgid "DESCRIPTION"
msgstr ""

# type: SH
#: davfs2.conf.5:501 mount.davfs.8:513 umount.davfs.8:79
#: davfs2.conf.5:524 mount.davfs.8:532 umount.davfs.8:79
#, no-wrap
msgid "AUTHORS"
msgstr ""

# type: SH
#: davfs2.conf.5:507 mount.davfs.8:530 umount.davfs.8:84
#: davfs2.conf.5:530 mount.davfs.8:549 umount.davfs.8:84
#, no-wrap
msgid "DAVFS2 HOME"
msgstr ""

# type: Plain text
#: davfs2.conf.5:510 mount.davfs.8:533 umount.davfs.8:87
#: davfs2.conf.5:533 mount.davfs.8:552 umount.davfs.8:87
msgid "@PACKAGE_BUGREPORT@"
msgstr ""

# type: SH
#: davfs2.conf.5:512 mount.davfs.8:535 umount.davfs.8:89
#: davfs2.conf.5:535 mount.davfs.8:554 umount.davfs.8:89
#, no-wrap
msgid "SEE ALSO"
msgstr ""
@ -110,19 +104,19 @@ msgid "Print a help message."
msgstr ""

# type: SH
#: mount.davfs.8:344 umount.davfs.8:67
#: mount.davfs.8:361 umount.davfs.8:67
#, no-wrap
msgid "FILES"
msgstr ""

# type: TP
#: mount.davfs.8:405 umount.davfs.8:69
#: mount.davfs.8:422 umount.davfs.8:69
#, no-wrap
msgid "I<@SYS_RUN@>"
msgstr ""

# type: SH
#: mount.davfs.8:508 umount.davfs.8:74
#: mount.davfs.8:525 umount.davfs.8:74
#, no-wrap
msgid "BUGS"
msgstr ""
@ -133,6 +127,12 @@ msgstr ""
msgid "u@PROGRAM_NAME@"
msgstr ""

# type: TH
#: umount.davfs.8:1
#, no-wrap
msgid "2009-04-13"
msgstr ""

# type: Plain text
#: umount.davfs.8:6
msgid "u@PROGRAM_NAME@ - Umount-helper to unmount a @PACKAGE@ file system"

View File

@ -168,6 +168,13 @@ static time_t delay_upload;
GET If-Modified-Since for single files. */
static int gui_optimize;

/* Remove nodes that are currently not needed to minimize memory usage. */
static int minimize_mem;

/* When to next run minimize_tree. 0 means to not run minimize_tree.
Must be updated when a node is created. */
static time_t next_minimize;

/* Time interval to wait, before a directory is updated. Usually equal to
dir_refresh, but will be varied in case the connection timed out.*/
static time_t retry;
@ -276,6 +283,9 @@ get_upload_time(dav_node *node)
return item->save_at;
}

static void
minimize_tree(dav_node *node, int rm_dir);

static int
move_dir(dav_node *src, dav_node *dst, dav_node *dst_parent,
const char *dst_name);
@ -604,6 +614,7 @@ dav_init_cache(const dav_args *args, const char *mpoint)
file_refresh = args->file_refresh;
delay_upload = args->delay_upload;
gui_optimize = args->gui_optimize;
minimize_mem = args->minimize_mem;
retry = dir_refresh;
min_retry = args->retry;
max_retry = args->max_retry;
@ -648,6 +659,7 @@ dav_init_cache(const dav_args *args, const char *mpoint)
backup->mode = S_IFDIR | S_IRWXU;

clean_cache();
next_minimize = 0;

int ret = update_directory(root, 0);
if (ret == EAGAIN) {
@ -750,6 +762,14 @@ dav_tidy_cache(void)
if (cache_size > max_cache_size)
resize_cache();

if (minimize_mem && next_minimize && time(NULL) > next_minimize) {
next_minimize = 0;
minimize_tree(root, 0);
if (debug)
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
"minimize_tree: %llu nodes remaining", fs_stat->files);
}

static dav_node_list_item *item = NULL;

dav_node_list_item *next_item = changed;
@ -1845,6 +1865,53 @@ delete_tree(dav_node *node)
}


/* Removes nodes that are currently not needed to minimize
memory usage.
Nodes are not needed if
- a file node is without cached file and its parent directory
has not been updated within file_refresh seconds
- a dir node has no childs and has not been updated within
file_refresh seconds.
rm_dir : if node is a directory only remove it if rm_ dir = 1. */
static void
minimize_tree(dav_node *node, int rm_dir)
{
if (node == backup) return;

if (is_dir(node)) {

int rm = (time(NULL) > (node->utime + file_refresh));
dav_node *child = node->childs;
while (child) {
dav_node *next = child->next;
if (rm || is_dir(child))
minimize_tree(child, rm);
child = next;
}
if (!node->childs && node != root && node != backup) {
if (rm && rm_dir) {
remove_from_tree(node);
remove_from_table(node);
delete_node(node);
*flush = 1;
} else if (node->utime
&& (!next_minimize
|| (node->utime + file_refresh) < next_minimize)) {
next_minimize = node->utime + file_refresh;
}
}

} else if (!is_cached(node) && !is_locked(node) && !is_created(node)) {

remove_from_tree(node);
remove_from_table(node);
delete_node(node);
*flush = 1;

}
}


/* Moves directory src to dst using WebDAV method MOVE. */
static int
move_dir(dav_node *src, dav_node *dst, dav_node *dst_parent,
@ -2068,6 +2135,9 @@ new_node(dav_node *parent, mode_t mode)
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "new node: %p->%p",
node->parent, node);
fs_stat->files++;
if (!next_minimize)
next_minimize = node->atime + file_refresh;

return node;
}

@ -2176,7 +2246,7 @@ remove_node(dav_node *node)
If there are inconsistencies between the information from the server and
the locally stored state, the local information is updated. Backups are
created if necessary.
This will only be done if the utime of dear is reached, otherwise this
This will only be done if the utime of dir is reached, otherwise this
function will do nothing.
utime and retry will be updated.
If the contents or the mtime of the dir has changed, the dir-cache-file

View File

@ -101,6 +101,9 @@
May be overridden by system config file and user config file. */
#define DAV_GUI_OPTIMIZE 0

/* Remove nodes that are currently not needed to minimize memory usage. */
#define DAV_MINIMIZE_MEM 0


/* HTTP */
/*======*/

View File

@ -1817,6 +1817,7 @@ new_args(void)
args->file_refresh = DAV_FILE_REFRESH;
args->delay_upload = DAV_DELAY_UPLOAD;
args->gui_optimize = DAV_GUI_OPTIMIZE;
args->minimize_mem = DAV_MINIMIZE_MEM;

args->debug = 0;
args->neon_debug = 0;
@ -2272,6 +2273,8 @@ read_config(dav_args *args, const char * filename, int system)
args->delay_upload = arg_to_int(parmv[1], 10, parmv[0]);
} else if (strcmp(parmv[0], "gui_optimize") == 0) {
args->gui_optimize = arg_to_int(parmv[1], 10, parmv[0]);
} else if (strcmp(parmv[0], "minimize_mem") == 0) {
args->minimize_mem = arg_to_int(parmv[1], 10, parmv[0]);
} else if (strcmp(parmv[0], "debug") == 0) {
args->debug |= debug_opts(parmv[1]);
args->neon_debug |= debug_opts_neon(parmv[1]);

View File

@ -95,6 +95,7 @@ typedef struct {
time_t file_refresh; /* User config file, system config file */
int delay_upload; /* User config file, system config file */
int gui_optimize; /* User config file, system config file */
int minimize_mem; /* User config file, system config file */
/* Debugging */
int debug; /* User config file, system config file */
int neon_debug; /* User config file, system config file */