summaryrefslogtreecommitdiffabout
path: root/cgit.h
authorLars Hjemli <hjemli@gmail.com>2009-02-19 21:38:36 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2009-02-19 21:38:36 (UTC)
commit488a214a81a25c6397c56822ed1713f51dddc520 (patch) (unidiff)
tree93b3be74f6c7b3ae6557a9d3c5c2856ff5efe8ed /cgit.h
parent6063e7b5532481ffaa7a6f080de28547983bbeb7 (diff)
downloadcgit-488a214a81a25c6397c56822ed1713f51dddc520.zip
cgit-488a214a81a25c6397c56822ed1713f51dddc520.tar.gz
cgit-488a214a81a25c6397c56822ed1713f51dddc520.tar.bz2
Add support for ETag in 'plain' view
When downloading a blob identified by its path, the client might want to know if the blob has been modified since a previous download of the same path. To this end, an ETag containing the blob SHA1 seems to be ideal. Todo: add support for HEAD requests... Suggested-by: Owen Taylor <otaylor@redhat.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'cgit.h') (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/cgit.h b/cgit.h
index 5f7af51..2bfbe7b 100644
--- a/cgit.h
+++ b/cgit.h
@@ -151,64 +151,65 @@ struct cgit_config {
151 char *virtual_root; 151 char *virtual_root;
152 int cache_size; 152 int cache_size;
153 int cache_dynamic_ttl; 153 int cache_dynamic_ttl;
154 int cache_max_create_time; 154 int cache_max_create_time;
155 int cache_repo_ttl; 155 int cache_repo_ttl;
156 int cache_root_ttl; 156 int cache_root_ttl;
157 int cache_static_ttl; 157 int cache_static_ttl;
158 int enable_index_links; 158 int enable_index_links;
159 int enable_log_filecount; 159 int enable_log_filecount;
160 int enable_log_linecount; 160 int enable_log_linecount;
161 int local_time; 161 int local_time;
162 int max_repo_count; 162 int max_repo_count;
163 int max_commit_count; 163 int max_commit_count;
164 int max_lock_attempts; 164 int max_lock_attempts;
165 int max_msg_len; 165 int max_msg_len;
166 int max_repodesc_len; 166 int max_repodesc_len;
167 int max_stats; 167 int max_stats;
168 int nocache; 168 int nocache;
169 int renamelimit; 169 int renamelimit;
170 int snapshots; 170 int snapshots;
171 int summary_branches; 171 int summary_branches;
172 int summary_log; 172 int summary_log;
173 int summary_tags; 173 int summary_tags;
174}; 174};
175 175
176struct cgit_page { 176struct cgit_page {
177 time_t modified; 177 time_t modified;
178 time_t expires; 178 time_t expires;
179 size_t size; 179 size_t size;
180 char *mimetype; 180 char *mimetype;
181 char *charset; 181 char *charset;
182 char *filename; 182 char *filename;
183 char *etag;
183 char *title; 184 char *title;
184}; 185};
185 186
186struct cgit_context { 187struct cgit_context {
187 struct cgit_query qry; 188 struct cgit_query qry;
188 struct cgit_config cfg; 189 struct cgit_config cfg;
189 struct cgit_repo *repo; 190 struct cgit_repo *repo;
190 struct cgit_page page; 191 struct cgit_page page;
191}; 192};
192 193
193struct cgit_snapshot_format { 194struct cgit_snapshot_format {
194 const char *suffix; 195 const char *suffix;
195 const char *mimetype; 196 const char *mimetype;
196 write_archive_fn_t write_func; 197 write_archive_fn_t write_func;
197 int bit; 198 int bit;
198}; 199};
199 200
200extern const char *cgit_version; 201extern const char *cgit_version;
201 202
202extern struct cgit_repolist cgit_repolist; 203extern struct cgit_repolist cgit_repolist;
203extern struct cgit_context ctx; 204extern struct cgit_context ctx;
204extern const struct cgit_snapshot_format cgit_snapshot_formats[]; 205extern const struct cgit_snapshot_format cgit_snapshot_formats[];
205 206
206extern struct cgit_repo *cgit_add_repo(const char *url); 207extern struct cgit_repo *cgit_add_repo(const char *url);
207extern struct cgit_repo *cgit_get_repoinfo(const char *url); 208extern struct cgit_repo *cgit_get_repoinfo(const char *url);
208extern void cgit_repo_config_cb(const char *name, const char *value); 209extern void cgit_repo_config_cb(const char *name, const char *value);
209 210
210extern int chk_zero(int result, char *msg); 211extern int chk_zero(int result, char *msg);
211extern int chk_positive(int result, char *msg); 212extern int chk_positive(int result, char *msg);
212extern int chk_non_negative(int result, char *msg); 213extern int chk_non_negative(int result, char *msg);
213 214
214extern char *trim_end(const char *str, char c); 215extern char *trim_end(const char *str, char c);