]> granicus.if.org Git - cgit/log
cgit
18 years agoAdd display of tree content w/ui-tree.c
Lars Hjemli [Tue, 12 Dec 2006 23:13:27 +0000 (00:13 +0100)]
Add display of tree content w/ui-tree.c

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agocache_lock: do xstrdup/free on lockfile
Lars Hjemli [Tue, 12 Dec 2006 09:16:41 +0000 (10:16 +0100)]
cache_lock: do xstrdup/free on lockfile

Since fmt() uses 8 alternating static buffers, and cache_lock might call
cache_create_dirs() multiple times, which in turn might call fmt() twice,
after four iterations lockfile would be overwritten by a cachedirectory
path.

In worst case, this could cause the cachedirectory to be unlinked and replaced
by a cachefile.

Fix: use xstrdup() on the result from fmt() before assigning to lockfile, and
call free(lockfile) before exit.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoDon't truncate valid cachefiles
Lars Hjemli [Mon, 11 Dec 2006 21:53:50 +0000 (22:53 +0100)]
Don't truncate valid cachefiles

An embarrassing thinko in cgit_check_cache() would truncate valid cachefiles
in the following situation:
  1) process A notices a missing/expired cachefile
  2) process B gets scheduled, locks, fills and unlocks the cachefile
  3) process A gets scheduled, locks the cachefile, notices that the cachefile
     now exist/is not expired anymore, and continues to overwrite it with an
     empty lockfile.

Thanks to Linus for noticing (again).

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoMove global variables + callback functions into shared.c
Lars Hjemli [Mon, 11 Dec 2006 16:25:41 +0000 (17:25 +0100)]
Move global variables + callback functions into shared.c

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoMove functions for generic object output into ui-view.c
Lars Hjemli [Mon, 11 Dec 2006 16:12:26 +0000 (17:12 +0100)]
Move functions for generic object output into ui-view.c

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoMove log-functions into ui-log.c
Lars Hjemli [Mon, 11 Dec 2006 16:04:19 +0000 (17:04 +0100)]
Move log-functions into ui-log.c

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoMove repo summary functions into ui-summary.c
Lars Hjemli [Mon, 11 Dec 2006 15:55:07 +0000 (16:55 +0100)]
Move repo summary functions into ui-summary.c

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoMove functions for repolist output into ui-repolist.c
Lars Hjemli [Mon, 11 Dec 2006 15:48:03 +0000 (16:48 +0100)]
Move functions for repolist output into ui-repolist.c

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoMove common output-functions into ui-shared.c
Lars Hjemli [Mon, 11 Dec 2006 15:38:30 +0000 (16:38 +0100)]
Move common output-functions into ui-shared.c

While at it, replace the cgit_[lib_]error constants with a proper function

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoRename config.c to parsing.c + move cgit_parse_query from cgit.c to parsing.c
Lars Hjemli [Mon, 11 Dec 2006 15:11:40 +0000 (16:11 +0100)]
Rename config.c to parsing.c + move cgit_parse_query from cgit.c to parsing.c

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoAvoid infinite loops in caching layer
Lars Hjemli [Mon, 11 Dec 2006 11:10:12 +0000 (12:10 +0100)]
Avoid infinite loops in caching layer

Add a global variable, cgit_max_lock_attemps, to avoid the possibility of
infinite loops when failing to acquire a lockfile. This could happen on
broken setups or under crazy server load.

Incidentally, this also fixes a lurking bug in cache_lock() where an
uninitialized returnvalue was used.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoLet 'make install' clear all cachefiles
Lars Hjemli [Mon, 11 Dec 2006 10:23:05 +0000 (11:23 +0100)]
Let 'make install' clear all cachefiles

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoFix cache algorithm loophole
Lars Hjemli [Mon, 11 Dec 2006 08:57:58 +0000 (09:57 +0100)]
Fix cache algorithm loophole

This closes the door for unneccessary calls to cgit_fill_cache().

Noticed by Linus.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoAdd version identifier in generated files
Lars Hjemli [Sun, 10 Dec 2006 22:50:16 +0000 (23:50 +0100)]
Add version identifier in generated files

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoAdd license file and copyright notices
Lars Hjemli [Sun, 10 Dec 2006 21:41:14 +0000 (22:41 +0100)]
Add license file and copyright notices

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoAdd caching infrastructure
Lars Hjemli [Sun, 10 Dec 2006 21:31:36 +0000 (22:31 +0100)]
Add caching infrastructure

This enables internal caching of page output.

Page requests are split into four groups:
  1) repo listing (front page)
  2) repo summary
  3) repo pages w/symbolic references in query string
  4) repo pages w/constant sha1's in query string

Each group has a TTL specified in minutes. When a page is requested, a cached
filename is stat(2)'ed and st_mtime is compared to time(2). If TTL has expired
(or the file didn't exist), the cached file is regenerated.

When generating a cached file, locking is used to avoid parallell processing
of the request. If multiple processes tries to aquire the same lock, the ones
who fail to get the lock serves the (expired) cached file. If the cached file
don't exist, the process instead calls sched_yield(2) before restarting the
request processing.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoAdd .gitignore
Lars Hjemli [Sat, 9 Dec 2006 21:21:43 +0000 (22:21 +0100)]
Add .gitignore

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoReplace useless make rules with generic $(OBJECTS) dependency
Lars Hjemli [Sat, 9 Dec 2006 14:29:05 +0000 (15:29 +0100)]
Replace useless make rules with generic $(OBJECTS) dependency

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
18 years agoImport cgit prototype from git tree
Lars Hjemli [Sat, 9 Dec 2006 14:18:17 +0000 (15:18 +0100)]
Import cgit prototype from git tree

This enables basic cgit functionality, using libgit.a and xdiff/lib.a from
git + a custom "git.h" + openssl for sha1 routines.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>