Allow relative paths for cgit_cache_root
Make sure we chdir(2) back to the original getcwd(2) when a page has been generated. Also, if the cgit_cache_root do not exist, try to create it. This is a feature intended to ease testing/debugging. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
这个提交包含在:
		
							
								
								
									
										4
									
								
								cache.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								cache.c
									
									
									
									
									
								
							@@ -45,6 +45,10 @@ int cache_create_dirs()
 | 
			
		||||
{
 | 
			
		||||
	char *path;
 | 
			
		||||
 | 
			
		||||
	path = fmt("%s", cgit_cache_root);
 | 
			
		||||
	if (mkdir(path, S_IRWXU) && errno!=EEXIST)
 | 
			
		||||
		return 0;
 | 
			
		||||
 | 
			
		||||
	if (!cgit_query_repo)
 | 
			
		||||
		return 0;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								cgit.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								cgit.c
									
									
									
									
									
								
							@@ -42,12 +42,16 @@ static void cgit_print_repo_page(struct cacheitem *item)
 | 
			
		||||
 | 
			
		||||
static void cgit_fill_cache(struct cacheitem *item)
 | 
			
		||||
{
 | 
			
		||||
	static char buf[PATH_MAX];
 | 
			
		||||
 | 
			
		||||
	getcwd(buf, sizeof(buf));
 | 
			
		||||
	htmlfd = item->fd;
 | 
			
		||||
	item->st.st_mtime = time(NULL);
 | 
			
		||||
	if (cgit_query_repo)
 | 
			
		||||
		cgit_print_repo_page(item);
 | 
			
		||||
	else
 | 
			
		||||
		cgit_print_repolist(item);
 | 
			
		||||
	chdir(buf);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void cgit_check_cache(struct cacheitem *item)
 | 
			
		||||
 
 | 
			
		||||
		在新工单中引用
	
	屏蔽一个用户