/[mod_virgule]/trunk/ChangeLog
ViewVC logotype

Contents of /trunk/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 144 - (show annotations)
Sat Sep 27 19:24:47 2008 UTC (22 months ago) by rsr
File size: 101426 byte(s)
added experimental YouTube tag
1 2008-09-27 R. Steven Rainwater <steve@ncc.com>
2
3 * site.c: Removed deprecated AdInfo struct
4
5 * site.c (site_render): Added experimental YouTube link. Place a
6 YouTube video ID inside like so: <youtube>d9gjy1OsTGQ</youtube>
7
8 * util.c (virgule_youtube_link): Genrates the YouTube link code
9 from the supplied video ID.
10
11 * style.c (virgule_render_header): Cleaned up some cruft
12
13 * INSTALL: Complete rewrite of the INSTALL file based on user feedback
14
15 2008-08-15 R. Steven Rainwater <steve@ncc.com>
16
17 * acct_maint.c (acct_person_diary_rss_serve): Fixed typo in RSS
18 version number (removed extra trailing dot).
19
20
21 2008-08-04 R. Steven Rainwater <steve@ncc.com>
22
23 * article.c (article_render_from_xml): replaced table-based article
24 header HTML with cleaner div markup.
25
26
27 2008-06-27 R. Steven Rainwater <steve@ncc.com>
28
29 * mod_virgule (set_virgule_db): db arg is now a const
30
31 * mod_virgule (read_site_config): fixed cases where a certain
32 config.xml setup could result in a strlen(NULL).
33
34 * Makefile: Cleaned up a and added comments about Apache ARP 1.x
35
36 * acct_maint.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
37 * diary.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
38 * db_ops.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
39 * db_xml.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
40 * tmetric.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
41 * schema.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
42 * site.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
43 * util.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
44
45
46 2008-01-23 R. Steven Rainwater <steve@ncc.com>
47
48 * diary.c (virgule_diary_entry_render): Added call to
49 virgule_nice_htext before rendering diary. This is a kluge to get
50 around the increasingly nasty HTML syndicated from external blogs.
51 This should be replaced with proper HTML filtering and repair in the
52 aggregator storage module (it will also be necessary to retroactively
53 repair stored blogs before removing this code).
54
55
56 2008-01-09 Mauro Persano <mauro_persano@yahoo.com>
57
58 * mod_virgule.c (read_allowed_tag): Added this function to parse
59 allowed tag structures in the config.xml file.
60
61 * mod_virgule.c (read_site_config): Modified to handle tag attribute
62 data from config.xml.
63
64 * util.c (virgule_add_allowed_tag): Modified to handle tag attribute
65 data from config.xml.
66
67 * util.c (nice_tag): Added this function to filter out disallowed
68 tag attributes in HTML.
69
70 * util.c (nice_htext): Added call to nice_tag()
71
72
73 2007-12-15 R. Steven Rainwater <steve@ncc.com>
74
75 * db.c (virgule_db_lock_key, virgule_db_lock_upgrade,
76 virgule_db_lock_downgrade, virgule_db_lock, virgule_db_unlock):
77 Removed all the existing lock functions and all references to them
78 throughout mod_virgule. Instead of locking the entire database,
79 these calls are replaced with Apache APR file locking calls to
80 lock only the specific DB Key (file) being read or written. This
81 makes mod_virgule much more responsive and a bit more scalable.
82
83 * db.c (virgule_db_del): Replaced unlink() with apr_file_remove().
84 Replaced rmdir() with apr_dir_remove().
85
86 * db.c (virgule_db_put_p): Added exclusive apr_lock_file() call.
87
88 * db.c (virgule_db_get_p): Added shared apr_lock_file() call.
89
90
91 2007-12-05 R. Steven Rainwater <steve@ncc.com>
92
93 * diary.c (virgule_diary_rss_export): The guid of syndicated diary
94 entries, when available, is preserved in Advogato's outbound diary
95 RSS feed. This should help downstream aggregators identify duplicate
96 posts more easily. Thanks to Paul Wise for noticing this.
97
98
99 2007-11-07 R. Steven Rainwater <steve@ncc.com>
100
101 * private.h: Added pointer to a Google Analytics string
102
103 * mod_virgule.c (read_site_config, info_page): Added support for a
104 Google Analytics code in the config.xml file
105
106 * style.c (virgule_render_footer_send): Added support for Google
107 Analytics. If a GA ID is found, the analytics tracking code is
108 inserted prior to the HTML body close tag.
109
110 * acct_maint.c (virgule_acct_update_art_index): Reduced memory
111 leakage substantially.
112
113
114 2007-11-04 Joe Presbrey <presbrey@mit.edu>
115
116 * acct_maint.c (prof_fields): Added field in profile for a FOAF URI
117
118 * foaf.c (virgule_foaf_person): Added xmlns:owl namespace to FOAF.
119 An owl:sameAs tag is now added for the FOAF URI, if present.
120
121
122 2007-11-02 R. Steven Rainwater <steve@ncc.com>
123
124 * config.xml: Fixed XML well-formedness error. Thanks to presbrey
125 for spotting this and the template issues.
126
127 * sample_db: Added several missing generic default templates needed
128 for a new install.
129
130
131 2007-10-22 R. Steven Rainwater <steve@ncc.com>
132
133 * foaf.c (virgule_foaf_person): Added export of the computed trust
134 level for each user with reference to a local RDF schema of Advogato
135 trust levels. This mechanism was suggested by Sean B. Palmer and
136 Dan Connolly on the W3C #swig IRC channel.
137
138
139 2007-08-31 R. Steven Rainwater <steve@ncc.com>
140
141 * foaf.c (virgule_foaf_person): The mbox_sha1sum field is not
142 included if the user profile has no email address. Thanks to
143 Andreas Harth of deri.org for reporting the bug.
144
145 * site.c (virgule_site_render_person_link): A rel="nofollow" is
146 added to any person link if the user is not trusted. This should
147 help minimize the value of untrusted accounts created by spammers.
148 Suggested by ncm.
149
150 * acct_maint.c (virgule_acct_person_index_serve): The user's cert
151 level is evaluated and rel="nofollow" added for untrusted users.
152
153 * site.c (site_render_recent_acct): The user's cert level is now
154 passed to virgule_site_render_person_link().
155
156 * diary.c (virgule_diary_entry_render): The user's cert level is now
157 passed to virgule_site_render_person_link().
158
159 * certs.c (virgule_render_cert_level_begin): The CertLevel value is
160 now returned. This prevents the need to do multiple trust metric
161 lookups in some cases.
162
163
164 2007-08-26 R. Steven Rainwater <steve@ncc.com>
165
166 * mod_virgule (info_page): Fixed pointer dereferencing bug.
167
168 * rating.c (rating_clean): Added a maintenance function that
169 analyzes the eigen vector cache and removes local cache files of
170 users that have been deleted. Ratings of nonexistant users found
171 in good cache files are also removed.
172
173
174 2007-08-14 R. Steven Rainwater <steve@ncc.com>
175
176 * acct_maintc. (acct_person_diary_static_serve): Handles a static
177 diary URL by rendering a single diary entry in fancy recentlog mode
178 with the addition of two links to additional diary entries for the
179 user.
180
181 * acct_maint.c (acct_person_serve): Added handlers for static diary
182 URLs.
183
184
185 * diary.c (virgule_diary_entry_render): Change diary entry permalinks
186 to static URLs. This may improve search engine rankings for diary
187 entries and will come in handy someday when we add comments to diaries.
188
189
190 2007-08-01 R. Steven Rainwater <steve@ncc.com>
191
192 * util.c (virgule_render_url): URL is now escaped with ap_escape_html()
193 rather than ap_os_escape_path(), which was freaking out on URLs that
194 contained a ? character. This should have been done as part of the
195 migration from the Apache APR 1.3 -> 2.0 API. Props to redi for
196 spotting this bug.
197
198
199 2007-07-29 R. Steven Rainwater <steve@ncc.com>
200
201 * acct_maint.c (acct_person_serve): Account profiles now include a
202 list of the 10 most recent articles posted by the user and link to
203 a full listing of articles.
204
205 * acct_maint.c (virgule_acct_update_art_index): Added this function
206 to create and maintain an XML index in the user account directory of
207 every article the user has posted.
208
209 * acct_maint.c (acct_person_articles_serve): Renders a full list of
210 all articles posted by the specified user.
211
212 * acct_maint.c (acct_kill): The articles.xml file is removed with a
213 user account is deleted.
214
215 * article.c (article_maint): Added this function to sequentially
216 process all articles and update user profiles with a correct index
217 of articles each user has posted.
218
219 * article.c (virgule_article_serve): Added URL for the new article
220 maintenance function.
221
222
223 2007-07-22 R. Steven Rainwater <steve@ncc.com>
224
225 * acct_maint.c (acct_person_serve): Inbound and outbound trust certs
226 less than 30 days old are marked as "new" in the user profile.
227
228
229 2007-07-19 R. Steven Rainwater <steve@ncc.com>
230
231 * foaf.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
232 * proj.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
233 * rss_export.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
234 * xmlrpc.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
235
236
237 2007-07-16 R. Steven Rainwater <steve@ncc.com>
238
239 * proj.c (proj_proj_serve):
240 * article.c (article_render_from_xml):
241 * acct_maint.c (acct_person_server): Apostrophe is now escaped in the
242 HTML calling the social bookmarking Javascript function. Thanks to
243 LKCL for spotting the error.
244
245
246 2007-07-09 R. Steven Rainwater <steve@ncc.com>
247
248 * aggregator.c (aggregator_post_feed): Check for existing GUID before
249 doing an update in case the feed has retro-actively altered the item's
250 post time stamp. This should prevent item dupes on feeds that mess
251 with the time stamps in bad ways, provided the GUID remains valid.
252
253 * article.c (article_render_from_xml): Replaced hardcoded social
254 bookmark links with standard share icon and call to external
255 javascript social bookmarking widget.
256
257 * acct_maint.c (acct_person_serve): Added social bookmark link to
258 profile page. Replaced "this person" to the actual user name in the
259 profile certification banner.
260
261 * proj.c (proj_proj_serve): Added social bookmark link to project
262 page. Tweak HTML slightly to improve look.
263
264
265 2007-07-06 R. Steven Rainwater <steve@ncc.com>
266
267 * acct_maint.c (acct_logout_serve): The no_cache and no_local_copy
268 flags are now set in the Apache request_rec structure to prevent
269 browsers from caching old logout results. This bug was preventing a
270 few users from successfully logging out of Advogato. Props to
271 Paul Wise (pabs3) for bringing the problem to my attention.
272
273
274 2007-06-13 R. Steven Rainwater <steve@ncc.com>
275
276 * v.js (clrField): Started a mod_virgule Javascript library.
277 The clrField() function allows helpful comments to be placed in
278 form fields that will vanish when the user focuses the field.
279
280 * style.c (virgule_render_header): Now includes the new Javascript
281 library in each page header. Removed the hardcoded frame-buster
282 Javascript from the page headers and put it in the v.js file,
283 allowing it to be cached across page views. This reduces the page
284 size slightly.
285
286 * util.c (virgule_strip_a): Fixed a bug that allowed spammers to
287 circumvent having anchor tags stripped from their notes field
288 by intentionally entering malformed markup.
289
290 * acct_maint.c (acct_index_serve): Cleaned up the account action
291 list.
292
293
294 2007-06-08 R. Steven Rainwater <steve@ncc.com>
295
296 * db_ops.c (db_relation_put_field): Fixed a bug that prevented staff
297 relations from being removed when set to a relation type of None.
298 Props to Gary Benson for noticing the problem.
299
300 * proj.c (virgule_proj_set_relation): Fixed bug that prevented
301 db_relation_put_field() from being called on certain staff
302 relationship changes.
303
304
305 2007-05-16 R. Steven Rainwater <steve@ncc.com>
306
307 * util.c (virgule_force_legal_css_name): Added function to force an
308 arbitrary string into compliance with the CSS1 spec for use as a CSS
309 class name. This will allow usernames to be inserted into class
310 statements as additional identifiers. Some third party blog handling
311 utilities rely on this arrangement to improve dupe handling.
312
313 * diary.c (virgule_diary_entry_render): Wrapped each entry in a div
314 and assigned two classes, one for site design and one that's a
315 CSS'ified version of the user name for screen-scraping aggregator
316 use. Also switched the diary entry body to a div from a blockquote
317 allowing more flexibility in site layout.
318
319
320 2007-05-15 R. Steven Rainwater <steve@ncc.com>
321
322 * private.h (virgule_private): added editors list pointer. This will
323 allow a site to optionally limit article posts to a specific set of
324 users, known as editors. Also changed article_post_by_seeds_only to
325 article_post_by_editors_only. The seed list was serving double duty
326 on robots.net as an editors list but it's now helpful to separate
327 the functions.
328
329 * mod_virgule.c (read_site_config): Added code to read the list of
330 editors from the config.xml file on startup.
331
332 * mod_virgule.c (info_page): The diagnostics page now dumps the
333 list of editors, if any, and the current setting of the editor only
334 flag read from the config.xml file.
335
336 * req.c (virgule_req_ok_to_post): Now queries the editors list
337 if the article_post_by_editors_only flag is set.
338
339 * article.c (article_form_serve): The article post page now uses
340 a page-specific template instead of the default template to allow
341 for more site-specific customization such as posting guidelines.
342
343
344 2007-05-03 R. Steven Rainwater <steve@ncc.com>
345
346 * general: Moved module templates to the new template directory.
347
348 * style.c (virgule_render_header): Removed references to vr->raw
349 flag which not needed with the streamlined header code.
350
351
352 * style.c (virgule_render_footer_send): Removed reference to vr->raw,
353 removed unneeded insertion of a </div> tag, Removed unneeded call
354 to virgule_render_sitemap().
355
356 * style.c (virgule_render_sitemap): Removed references to the
357 unneeded vr->sitemap_rendered flag.
358
359 * req.h (_VirguleReq): Removed unused raw and sitemap_rendered flags
360
361 * mod_virgule.c (virgule_handler): Removed unused reference to
362 vr->sitemap_rendered flag.
363
364
365 2007-05-03 R. Steven Rainwater <steve@ncc.com>
366
367 * proj.c (proj_new_serve, proj_edit_serve): Output is now rendered
368 within the default template.
369
370 * article.c (article_render_from_xml): Reddit submissions now
371 include the article title.
372
373 * article.c (article_form_serve): Output is now rendered within
374 the default template.
375
376 * article.c (article_generic_submit_serve): Output is now rendered
377 within the default template.
378
379 * article.c (article_reply_form_serve): Output is now render
380 within the default template.
381
382 * site.c (virgule_site_render_page): Removed code related to the
383 now unneeded distinction between standard and raw page headers.
384
385 * style.c (virgule_render_header): Removed this now unused function
386 along with a large block of hard-coded, site-specific header
387 markup for robots.net and Advogato. It's all in the templates now.
388
389 * style.c (virgule_render_header_raw): Renamed this function to
390 virgule_render_header().
391
392
393 2007-04-30 R. Steven Rainwater <steve@ncc.com>
394
395 * acct_maint.c (account_index_serve): Account info page and account
396 login page are now template based. 100% of the login page markup is
397 now configurable in the template.
398
399 * diary.c (diary_index_serve, diary_preview_serve): Output is now
400 rendered within a template.
401
402 * diary.c (diary_edit_serve): Output is now rendered in a template.
403 Fixed several bugs dating back to the first diary editing patch, one
404 of which could potentially have been the cause of Apache segfaults.
405
406
407 2007-04-29 R. Steven Rainwater <steve@ncc.com>
408
409 * site.c (site_render): Template tag replacement strings with NULL
410 values are now allowed.
411
412 * style.c (virgule_render_in_template): Templates are now rendered
413 even when no content is provided for them.
414
415
416 2007-04-25 R. Steven Rainwater <steve@ncc.com>
417
418 * aggregator.c (aggregator_post_feed): Items with no content are
419 skipped rather than creating empty diary posts.
420
421 * style.c (virgule_send_error_page): Error pages are now rendered
422 using the default.xml template. All hardcoded markup has been removed.
423 An additional argument was added to allow reuse of this function for
424 informational messages as well as error messages. Replaced old-style
425 <tt> tags with <em> tags. The old-style look can be duplicated in CSS
426 if desired.
427
428 * style.c (virgule_render_header_raw): Now produces legal HTML even
429 if title is NULL.
430
431 * site.c (virgule_site_render_page): Improved handling of the page
432 title to allow for static title text in the template, title text
433 provided by mod_virgule, and combinations of the two if desired.
434
435 * tmetric.c (tmetric_index_serve): Replaced hardcoded output page
436 with an info page generated by virgule_send_error_page().
437
438 * rating.c (rating_crank, rating_crank_all): Replaced hardcoded
439 output pages with info pages genrated by virgule_send_error_page().
440
441 * rating.c (rating_report): Replaced hardcoded output with a
442 template based output page. The default.xml template is used.
443
444 * aggregtator.c (aggregator_getfeeds_serve): Replaced hardcoded
445 output with a template based page. Default.xml template is used.
446
447
448 2007-04-17 R. Steven Rainwater <steve@ncc.com>
449
450 * aggregator.c (aggregator_index_atom_10): Fixed handling of ATOM
451 feed in which the entry containers have a <summary> tag but no
452 <content> tag. Also supported now are ATOM feeds which include
453 only an <updated> tag and not a <published> tag.
454
455
456 2007-04-09 R. Steven Rainwater <steve@ncc.com>
457
458 * MAKEFILE: Changed -fPIC to -fpic. This may have been the cause of
459 a couple of segfaults, due to a conflict with the flag used to compile
460 Apache and/or libxml2 on some distros. The -fpic flag should be
461 correct on 99% of the platforms likely to be running mod_virgule.
462
463 * acct_maint.c (virgule_acct_touch): Added missing db lock calls.
464
465 * rss_export.c (rss_index_serve, rss_render_from_xml): Changed a few
466 xmlNewChild calls to xmlNewTextChild to assure proper entity escapes.
467
468 * site.c (virgule_site_send_banner_ad, virgule_site_render_banner_ad):
469 Removed these functions. They have been rendered unnecessary by the
470 newer general purpose include tag which allows external banner ad
471 management tools to be used.
472
473 * mod_virgule (virgule_handler): Fixed minor aliasing bug. Removed
474 call to virgule_site_send_banner_ad.
475
476
477 2007-04-07 R. Steven Rainwater <steve@ncc.com>
478
479 * req.h: Added a temporary buffer for pre-rendering template data.
480 Also added a header buffer which allows additional page header
481 contents to be inserted easily. The old header buffer kluge that
482 passed strings through virgule_render_header() has been removed.
483
484 * mod_virgule (virgule_handler): Set the new buffer pointers
485 to NULL when initializing a request structure.
486
487 * style.c (virgule_set_temp_buffer, virgule_set_main_buffer): Added
488 functions to switch between the request buffer and the temp buffer
489 more easily. A temporary buffer is used when building pages that
490 will be rendered within a preloaded template. The main buffer is
491 used to render pages directly.
492
493 * style.c (virgule_render_in_template): Added a new function to handle
494 rendering an arbitrary page from a template. This collects some
495 duplicate code that was being used in several places and should
496 make things a little easier to maintain going forward.
497
498 * style.c (virgule_render_header_raw): If the header buffer is not
499 empty, its contents are inserted into the page header at this time.
500
501 * style.c (virgule_send_error_page): A page not found error string
502 is automatically added if the error code has been set to 404. This
503 eliminates the need for lots of duplicated static strings.
504
505 * acct_maint.c (acct_person_diary_serve): Replaced existing code
506 with the new template rendering functions.
507
508 * article.c (article_num_serve): Replaced existing code with the
509 new template rendering functions.
510
511 * buffer.c (virgule_buffer_size): Added function to return the
512 current size of a buffer.
513
514
515 2007-04-05 R. Steven Rainwater <steve@ncc.com>
516
517 * acct_maint.c (acct_person_diary_rss_serve): Added memory allocation
518 check on XML document dump process to prevent segfaults.
519
520 * acct_maint.c (acct_flag_as_spam): Removed early free since the
521 normal pool cleanup occurs immediately afterwards anyway.
522
523 * rss_export.c (rss_index_serve): Added an additional error check
524 to the xml rendering process to prevent allocation error segfaults.
525
526 * db_xml.c (db_xml_free): Additional sanity check before optional
527 xmlFreeDoc calls that occur outside of normal APR pool life cycle.
528 Also removed an unused parameter from the function call throughout
529 the mod_virgule code.
530
531 * foaf.c (virgule_foaf_person): Handles accounts with no givenname
532 or surname in a safer fashion.
533
534 * tmetric.c (tmetric_run): Removed unneeded check for NULL value
535 before call to db_xml_free().
536
537
538 2007-03-30 R. Steven Rainwater <steve@ncc.com>
539
540 * article.c (article_render_from_xml): Added some initial social
541 bookmarking support for Digg, del.icio.us, and Reddit.
542
543 * sample_db: Added PNG images for Digg, del.icio.us, and Reddit.
544
545
546 2007-03-21 R. Steven Rainwater <steve@ncc.com>
547
548 * mod_virgule.c (info_page): Added a lot of additional diagnostic
549 info from the Apache thread private record structure. Also moved all
550 the diagnostic info into a nicely formatted table that's a lot easier
551 to read.
552
553
554 2007-03-19 R. Steven Rainwater <steve@ncc.com>
555
556 * acct_maint.c (acct_person_diary_serve): Blog pages are now rendered
557 from a template (/site/person/diary.xml) instead of hard-coded HTML.
558 A sample diary.xml template was also added to the sample XML DB.
559
560
561 2007-03-15 R. Steven Rainwater <steve@ncc.com>
562
563 * diary.c (virgule_diary_[store|update]_feed_item): These functions
564 are now able to deal with feed formats that carry the blog content
565 as unescaped XML trees. At least one Blogger ATOM feed uses this
566 method.
567
568 * util.c (virgule_sha1): Return an SHA-1 hash as a string. Accepts
569 input strings of arbitrary length. Based on the Apache APR SHA-1
570 implementation.
571
572 * mod_virgule.c (info_page): Added admin email and FOAF SHA-1 test.
573
574 * foaf.c (virgule_foaf_person): Added support for foaf:mbox_sha1sum
575 field (an SHA-1 hash string of the user's email address).
576
577 2007-03-08 R. Steven Rainwater <steve@ncc.com>
578
579 * acct_maint.c (acct_newsub_serve): The password field is now a
580 required field on new accounts. The password is no longer allowed to
581 be the same as the username. The email field is now required. Also
582 removed some old debugging cruft from this function.
583
584
585 2007-03-07 R. Steven Rainwater <steve@ncc.com>
586
587 * acct_maint.c (acct_person_serve): Account profile "extra junk"
588 error was replaced with a conventional 404 error.
589
590 Requests for invalid account names now return a 404 error as well.
591
592 FOAF autodiscovery header and FOAF image link now show only for
593 trusted users.
594
595 RSS autodiscovery header and RSS link now show only for trusted users
596 who have at least one blog post.
597
598 * acct_maint.c (acct_person_foaf_serve): FOAF files are served only
599 for trusted users. FOAF requests for untrusted users now generate a
600 404 error.
601
602 * acct_maint.c (acct_person_diary_rss_serve): RSS feeds are now
603 served only for trusted users with at least one blog post. RSS
604 requests for untrusted users or trusted users who have no blog
605 posts now generate a 404 error.
606
607 * diary.c (virgule_diary_exists): Added this function to test if
608 there are any posts in a diary.
609
610
611 2007-03-05 R. Steven Rainwater <steve@ncc.com>
612
613 * article.c (article_submit_serve): Duplicate article rejection no
614 longer triggers on article edits of the most recently posted article.
615
616 * article.c (article_render_from_xml): Now displays the article
617 update timestamp for edited articles.
618
619
620 2007-02-24 R. Steven Rainwater <steve@ncc.com>
621
622 * mod_virgule.c (read_site_config): Added support for articledays2edit
623 config value. This will determine the number number of days after
624 posting that an article remains editable by the author.
625
626 * article.c (article_render_from_xml): Added edit link to article
627 subtitle if viewed by the author within edit period.
628
629
630 2007-02-23 R. Steven Rainwater <steve@ncc.com>
631
632 * article.c (virgule_article_serve): Added handler for edit function.
633
634 * article.c (article_edit_serve): Loads an existing article into the
635 editor. Only works for the original author and within a configurable
636 time period.
637
638 * article.c (article_generic_submit_serve): Added kludge to support
639 editing of existing articles, preservation of original article date,
640 and original article key value. This code is pretty nasty but no
641 worse than the rest of kludges piled on top of each other in here.
642 Functions like this one will be the first against the wall when the
643 revolution comes.
644
645
646 2007-02-21 R. Steven Rainwater <steve@ncc.com>
647
648 * acct_maint.c (acct_person_serve): Toned down the certification
649 form description a bit.
650
651
652 2007-02-17 R. Steven Rainwater <steve@ncc.com>
653
654 * site.c (site_render): Added userstats tag support.
655
656 * style.c (virgule_render_userstats): Added function to render the
657 new userstats.xml data as a simple table.
658
659
660 2007-02-16 R. Steven Rainwater <steve@ncc.com>
661
662 * certs.c (virgule_cert_verify_outbound): Added this function to
663 verify and repair outbound certs when called by acct_maint().
664 Checks are performed for a variety of cert errors that are known to
665 have occured on mod_virgule sites due to file corrupt. Corruption
666 that cannot be repaired is reported through a return value for
667 manual attention.
668
669 * certs.c (virgule_cert_verify_inbound): Added this function to
670 verify and repair inbound certs when called by acct_maint().
671
672
673 2007-02-12 R. Steven Rainwater <steve@ncc.com>
674
675 * acct_maint.c (acct_kill): Feedlist is only rewritten if a record
676 was removed for the deleted account. Blog feed buffer (feed.xml) is
677 removed during the account deletion process.
678
679 * acct_maint.c (acct_maint): Added new function to sequentially
680 check all user profiles for abnormalities. Unrecoverable problems
681 are reported for manual repair. Recoverable problems like asymmetric
682 certification are fixed automatically.
683
684
685 2007-02-09 R. Steven Rainwater <steve@ncc.com>
686
687 * style.c (virgule_render_header_raw): Removed the ancient CSS hack
688 used to for pre Netscape 4 browsers. The number of additional hits
689 generated by the hack is no longer worth it for backwards
690 compatibility with a browser that's not used anymore.
691
692
693 2007-02-08 R. Steven Rainwater <steve@ncc.com>
694
695 * style.c (virgule_render_date): Added seconds to the timestamp
696 rendering style used for RSS pubDate field. Props to
697 Wade Berrier <wberrier@novell.com> for noticing this bug.
698
699
700 2007-02-07 R. Steven Rainwater <steve@ncc.com>
701
702 * mod_virgule.c: Removed some cruft and several test functions that
703 have gone unused for years.
704
705 * mod_virgule.c (info_page): Removed reference to count(), a test
706 function which is no longer used. Cleaned up and correct HTML. Added
707 additional diagnostics output.
708
709
710 2007-02-04 R. Steven Rainwater <steve@ncc.com>
711
712 * site.c (site_render_recent_proj): Removed unneeded class from
713 recent project div wrappers. Assigning the class in the style sheet
714 is more flexible and results in smaller HTML.
715
716
717 2007-02-03 R. Steven Rainwater <steve@ncc.com>
718
719 * foaf.c (virgule_foaf_person): Changed foaf:seeAlso to the
720 correct rdfs:seeAlso. Oops. (thanks to Morten Frederiksen for
721 pointing out the bug).
722
723
724 2007-02-02 R. Steven Rainwater <steve@ncc.com>
725
726 * foaf.c (virgule_foaf_person): More FOAF changes (thanks go to
727 Richard Cyganiak, Benjamin Nowack, Andreas Harth and Danny Ayers).
728 Output should now work better with RDF applications like Tabulator
729 and Disco. Projects are now converted to document references
730 instead of foaf:Project records, which should be more consistent
731 with the latest interpretations of the FOAF 0.1 spec.
732
733 * acct_maint.c (acct_person_serve): Normalized and corrected the
734 HTML used to describe a user's projects on the profile page. Added
735 a FOAF badge and link.
736
737
738 2007-02-01 R. Steven Rainwater <steve@ncc.com>
739
740 * foaf.c (virgule_foaf_person): Refactored the code a bit to move all
741 the FOAF-specific code into its own file. This should make things
742 easier down the line if we add FOAF files for the projects. Added a
743 number of additional new properties to the FOAF output and made some
744 minor corrections to the syntax based on feedback from the foaf-dev
745 mailing list.
746
747 * acct_maint.c (acct_person_foaf_serve): This now just a wrapper for
748 for virgule_foaf_person that render the returned XML document.
749
750
751 2007-01-30 R. Steven Rainwater <steve@ncc.com>
752
753 * acct_maint.c (acct_person_foaf_serve): Added foaf:knows properties
754 for each outbound cert in a user's profile. Added foaf:Project
755 properties for each project associated with the user.
756
757
758 2007-01-29 R. Steven Rainwater <steve@ncc.com>
759
760 * rating.c (virgule_rating_serve): Changed the diary (blog) ranking
761 crank URL from /rating/crank.html to /admin/crank-diaryrating.html
762 to move it to a password protectable area where it can't be abused.
763
764 * aggregator.c (virgule_aggregator_serve): Changed aggregator crank
765 URL from /aggregator/getfeeds.html to /admin/crank-aggregator.html
766 to move it to a password protectable area where it can't be abused.
767
768
769 2007-01-28 R. Steven Rainwater <steve@ncc.com>
770
771 * acct_maint.c (acct_person_serve): Added FOAF auto-discovery URL
772 to the account profile page head section.
773
774 * acct_maint.c (acct_person_foaf_serve): Added name, nick, homepage,
775 and weblog tags to FOAF file.
776
777 * mod_virgule (info_page): renamed from test_page() and changed the
778 URL to /admin/info.html from /foo.html. This will allow the URL to be
779 added to a general password protected admin area of the site. The
780 info page exposes diagnostsic information that would be helpful to
781 script kiddies and crackers.
782
783 * mod_virgule (virgule_handler): Reordered dispatching sequence to
784 put administration and less used handlers last. Highly used handlers
785 such as RSS, articles, and diaries are now first. This should provide
786 a (very) small performance improvement.
787
788 * tmetric.c (virgule_tmetric_serve): Changed the trust metric crank
789 URL from /tmetric/ to /admin/crank-tmetric.html to move it to a
790 password protectable area where it can't be abused.
791
792
793 2007-01-27 R. Steven Rainwater <steve@ncc.com>
794
795 * acct_maint.c (acct_person_serve): Added FOAF URL support.
796 Deprecated diary.xml (virgule_diary_export) URL support.
797
798 * acct_maint.c (acct_person_foaf_serve): Generates a FOAF RDF file
799 from a user profile.
800
801 * certs.c (virgule_cert_set): Certifications now include a date and
802 time stamp. These will be used in the near future.
803
804 * diary.c (virgule_diary_export): Deprecated this function. It was
805 superceded by the xml-rpc interface a long time ago, it generates
806 invalid XML, it acts an effective denial of service attack vector,
807 and is almost unused anyway.
808
809
810 2007-01-19 R. Steven Rainwater <steve@ncc.com>
811
812 * acct_maint.c (acct_person_serve): Removed hard-coded RSS icons and
813 related HTML. Replaced with div that can be configured in CSS.
814
815
816 2007-01-17 R. Steven Rainwater <steve@ncc.com>
817
818 * rss_export.c (rss_render_from_xml): Added RSS 2.0 required tags,
819 removed RSS 0.91 DTD reference, added several options tags such as
820 guid and generator.
821
822 * rss_export.c (rss_index_serve): Minor tweaks to generate RSS 2.0
823 feeds.
824
825 * acct_maint.c (acct_person_diary_rss_serve): Changed RSS version
826 in XML header to 2.0.
827
828 * diary.c (virgule_diary_rss_export): Converted hard-coded time zone
829 to use GMT instead. Added required RSS 2.0 tags and several optional
830 one include guid and geneator. Title is now export correct if it is
831 present in the diary entry. If a title is not available, the date is
832 used as the title. If neither title nor date is available, the channel
833 title is used for the item title.
834
835
836 2007-01-14 R. Steven Rainwater <steve@ncc.com>
837
838 * util.c (virgule_iso_now): Time is returned in UTC (GMT) rather than
839 server local time. By using UTC times consistently in the XML data
840 store, it simplifies time calculations and becomes easier to render
841 user-specific time zones and formats later on.
842
843 * util.c (virgule_time_t_to_iso): Time is returned as UTC (GMT) rather
844 than server local time.
845
846 * util.c (virgule_virgule_to_time_t): Virgule timestamps are now
847 assumed to always be in UTC (GMT) rather than server local time.
848
849 * diary.c (virgule_diary_latest_feed_entry): Diary timestamps are
850 now assumed to be in UTC (GMT) rather than server local time.
851
852 * style.c (virgule_render_date): Time is now rendered as UTC rather
853 than server local time zone.
854
855
856 2007-01-06 R. Steven Rainwater <steve@ncc.com>
857
858 * aggregator.c (aggregator_post_feed): When an entry with new date
859 is found, if the entry has a unique ID, a search done against the
860 existing entries for a match. If a match is found, we assume the date
861 is incorrect and perform an update on the existing entry rather than
862 adding as a new entry. This should solve the problem of duplicate
863 posts with certain RSS feeds that alter entry dates retroactively.
864
865 * diary.c (virgule_diary_entry_id_exists): Search diary entries for
866 the specified entry ID and return the entry index number.
867
868 * diary.c (virgule_diary_update_feed_item): Added entry index number
869 to parameter list. This optional value allows the entry to be
870 accessed directly without a search, if it is known.
871
872 * diary.c (virgule_diary_latest_feed_entry): Extended search for a
873 recent entry with a feedpost tag to 20 more recent entries. This
874 should handle any reasonable case of combined local and syndicated
875 usage.
876
877
878 2007-01-05 R. Steven Rainwater <steve@ncc.com>
879
880 * diary.c (virgule_diary_store_entry): Completely rewrote this code
881 to make the function safe to use on syndicated entries. All the
882 syndication tags are now preserved when an updated entry is stored
883 through the local website or through the xml-rpc interface.
884
885 * diary.c (diary_edit_serve): Added support for syndication-related
886 fields, so we can warn users to be careful editing syndicated posts.
887 Also added initial support for the title field.
888
889
890 2007-01-04 R. Steven Rainwater <steve@ncc.com>
891
892 * site.c (virgule_site_render_person_link): Removed hardcoded anchor
893 style. The external stylesheet can now be used to control appearance
894 of the person links.
895
896
897 2006-12-27 R. Steven Rainwater <steve@ncc.com>
898
899 * acct.c (acct_person_graph_serve): Added some sanity checks to the
900 graph.dot code that should prevent it from segfaulting if it hits
901 a malformed user account XML file.
902
903 * mod_virgule (test_page): Added display of vr->priv->base_uri and
904 vr->priv->base_path to test page.
905
906 * mod_virgule (virgule_handler): Fixed minor bug in config.xml
907 pathname (had extra slash - didn't seem to hurt anything).
908
909 * req.c (virgule_get_tmetric): Fixed bug that was causing trust
910 metric cache to be loaded unnecessarily.
911
912
913 2006-12-20 R. Steven Rainwater <steve@ncc.com>
914
915 * acct.c (virgule_acct_person_index_serve): Removed some hard-coded
916 HTML that should be in the person index template.
917
918 * article.c: Cleaned up some HTML formatting cruft.
919
920 * diary.c (virgule_diary_store_feed_item): The item's unique
921 identifier is now stored if it's available.
922
923 * tmetric.c (tmetric_test_serve): Removed this unused DB lock test.
924
925
926 2006-12-13 R. Steven Rainwater <steve@ncc.com>
927
928 * aggregator.c (aggregator_index_atom_10): Added support for using
929 the required atom:entry element, atom:id as a unique item identifier
930 string.
931
932 * aggregator.c (aggregator_index_rdf_site_summary_10): Added support
933 for using the required item attribute, rdf:about, as a unique item
934 identifier string.
935
936 * aggregator.c (aggregator_index_rss_20): Unlike Atom or RDF Site
937 Summary, RSS has no required unqiue identifier for items. So, we
938 first try to use the optional guid element. If that's not present, we
939 try to use the link element, which should be unique. If neither is
940 present, we make a final attempt to use the title element which
941 might be unique (but possibly not stable). RSS sucks.
942
943
944 2006-12-06 R. Steven Rainwater <steve@ncc.com>
945
946 * acct.c (acct_index_serve): Corrected minor HTML glitch on login
947 form.
948
949
950 2006-12-06 R. Steven Rainwater <steve@ncc.com>
951
952 * diary.c (virgule_diary_store_feed_item): Improved error checking
953 on entryposttime tag when storing feed item in blog.
954
955
956 2006-12-03 R. Steven Rainwater <steve@ncc.com>
957
958 * aggregator.c (aggregator_identify_feed_type): Added a check for
959 Atom version 0.3 feeds.
960
961 * aggregator.c (aggregator_normalize_feed): Added case for Atom
962 version 0.3 feeds.
963
964 * aggregator.c (aggregator_index_atom_10): Added support for the Atom
965 version 0.3 tags issued and modified, which are used in place of the
966 newer published and updated tags.
967
968 * aggregator.c (virgule_update_aggregator_list): Normalizes the feed
969 URL to include http:// in case the user forgot it.
970
971 * db.c (virgule_db_lock_downgrade): New function. Downgrades a write
972 lock to a shared read lock.
973
974 * aggregator.c (aggregator_post_feed): Made the global write lock
975 usage more granular to improve site performance while the aggregator
976 is running. The lock is now held only during the actual blog update
977 and not during the feed retrieval and parsing process.
978
979 * rating.c (rating_crank_all): The rating loop now releases the XML
980 file system lock, sleeps for 1 microsecond, and re-acquires the lock
981 on each iteration. This increases the total time taken for the
982 eigen vector update slightly but it allows normal use of the site to
983 continue during the calculation, eliminating the several minute wait
984 at the top of each hour.
985
986
987
988 2006-12-02 R. Steven Rainwater <steve@ncc.com>
989
990 * util.c (virgule_rfc822_to_time_t): Added check for the quasi-RFC822
991 date format generated by pyBlosxom blogs.
992
993
994 2006-11-30 R. Steven Rainwater <steve@ncc.com>
995
996 * aggregator.c (aggregator_post_feed): Made the handlings of updates
997 a little smarter so we don't bother trying to update an entry that
998 was posted from the same instance of the feed.
999
1000 * diary.c (virgule_diary_update_feed_item): Added check for NULL
1001 key for the target entry. When a feed is processed the first time,
1002 it's possible to find an update for an entry that we don't have yet.
1003
1004
1005 2006-11-29 R. Steven Rainwater <steve@ncc.com>
1006
1007 * aggregator.c (aggregator_post_feed): Now handles entries that have
1008 been updated by passing them to virgule_diary_update_feed_item().
1009 At present only Atom feeds seem to have support for updated entries.
1010
1011 * diary.c (virgule_diary_update_feed_item): Handles the replacement
1012 of a diary entry that has been updated or changed via a syndicated
1013 feed.
1014
1015 * diary.c (find_entry_by_feedposttime): Searches blog entries in
1016 reverse chronological order trying to find one that matches the
1017 specified feed post time.
1018
1019 * diary.c (virgule_diary_store_feed_item): Stores the update time
1020 of entries when available. At present, only Atom feeds seem to
1021 include an entry update time tag.
1022
1023 * diary.c (virgule_diary_entry_render): Diary update timestamp is
1024 added to syndication link when entry has been updated via a feed.
1025
1026 * util.c (virgule_virgule_to_time_t): Converts the timestamp string
1027 format used by mod_virgule into a proper time_t value, adjusting for
1028 the server's time zone. The older virgule_iso_to_time_t was broken.
1029 This code should replace the old code in all uses eventually.
1030
1031 * xml_util.c (virgule_xml_del_string_contents): New function that
1032 removes and frees all text and CDATA child nodes from an XML node
1033 while leaving other children untouched.
1034
1035
1036 2006-11-22 R. Steven Rainwater <steve@ncc.com>
1037
1038 * aggregator.c (aggregator_index_rss_20): Added support for <guid>
1039 tag as an alternate blog entry permalink when the <link> tag is
1040 missing.
1041
1042 * diary.c (virgule_diary_entry_render): Created a new function to
1043 render a diary entry and associated header. This combines a lot of
1044 redundant code from several functions in diary.c and site.c, making
1045 it easier to maintain. Diary/blog entries will now include the entry
1046 title if it exists. At present only syndicated entries have titles.
1047
1048 * diary.c (virgule_diary_latest_render): Removed this function. It
1049 has been entirely replaced by virgule_diary_entry_render().
1050
1051 * diary.c (virgule_diary_render): Removed duplicate diary rendering
1052 code from this function. It now relies on the new function,
1053 virgule_diary_entry_render().
1054
1055 * site.c (site_render_person_link): Added virgule_ prefix.
1056
1057 * site.c (site_render_recent_changelog): Removed duplicate diary
1058 rendering code from this function. It now relies on the new function,
1059 virgule_diary_entry_render().
1060
1061
1062 2006-11-20 R. Steven Rainwater <steve@ncc.com>
1063
1064 * aggregator.c: Added xmlChar/char casts to fix gcc 4.x warnings.
1065 * certs.c: Added xmlChar/char casts to fix gcc 4.x warnings.
1066
1067 * rss_export.c (rss_render_from_xml): pubDate is now added to RSS 0.91
1068 feed to make it easier to sort items. The description content is now
1069 properly escaped.
1070
1071
1072 2006-11-16 R. Steven Rainwater <steve@ncc.com>
1073
1074 * util.c (virgule_UTF8ToHtml): This is a local, static copy of the
1075 UTF8ToHTML function from libxml2. It has a couple of minor changes
1076 that allow it to handle ALL UTF-8 character correctly rather than
1077 only UTF-8 characters for which named entity values exist in HTML.
1078 Numeric entity values are used if a named entity is not available.
1079
1080 * util.c (virgule_nice_utf8): Now relies on our fixed version of the
1081 UTF8ToHTML code.
1082
1083 * util.c (virgule_nice_htext): Now calls virgule_nice_utf8 to make
1084 sure HTML is in the form of ASCII + entity values or numerical
1085 character values before processing. This should fix the bug with
1086 Chinese (and other) character sets not being saved and rendered
1087 correctly.
1088
1089
1090 2006-11-15 R. Steven Rainwater <steve@ncc.com>
1091
1092 * aggregator.c (aggregator_index_atom_10): Now handles missing link
1093 within items correctly.
1094
1095 * xml_util.c (virgule_xml_get_string_contents): Bug fix. Now handles
1096 CDATA sections correctly.
1097
1098 * acct.c (acct_kill): The aggregator feedlist is checked during
1099 account deletion and the user's feed is removed if it is present.
1100
1101 * aggregator.c (aggregator_index_rss_20): Now checks for the presence
1102 of a content:encoded tag and uses that in place of the description
1103 tag contents if found. Alternate formats that use dc:date in place
1104 of pubDate are also supported.
1105
1106
1107 2006-11-14 R. Steven Rainwater <steve@ncc.com>
1108
1109 * aggregator.c (aggregator_index_rdf_site_summary_10): RDF Site Summary
1110 parsing is now working. Only one variant using a combination of the
1111 Dublin Core module for dates and a draft version of the Content
1112 module for content encoding has been tested. Other variants are
1113 unlikely to work.
1114
1115
1116 2006-11-13 R. Steven Rainwater <steve@ncc.com>
1117
1118 * aggregator.c (aggregator_index_rss_20): RSS parsing is now working.
1119 Most versions should work but older versions will need the optional
1120 pubDate tag in order to be parsed correctly.
1121
1122 * acct.c (acct_newsub_serve): Increased recent account listings from
1123 50 to 100 for admin reasons. It's helpful to keep a month or so of
1124 listings since some spammers wait for while before doing anything
1125 interesting.
1126
1127 * util.c (virgule_time_t_to_iso): Converts a time_t value to an
1128 virgule-style ISO string. If no time_t value is given, the current
1129 time is rendered.
1130
1131 * util.c (virgule_rfc822_to_time_t): Converts an RFC-822 encoded
1132 time to a time_t value.
1133
1134
1135 2006-11-12 R. Steven Rainwater <steve@ncc.com>
1136
1137 * diary.c (virgule_diary_store_feed_item): Stores an item from a
1138 syndicated feed in a user's local blog. Several elements are added
1139 to the XML document that are not included when a local diary entry
1140 is made, such as the permalink to the original (remote) blog post.
1141
1142
1143 2006-11-11 R. Steven Rainwater <steve@ncc.com>
1144
1145 * aggregator.c (item_compare): A simple qsort function to compare
1146 the timestamps of blog items.
1147
1148 * mod_virgule.c (read_site_config): Added computation of the local
1149 server's time offset from UTC in seconds. We aren't using this yet
1150 but will need it in the near future.
1151
1152
1153 2006-11-10 R. Steven Rainwater <steve@ncc.com>
1154
1155 * aggregator.c (aggregator_normalize_feed): Takes whatever kind of
1156 feed you've got and returns a normalized structure with normalized
1157 timestamps, with items sorted by posting time.
1158
1159 * aggregator.c (aggregator_index_atom_10, aggregator_index_rss_20,
1160 aggregator_index_rdf_site_summary_10): Functions to normalize and
1161 index Atom, RSS, and RDF Site Summary feeds. At present we use a
1162 small subset of the tags in each, so it seems safe enough to use
1163 these for other versions of their kind (e.g. the rss_20 function
1164 should work fine on RSS 0.91 feeds, etc.)
1165
1166 * xml_util.c (virgule_xml_get_string_contents): Verifies that the
1167 passed xmlNode is non-NULL before using it. May have been the
1168 source of some segfaults.
1169
1170 * util.c (virgule_rfc3339_to_time_t): Converts an RFC-3339 encoded
1171 time to a time_t value.
1172
1173
1174 2006-11-09 R. Steven Rainwater <steve@ncc.com>
1175
1176 * diary.c (diary_edit_serve): Minor correction to error message
1177 text. Added missing quotes to attributes in HTML tags.
1178
1179 * proj.c (proj_proj_serve): Fixed bug that caused all the projects
1180 to vanish. A missing bracket on an if statement was causing all
1181 project pages to return a 404.
1182
1183 * db_ops.c (virgule_remove_recent): Fixed bug that limited removal
1184 of entries from recent files to the initial instance. Now all
1185 instances of an entry will be removed.
1186
1187
1188 2006-11-07 R. Steven Rainwater <steve@ncc.com>
1189
1190 * aggregator.c (aggregator_identify_feed_type): Attempts to identify
1191 the format of a blog feed by examining the XML file. Initially it
1192 works on most versions of Atom, RSS, and RDF Site Summary formats.
1193
1194
1195 2006-11-05 R. Steven Rainwater <steve@ncc.com>
1196
1197 * diary.c (virgule_diary_latest_feed_entry): Returns a Unix time_t
1198 value reflecting the timestamp of the most recent syndicated diary
1199 entry for the specified user.
1200
1201 * aggregator.c (aggregator_post_feed): Attempts to identify new blog
1202 posts in the user's feed buffer and appends them to the user's blog.
1203
1204
1205 2006-11-03 R. Steven Rainwater <steve@ncc.com>
1206
1207 * aggregator.c (virgule_aggregator_serve, aggregator_getfeeds_serve):
1208 When /aggregator/getfeeds.html is hit, the feedlist will be opened
1209 and each listed feed will be retrieved, buffered, and processed.
1210
1211
1212 2006-11-02 R. Steven Rainwater <steve@ncc.com>
1213
1214 * aggregator.c (virgule_update_aggregator_list): Created this function
1215 to check the specified user account and add them to or delete them
1216 from the aggregation list depending on their current account settings.
1217
1218
1219 2006-11-01 R. Steven Rainwater <steve@ncc.com>
1220
1221 * priv.h: Added a user blog syndication level that can be set from
1222 the config.xml file. This level will determine what certification
1223 is needed for a user to access the blog syndication feature.
1224
1225 * mod_virgule.c (read_site_config): Now reads the blogsyndicate
1226 feature access level.
1227
1228 * req.c (virgule_ok_to_syndicate_blog): New function that returns
1229 TRUE if the specified user is certified at a level high enough to
1230 use the blog syndication features. Result is based on the current
1231 setting specified in the config.xml file.
1232
1233 * acct_maint.c (account_index_serve, account_update_serve): Users
1234 can now edit and save blog aggregation info to profile.xml. Syndicate
1235 status is forced to OFF for users who are not certified at a level
1236 allowed to use syndication.
1237
1238
1239 2006-10-31 R. Steven Rainwater <steve@ncc.com>
1240
1241 * priv.h: Added pointer to tmetric data in the Apache thread private
1242 pool. This will allow us to load tmetric data only when it changes
1243 and preserve it between hits, instead of loading on each hit.
1244 A pointer to a memory sub pool and a time stamp for the tmetric
1245 cache was also added.
1246
1247 * mod_virgule.c (read_site_config): Make sure the thread private
1248 tmetric pointer is set to NULL when the Apache process initializes.
1249 The tmetric cache sub pool is destroyed prior to destruction of the
1250 main thread private pool when a config file reload occurs.
1251
1252 * req.c (virgule_req_get_tmetric): A stat is done on the tmetric
1253 cache and it's only reloaded if it has been updated since the last
1254 load. Otherwise, a pointer to the copy already loaded in the thread
1255 private memory pool is return. If a tmetric reload occurs, the
1256 tmetric sub pool is destroyed and a new sub pool allocated. This
1257 should prevent memory leaks on reload.
1258
1259 * tmetric.c (virgule_tmetric_get): The trust metric cache is now
1260 loaded using memory allocated from the tmetric sub pool.
1261
1262 * proj.c (proj_proj_serve): The "Project not found" page now returns
1263 a 404 instead of a 200. This should discourage repeated visits from
1264 search engines to dead project pages.
1265
1266 * util.c (virgule_nice_utf8): Added xmlChar casts to eliminate gcc 4.x
1267 warning. Replaced strlen with xmlStrlen.
1268
1269 * xml_util.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
1270
1271 * acct_maint.c (acct_person_serve): Added a "member since" field to
1272 the user profile page.
1273
1274
1275 2006-10-25 R. Steven Rainwater <steve@ncc.com>
1276
1277 * auth.c (virgule_auth_user_with_cookie): Added xmlChar/char casts
1278 to eliminate gcc 4.x warnings.
1279
1280 * article.c (article_generic_submit_serve): Added xmlChar/char casts
1281 to eliminate gcc 4.x warnings.
1282
1283
1284 2006-10-22 R. Steven Rainwater <steve@ncc.com>
1285
1286 * acct_maint.c: Fixed numerous xmlChar/char castings to fix gcc 4.x
1287 warnings. Switched a few strcmp() calls to xmlStrcmp() both to fix
1288 warnings and to make sure the string handling code is UTF-8 safe.
1289
1290
1291 2006-10-19 R. Steven Rainwater <steve@ncc.com>
1292
1293 * Makefile: Minor compatibility changes for gcc 4.x and Apache 2.2.
1294
1295 * mod_virgule (command_rec table): Updated to remove reliance on
1296 deprecated Apache 1.3 compatibility layer. Should compile cleanly
1297 with Apache 2.2 as well as 2.0 now.
1298
1299 * mod_virgule (read_site_config): Added several xmlChar casts of
1300 char to eliminate gcc 4.x warnings. Also replaced calls to strcmp
1301 with calls to xmlStrcmp.
1302
1303 * net_flow.c (virgule_net_flow_max_flow): #Ifdef'd out several
1304 debug g_print statements.
1305
1306 * eigen.c (virgule_eigen_crank): Added a few xmlChar and char
1307 casts to eliminate gcc 4.x warnings.
1308
1309 * acct_maint.c (acct_person_serve): When a "person not found" page
1310 is returned, the HTTP status code is set to 404 instead of 200. This
1311 should help search engines to stop requesting dead pages.
1312
1313 * acct_maint.c (acct_person_diary_serve): When diary entries for a
1314 non-existent person are requested, the HTTP status code is set to
1315 404 and a "person not found" error page is returned.
1316
1317 * tmetric.c (virgule_tmetric_get): Removed some debugging cruft.
1318
1319
1320 2006-10-16 R. Steven Rainwater <steve@ncc.com>
1321
1322 * acct_maint.c (acct_index_serve): Separated login and password
1323 reminder forms to improve usability.
1324
1325 * acct_maint.c (acct_person_serve): Spam reporting is now done through
1326 a form as per Scott Lamb's suggestion. Helps protect against accidental
1327 reports by automated agents following links. This also keeps us
1328 compliant with RFC 2616.
1329
1330
1331 2006-10-13 R. Steven Rainwater <steve@ncc.com>
1332
1333 * rating.c (rating_crank_all): Rewrote this function completely. It
1334 now uses the cached, pre-sorted tmetric list instead of looping
1335 through and reading every account's XML file. This shaved about 30%
1336 off the total processing time.
1337
1338
1339 2006-10-09 R. Steven Rainwater <steve@ncc.com>
1340
1341 * mod_virgule (read_site_config): Added config handler for new
1342 <accountspamthreshold> tag to set the spam score at which an
1343 untrusted observer account is automatically deleted.
1344
1345 * acct_maint.c (acct_flag_as_spam): Handles an account spam report.
1346 Writes a new spam flag to the reported account with the name of the
1347 flag issuer, and recalculates the spam score. If the score exceeds
1348 the currently configured threshold, the account is removed.
1349
1350 * acct_maint.c (virgule_acct_person_index_serve): User list paging
1351 now handles missing accounts smoothly (most likely missing because
1352 they got deleted by the new acct_kill function).
1353
1354 * eigen.c (virgule_eigen_cleanup): Remove any eigen data associated
1355 with the passed user account. Called as part of the account deletion
1356 process.
1357
1358 * db_ops.c (virgule_remove_recent): Remove items from a recent list
1359 that match a specified user account name. Called as part of the
1360 account deletion process.
1361
1362
1363 2006-10-08 R. Steven Rainwater <steve@ncc.com>
1364
1365 * acct_maint.c (acct_person_serve): Now displays the spam rating for
1366 observer accounts. A spam report link is displayed on observer
1367 accounts when viewed by trusted users.
1368
1369 * req.c (virgule_req_get_tmetric_level): Added additional sanity
1370 check to handle case where vr->u is null. This was causing a
1371 segfault when a non-trusted user performed certain (very rare)
1372 operations.
1373
1374
1375 2006-10-06 R. Steven Rainwater <steve@ncc.com>
1376
1377 * tmetric.c (tmetric_index_serve): Removed unneeded HTML dump of
1378 trust metric debug data during processing. This reduced trust
1379 metric computation time by more than 50%.
1380
1381
1382 2006-10-05 R. Steven Rainwater <steve@ncc.com>
1383
1384 * acct_maint.c (acct_index_serve): Corrected typo in UTF-8 content
1385 type specifier for account info form.
1386
1387 * acct_maint.c (acct_kill, acct_killsub_serve): Updated account
1388 removal code for live use. Account kill feature is now live and can
1389 be used by any of the users listed as special users in config.xml.
1390
1391 * article.c (article_render_from_xml): Added missing UTF-8 content
1392 type specifier in reply form.
1393
1394 * article.c (article_reply_submit_serve): Added code to (hopefully)
1395 reject duplicate replies.
1396
1397
1398 2006-10-04 R. Steven Rainwater <steve@ncc.com>
1399
1400 * util.c (virgule_user_is_special): Tests whether or not the currently
1401 logged in user, if any, is on the list of special (admin) users.
1402
1403 * article.c (article_render_from_xml): Replaced special user code
1404 with call to virgule_user_is_special().
1405
1406 * cert.c (virgule_render_cert_level_begin): Replaced special user
1407 code with all to virgule_user_is_special().
1408
1409
1410 2006-10-03 R. Steven Rainwater <steve@ncc.com>
1411
1412 * acct_maint.c (send_email): For added security the IP address
1413 requesting a password reminder is included in the reminder email.
1414
1415 * acct_maint.c (acct_person_serve): Observers now have a nofollow
1416 relation attribute added to the anchor tag for their homepage.
1417
1418 * util.c (virgule_add_nofollow): Adds nofollow relationship
1419 attributes to any anchor tags in the passed string.
1420
1421 * diary.c (virgule_diary_render, virgule_diary_latest_render):
1422 Nofollow is added to anchors in diary entries when rendered for an
1423 observer.
1424
1425
1426 2006-10-02 R. Steven Rainwater <steve@ncc.com>
1427
1428 * article.c (article_render_from_xml): Reply posting form is now
1429 concatenated to end of reply list as per Advogato style.
1430
1431 * util.c (virgule_nice_utf8): Added new function to clean up some
1432 UTF-8 to HTML entity conversions that were being missed.
1433
1434
1435 2006-10-01 R. Steven Rainwater <steve@ncc.com>
1436
1437 * mod_virgule.c (virgule_read_site_config): Added code support for
1438 <articletitlesize> tag in config.xml that can set the maximum length
1439 allowed for article titles.
1440
1441
1442 2006-09-29 R. Steven Rainwater <steve@ncc.com>
1443
1444 * proj.c: Now has even more horrible hacks scattered through it than
1445 before to render three "styles" of project pages: RAPH, NICK, and
1446 STEVE. The project style can be set in the config file, so provided
1447 you can use one of the three existing options, no code changes will be
1448 needed to customize mod_virgule for your use. RAPH style projects match
1449 the software projects of Advogato. STEVE style is identical except for
1450 one field name change that makes project more generic and matches the
1451 use on robots.net. NICK style converts the project area into a sort of
1452 makeshift discussion forum. This whole file is a disaster and needs to
1453 be re-written to use an external schema or replaced with a general
1454 purpose XML object handler.
1455
1456 * schema.c: Added virgule_ prefix to non-static functions.
1457 * site.c: Added virgule_ prefix to non-static functions.
1458 * style.c: Added virgule_ prefix to non-static functions.
1459 * tmetric.c: Added virgule_ prefix to non-static functions.
1460 * util.c: Added virgule_ prefix to non-static functions.
1461 * wiki.c: Added virgule_ prefix to non-static functions.
1462 * xml_util.c: Added virgule_ prefix to non-static functions.
1463 * xmlrpc.c: Added virgule_ prefix to non-static functions.
1464
1465
1466 2006-09-28 R. Steven Rainwater <steve@ncc.com>
1467
1468 * mod_virgule.c (virgule_read_site_config): Added code support for
1469 three settings to determine the features available at particular
1470 certification levels including <articlepost>, <articlereply>, and
1471 <projectcreate>.
1472
1473 * req.c (req_ok_to_post, req_ok_to_reply, req_ok_to_create_project):
1474 These functions now return TRUE or FALSE based on the cert levels
1475 set in the config.xml file.
1476
1477 * article.c (article_render_from_xml): Fix to account for special
1478 users in CSS setting of article headers (to match original Advogato
1479 functionality).
1480
1481 * style.c (render_sitemap): Anchor tags are supressed on the sitemap
1482 map link if the target URI matches the URI of the current page.
1483
1484 * req.c: Added virgule_ prefix to non-static functions.
1485 * rss_export.c: Added virgule_ prefix to non-static functions.
1486
1487
1488 2006-09-23 R. Steven Rainwater <steve@ncc.com>
1489
1490 * general: Replaced "weblog" with "blog". Robots.net used "weblog"
1491 and Advogato used "diary". After discussing with Raph, we decided
1492 "blog" was the most recognizable choice.
1493
1494 * hashtable.c: Added virgule_ prefix to non-static functions.
1495 * net_flow.c: Added virgule_ prefix to non-static functions.
1496 * proj.c: Added virgule_ prefix to non-static functions.
1497 * rating.c: Added virgule_ prefix to non-static functions.
1498
1499
1500 2006-09-21 R. Steven Rainwater <steve@ncc.com>
1501
1502 * mod_virgule.c (virgule_read_site_config): Added code support for
1503 <accountextendedcharset> tag in config.xml. When set to "on", this
1504 will allow new account name to use a slightly more premissive set of
1505 characters including -,_,., and spaces in their names. When set
1506 to "off" it uses the original mod_virgule/Advogato charset.
1507
1508 * acct_maint.c (virgule_validate_username): The allowed character
1509 set for new user names is determined by a config.xml setting.
1510
1511 * eigen.c: Added virgule_ prefix to non-static functions.
1512
1513
1514 2006-09-20 R. Steven Rainwater <steve@ncc.com>
1515
1516 * mod_virgule.c (set_virgule_db): Stats the provided path to verify
1517 that it exists and that it's a directory. Returns error message to
1518 Apache if path is invalid.
1519
1520 * mod_virgule.c (virgule_read_site_config): Added code support for
1521 <articletitlelinks> tag in config.xml. When set to "on", this will
1522 turn article titles into links to the article detail page. When set
1523 to "off" it uses the original mod_virgule/Advogato style of titles.
1524
1525 * article.c (article_render_from_xml): Article title link is now
1526 dependent on config.xml setting. Article header white space and
1527 width behavior is now set in CSS rather than hardcoded HTML.
1528
1529 * style.c (render_header): Isolated a nasty chunk of hardcoded
1530 HTML and created a generic version that will be used on all sites
1531 except robots.net. This is a particulary nasty hack and will be
1532 replaced by something cleaner later.
1533
1534 * diary.c: Added virgule_ prefix to non-static functions.
1535
1536 2006-09-18 R. Steven Rainwater <steve@ncc.com>
1537
1538 * db.c: Added virgule_ prefix to non-static functions.
1539 * db_obs.c: Added virgule_ prefix to non-static functions.
1540 * db_xml.c: Added virgule_ prefix to non-static functions.
1541
1542 2006-07-07 R. Steven Rainwater <steve@ncc.com>
1543
1544 * acct_maint.c: Added virgule_ prefix to non-static functions.
1545 * apache_util.c: Added virgule_ prefix to non-static functions.
1546 * article.c: Added virgule_ prefix to non-static functions.
1547 * auth.c: Added virgule_ prefix to non-static functions.
1548 * buffer.c: Added virgule_ prefix to non-static functions.
1549 * certs.c: Added virgule_ prefix to non-static functions.
1550
1551 2006-06-13 R. Steven Rainwater <steve@ncc.com>
1552
1553 * util.c (b64enc): Added static to function definition.
1554 * util.c (rand_cookie): Renamed virgule_rand_cookie.
1555 * util.c (add_topic): Renamed virgule_add_topic.
1556 * util.c (match_preifx): Renamed virgule_match_prefix.
1557 * diary.c (diary_serve): Renamed virgule_diary_serve.
1558 * mod_virgule.c (read_site_config): Renamed virgule_read_site_config.
1559 * proj.c (proj_serve): Renamed virgule_proj_serve.
1560 * rating.c (rating_serve): Renamed virgule_rating_serve.
1561 * rss_export.c (rss_serve): Renamed virgule_rss_serve.
1562
1563 2006-03-14 R. Steven Rainwater <steve@ncc.com>
1564
1565 * article.c (article_num_serve): Rewrote to use a user editable
1566 XML template populated by site_render_page() instead of a
1567 hard-coded page. All article non-form pages are now fully user
1568 configurable.
1569
1570 2006-02-23 R. Steven Rainwater <steve@ncc.com>
1571
1572 * article.c (article_num_serve): Removed some debugging cruft
1573
1574 * site.c (_RenderCtx): Added variables to hold a tag string and
1575 buffer string. This will allow site_render to populate rendered XML
1576 templates with contents rendered by other mod_virgule functions.
1577
1578 * site.c (site_render_page): Added tag and buffer string args that
1579 are passed to site_render via the ctx variable. This function can
1580 now be called directly from anywhere in mod_virgule to render a
1581 template and optionally populate it with locally rendered content.
1582
1583 2006-02-17 R. Steven Rainwater <steve@ncc.com>
1584
1585 * mod_virgule.c (register_hooks): Renamed to virgule_register_hooks
1586 to comply with Apache module definition standards.
1587
1588 * mod_virgule.c (create_virgule_dir_conf): Renamed to
1589 virgule_create_dir_config to comply with Apache module definition
1590 standards.
1591
1592 * mod_virgule.c (read_site_config): Added additional memory allocation
1593 safety checks.
1594
1595 * acct_maint.c (acct_person_serve): Added last login date to the info
1596 displayed on the account page.
1597
1598 * db_ops.c (add_recent, db_relation_put_field): Added additional null
1599 pointer checks.
1600
1601 2005-08-29 R. Steven Rainwater <steve@ncc.com>
1602
1603 * site.c (site_render, site_render_cronbox, site_render_recent_bots):
1604 Removed the cronbox and recentbot tags and associated render
1605 functions as both of these have been replaced by the more general
1606 include tag.
1607
1608 2005-08-26 R. Steven Rainwater <steve@ncc.com>
1609
1610 * mod_virgule.c (read_site_config): Added code to read a new
1611 user configurable admin email address tag, adminemail, from the
1612 site config.xml
1613
1614 * acct_maint (send_email): Replace hard-coded From: address on
1615 password reminder email with the configurable admin address.
1616
1617 * article.c (article_render_recent): Replace hard-coded story
1618 suggestion email address with the configurable admin address.
1619
1620 2005-08-25 R. Steven Rainwater <steve@ncc.com>
1621
1622 * mod_virgule.c (test_page, read_site_config): Added support for
1623 user configurable section of config.xml for article topics.
1624
1625 * private.h: Added use_article_topics variable. Added topic array
1626 header. Added topics to point to the list of Topic structs.
1627
1628 * req.h: Removed old topic array header
1629
1630 * util.c (add_topic): New function to add topics as they are
1631 read from the config file.
1632
1633 * article.c (lots-o-functions): Replaced #ifdefs and hard-coded
1634 support for topics with support for user-configurable topic setting.
1635
1636 2005-08-19 R. Steven Rainwater <steve@ncc.com>
1637
1638 * site.c (site_render, site_render_page): Implemented the
1639 head_content tag. Head contents are now passed to the
1640 render_header() function where they are inserted into the
1641 rendered HTML.
1642
1643 2005-07-27 R. Steven Rainwater <steve@ncc.com>
1644
1645 * Makefile: Added --strip-debug to linker options to keep filesize
1646 reasonable. This is done already on some distros depending on how
1647 they build Apache. Explicitly adding the option just makes sure it
1648 gets done consistently on all builds.
1649
1650 2005-07-25 R. Steven Rainwater <steve@ncc.com>
1651
1652 * certs.c (render_cert_level_begin, render_cert_level_end): Removed
1653 unneed calls to render_table_open() and render_table_close().
1654
1655 * site.c (render_footer): Removed this redundant function. The
1656 function render_footer_send now does it all.
1657
1658 * site.c (site_render): Removed unneeded calls to render_table_open()
1659 and render_table_close().
1660
1661 * style.c (render_header_raw, render_footer): Removed unneeded STYLE
1662 ifdefs and related code used to render old-style <FONT> tags.
1663
1664 * style.c (render_table_open, render_table_close): Removed these
1665 unused functions.
1666
1667 * style.c (renders_sitemap): Removed unneeded STYLE ifdefs while
1668 retaining the enclosed flag for advogato compatiblity.
1669
1670 * general: Added a sample data/intermap.txt file to the sample_db
1671 directory so that wiki tags will work on new installs.
1672
1673 2005-07-22 R. Steven Rainwater <steve@ncc.com>
1674
1675 * diary.c (diary_rss_export): Fixed segfault that occured if an
1676 RSS XML file was built from an empty diary entry.
1677
1678 2005-07-20 R. Steven Rainwater <steve@ncc.com>
1679
1680 * Makefile: Added -fno-strict-aliasing flag to get around the
1681 type-punned pointer problem in eigen.c that prevents compilation
1682 by gcc 3.4.3.
1683
1684 2005-07-10 R. Steven Rainwater <steve@ncc.com>
1685
1686 * private.h: Created an include for mod_virgule thread private data
1687 structures. Moved some elements of the VirguleReq data structure
1688 found in req.h to a virgule_private data structure in this file.
1689
1690 * (general): Modified the site configuration handling to use a thread
1691 private data pool that persists across requests. The site config.xml
1692 file is now loaded into virgule_private once for each Apache thread
1693 instead of into req once for each request. If the config.xml file is
1694 updated, it will be reloaded as needed.
1695
1696 * mod_virgule.c (test_page): Now displays status of the new account
1697 creation setting of the configuration. The time stamp of the config
1698 file in use is also displayed.
1699
1700 2005-07-01 R. Steven Rainwater <steve@ncc.com>
1701
1702 * (general): Diaries are known as weblogs today by just about everyone
1703 and it seems to confuse users to refer to them as anything else. So
1704 I'm updating all textual references throughout the code from "diary"
1705 to "weblog". For now, I'm leaving "diary" in the underlying code and
1706 URL references but that should probably be modernized at some point.
1707
1708 2005-06-22 R. Steven Rainwater <steve@ncc.com>
1709
1710 * acct_maint.c (acct_person_serve): Fixed a very old HTML coding
1711 error - a missing close tag on the #cert fragment identifier.
1712
1713 2005-06-16 R. Steven Rainwater <steve@ncc.com>
1714
1715 * db.c (db_get_p): A segfault was caused if db_get_p was called with
1716 a NULL key. It now handles this condition gracefully by returning a
1717 NULL result. This was causing occasional segfaults for trustmetric
1718 computations on user profiles that had damaged or incorrect names.
1719
1720 * tmetric (tmetric_run): The main loop skips files which return a
1721 NULL db_key value. This is usually caused by a damaged or incorrect
1722 profile name. Previously, the NULL key value was passed to db_get_p()
1723 resulting in a segfault.
1724
1725 2005-06-12 R. Steven Rainwater <steve@ncc.com>
1726
1727 * (general): Ported mod_virgule to the Apache 2 module API. Changes
1728 to includes and code in all *.c files were required.
1729
1730 2005-02-27 R. Steven Rainwater <steve@ncc.com>
1731
1732 * acct_maint.c (acct_person_serve): Punched up the wording below the
1733 certify form to try to cut down on incorrect or inflated certs.
1734
1735 2005-01-29 R. Steven Rainwater <steve@ncc.com>
1736
1737 * site.c (site_render): Added check for a "start" argument on pages
1738 that use <articles> tag to allow paging of an external template.
1739
1740 * articles.c (article_older_serve): Removed. No longer needed now
1741 that article_recent_render() handles paging correctly. Also, note
1742 that the site/article/index.xml and site/article/older.xml template
1743 are essentially identical now for stock mod_virgule sites. The only
1744 difference is that index.xml starts with the most recent articles
1745 by default and older.xml starts one page back. This was done because
1746 the user may wish to customize the two page to be slightly different
1747 in some cases.
1748
1749 * style.c (dayofweek): Added a function that returns the day of week
1750 so that we can do full RFC 822 dates as needed by RSS 2.0.
1751
1752 * style.c (render_date): Added a third date format for full RFC 822
1753 date strings.
1754
1755 * rss_export.c (rss_serve, rss_render, rss_render_from_xml): Added
1756 RSS 2.0 support to the existing RSS 0.91 code. The URLs are:
1757
1758 RSS 0.91 - /rss/articles.xml
1759 RSS 2.0 - /rss/articles-2.0.xml
1760
1761 2004-10-22 R. Steven Rainwater <steve@ncc.com>
1762
1763 * site.c (site_render): Added a <userlist> tag that will place a
1764 pageable list of mod_virgule users on a page. Next/previous page
1765 navigation is automatically added and there is a max-per-page value
1766 that may be set in the tag to determine how many users are listed
1767 on each page.
1768
1769 * acct_maint.c (acct_person_index_serve): Complete rewrite of this
1770 function to make it much faster, allowing incremental display and
1771 paging. Instead of completely parsing the user accounts and sorting
1772 them in memory, the userlist is now read from the pre-sorted trust
1773 metric table and only those accounts on the currently displayed
1774 page are loaded and parsed.
1775
1776 * tmetric.c (node_info_compare): Added the user cert level to the
1777 comparison. Users are now sorted first by cert level, then by name.
1778
1779 2004-10-10 R. Steven Rainwater <steve@ncc.com>
1780
1781 * db.c (db_put_p): Reverted Gary's diskspace patch yet again. This
1782 time due to what appears to be a rarely encountered race condition
1783 that results in the complete loss of the file being written. Yikes!
1784
1785 2004-09-26 R. Steven Rainwater <steve@ncc.com>
1786
1787 * db.c (db_put_p): Added check for existence of record before rename
1788 to prevent errors on posting with Gary's disk space patch. The patch
1789 should now working as intended.
1790
1791 * post.c, post.h: Remove these two files which are not referenced in
1792 the makefile and appear to be unused cruft.
1793
1794 2004-09-17 R. Steven Rainwater <steve@ncc.com>
1795
1796 * article.c (article_index_serve): Removed this unnecessary function
1797 and replaced it with a default XML file that makes the page easily
1798 configurable by the user.
1799
1800 * site.c (site_render_include): Added a function that allows the user
1801 to include one XML file within another.
1802
1803 2004-08-19 R. Steven Rainwater <steve@ncc.com>
1804
1805 * db.c (db_put_p): Reverted Gary's disk space patch due to problems
1806 with posting.
1807
1808 2004-08-19 R. Steven Rainwater <steve@ncc.com>
1809
1810 * db.c (db_put_p): Added Gary Benson's patch to allow graceful
1811 failure in case disk space is exhausted.
1812
1813 * rec.h (_VirguleRec): Added nav_options, and pointer to a list of
1814 navigation options from which the sitemap can be constructed.
1815
1816 * util.c (add_nav_option): Added a utility function to create
1817 sitemap navigation option structures.
1818
1819 * mod_virgule.c (read_site_config): Added code to read the sitemap
1820 navigation options from the XML config file.
1821
1822 * style.c (render_sitemap): Sitemap dynamically renders menu from
1823 the navigation options specified in the XML config file rather than
1824 using hardcoded values.
1825
1826 * style.c (render_site_link): Removed this function. It is no longer
1827 needed now that relative paths for the sitemap options may be
1828 specified directly in the XML config file.
1829
1830 2004-07-09 R. Steven Rainwater <steve@ncc.com>
1831
1832 * tmetric.c (tmetric_set_name): Fixed segfault that occured if
1833 tmetric_find_node() was unable to find a user name.
1834
1835 * acct_maint.c (acct_update_serve, acct_person_serve,
1836 acct_certify_serve): Added Gary Benson's page refresh patches.
1837
1838 2004-06-23 R. Steven Rainwater <steve@ncc.com>
1839
1840 * acct_maint.c (acct_index_serve): Added missing vr->prefix to the
1841 "edit your existing projects" link, pointed out by Seth Cohn.
1842
1843 2004-04-18 R. Steven Rainwater <steve@ncc.com>
1844
1845 * (general): Merged changes from latest version of Raph's mod_virgule
1846 (which is still going by v1.41) including the new account creation
1847 switch, the XML-RPC check cookie method, recentlog permalinks, article
1848 permalinks, project permalinks, and recentlog edit links.
1849
1850 * acct_maint.c (acct_index_serve, acct_newsub_serve): Added "forgot
1851 password" checkbox and instructions to login form. Added forgotten
1852 password handler to newsub_serve.
1853
1854 * acct_maint.c (send_email): Added send email function to support the
1855 "forgot password" feature. This function and the other modifications
1856 related to the forgotten password feature are based on a patch by
1857 Steve Kemp <steve@steve.org.uk>. The send_email function has a
1858 hard-coded path to sendmail and a hard-coded "from:" value that will
1859 need to be changed to match the site owners email address. The -f
1860 flag is used on sendmail, so you'll want to make apache a trusted
1861 user to avoid authentication warnings in the emails.
1862
1863
1864 2003-11-14 R. Steven Rainwater <steve@ncc.com>
1865
1866 * acct_maint.c (acct_person_index_serve): Corrupt profile.xml files
1867 should now be silently skipped rather than segfaulting Apache.
1868
1869 2003-11-02 R. Steven Rainwater <steve@ncc.com>
1870
1871 * (general): Changed encoding type from ISO-8859-1 to UTF-8 throughout
1872 code. This may eliminate some case of browsers submitting forms in
1873 the wrong encoding.
1874
1875 * tmetric.c (tmetric_run): Added error checking to prevent attempted
1876 dereferencing of a null pointer that occured when reading a corrupt
1877 profile.xml file. Corrupt files are now silently skipped instead of
1878 causing Apache to segfault.
1879
1880 2003-10-19 R. Steven Rainwater <steve@ncc.com>
1881
1882 * rss_export.c (rss_index_serve): Applied James Henstridge's patch
1883 to add missing content type to the returned document.
1884
1885 * (general): Applied James Henstridge's patch that ads a link element
1886 for auto-discovery of the diary RSS feeds. This changes the number
1887 of arguments passed to render_header_raw() and render_header() in
1888 style.c and affect all calls to those functions throughout the code.
1889
1890 * style.c (render_header_raw): Added link element for favicon. It's
1891 hardcoded to be /images/favicon.ico. Probably should make it a
1892 configuration option later on.
1893
1894 * db_xml.c (db_xml_put): Added xmlIndentTreeOutput flag to make sure
1895 libxml2 was indenting and adding newlines to output. This is another
1896 compatibility behavior and can be removed in the future if newlines
1897 are added to the xml trees.
1898
1899 2003-10-04 R. Steven Rainwater <steve@ncc.com>
1900
1901 * acct_maint.c (acct_person_diary_???_serve): Replaced
1902 xmlDocDumpMemory() with xmlDocDumpFormatMemory() to provide
1903 newlines and indenting in output. This simulates the behavior of
1904 libxml with respect to whitespace. Ideally these calls should
1905 eventually be replaced with nodes that implement the desired
1906 newlines and indentation directly.
1907
1908 * db_xml.c (db_xml_out): Replaced xmlDocDumpMemory() with
1909 xmlDocDumpFormatMemory() to provide newlines and indenting in output.
1910
1911 * rss_export.c (rss_index_serve): Replaced xmlDocDumpMemory() with
1912 xmlDocDumpFormatMemory() to provide newlines and indenting in output.
1913
1914 * xmlrpc.c (xmlrpc_create_response): Replaced xmlDocDumpMemory() with
1915 xmlDocDumpFormatMemory() to provide newlines and indenting in output.
1916
1917 2003-10-03 R. Steven Rainwater <steve@ncc.com>
1918
1919 * db.c (db_is_dir): Removed superfluous strlen() call.
1920
1921 2003-10-01 R. Steven Rainwater <steve@ncc.com>
1922
1923 * mod_virgule.c (virgule_handler): Added xmlKeepBlanksDefault(0) to
1924 force libxml2 to supress blank nodes. This allows the existing
1925 mod_virgule XML code to function properly with libxml2 until it
1926 can be updated. This can be removed once all xml code is adjusted
1927 to handle blank nodes correctly.
1928
1929 * (general): Merged changes from latest version of Raph's mod_virgule
1930 (which is still going by v1.41) including James Henstridge's diary
1931 patches and coderman's XML-RPC patches.
1932
1933 * (general): Merged Martijn van Beers <martijn@eekeek.org> libxml2
1934 patch to bring mod_virgule up to the current XML library version.
1935
1936 * style.c (render_header_raw, render_footer): Removed code that added
1937 redundent copy of page title on every page.
1938
1939 2003-04-21 R. Steven Rainwater <steve@ncc.com>
1940
1941 * (general): Merged changes from official mod_virgule versions
1942 1.38 through 1.41
1943
1944 2002-09-14 R. Steven Rainwater <steve@ncc.com>
1945
1946 * style.c (render_sitemap): Added "About" to site menu. This is
1947 temporary until a configurable menu is available.
1948
1949 2002-04-29 R. Steven Rainwater <steve@ncc.com>
1950
1951 * (general): Merged changes from official mod_virgule version 1.36
1952 and 1.37.
1953
1954 2002-04-26 R. Steven Rainwater <steve@ncc.com>
1955
1956 * (general): Merged changes from official mod_virgule version 1.33,
1957 1.34, and 1.35.
1958
1959 2002-04-06 R. Steven Rainwater <steve@ncc.com>
1960
1961 * buffer.c/h (buffer_new, buffer_write, buffer_send_response):
1962 Modified functions to send ETags. Note that the calling semantics of
1963 buffer_send_response have changed. Also generates a Content-MD5 tag,
1964 since it costs nothing.
1965
1966 * certs.c/h (render_cert_level_text): Added new function to render
1967 the certification level as hidden text which shows up in text mode
1968 browsers but is hidden in graphic browsers.
1969
1970 * acct_maint.c (acct_login): respects new semantics of the
1971 modified buffer_send_response function.
1972
1973 * article.c (article_render_reply): Added call to the new
1974 render_cert_level_text functions.
1975
1976 * mod_virgule (virgule_init_handler): Added version number and an
1977 init_handler to pass it back to Apache.
1978
1979 * req.c (send_response): respects new semantics of the
1980 modified buffer_send_response function.
1981
1982 * sites.c (site_render_recent_acct, site_render_recent_changelog):
1983 Added calls to new render_cert_level_text function.
1984
1985 * xmlrpc.c/h, xmlrpc-methods.c/h: Brought all XML-RPC functions up
1986 to mod_virgule 1.31 level.
1987
1988 2002-03-26 R. Steven Rainwater <steve@ncc.com>
1989
1990 * article.c (article_form_serve, article_generic_submit_serve):
1991 Changed height of lead box to 6 rows from 4. Added link to a
1992 posting guidelines page.
1993
1994 2002-03-24 R. Steven Rainwater <steve@ncc.com>
1995
1996 * tmetric.c (tmetric_index_serve): Escapes space chars in username
1997 before writing the default cert file. This particular bug has been
1998 around a long time but only surfaces if there are two users with
1999 similar names such as "Joe" and "Joe Smith" in which case, the
2000 wrong cert if found.
2001 * req.c (req_get_tmetric_level): Escapes space chars in username.
2002
2003 2002-03-22 R. Steven Rainwater <steve@ncc.com>
2004
2005 * Merged all changes from Raph's mod_virgule through 2.27 except
2006 hardcoded directory exception (we already have configurable ones).
2007
2008 * xmlrpc-methods.c/h, xmlrpc.c/h: Added Gary Benson's XML-RPC API.
2009
2010 * auth.c/h (auth_user): Gary Benson's XML-RPC API. Moved bulk of
2011 auth_user() into new function auth_user_with_cookie().
2012
2013 * acct_maint.c (acct_loginsub_serve): Gary Benson's XML-RPC API.
2014 Moved bulk of acct_loginsub_serve() into new function acct_login().
2015
2016 * db.c (db_dir_max_in_level): Added Raph's fix for a bug that caused
2017 miscounting of numeric directories when the _00.._99 entries follow
2018 _a.._d in the readdir() order.
2019
2020 * diary.c/h (diary_post_serve): Gary Benson's XML-RPC API. Moved
2021 bulk of entry storage code into new function, diary_store_entry().
2022
2023 * mod_virgule.c (virgule_handler): Gary Benson's XML-RPC API. Added
2024 handler for xmlrpc stuff.
2025
2026 * tmetric.c (tmetric_index_serve): Added Raph's fix to reduced time
2027 spent holding global db lock when writing tmetric cache.
2028
2029 2002-03-18 R. Steven Rainwater <steve@ncc.com>
2030
2031 * acct_maint.c (acct_kill): Added acct_kill() functio to totally
2032 remove a user account. The removal procedure will remove all certs
2033 to and from the user, remove all diary entries, and remove all the
2034 user's project relations. Projects themselves are not removed (even
2035 if the user being removed created a project, it may be in use by
2036 others) so there is a possibility of orphaned projects. I haven't
2037 decided on the best way to deal with this but it's a small price
2038 to pay to finally be able to delete user accounts.
2039
2040 * cert.c (cert_set): Modified to actually remove certs if they are
2041 set to CERT_LEVEL_NONE instead of just rendering them invisible.
2042
2043 * db.c (db_del): Added db_del() function to remove database records
2044 by key (i.e., it deletes the associated files). This is the missing
2045 link that should allow us to eventually add functions that delete
2046 user accounts, certs, projects, etc. If removal of the key leaves
2047 the directory it was residing in empty, the directory is removed too.
2048
2049 * proj.c (proj_set_relation): Added proj_set_relation() function to
2050 allow procedural changes to a user's relation to a project. This was
2051 previously possible only through the web interface. This function
2052 also deletes the relation entirely if it is set to "None" rather than
2053 just hiding the stale data as the previous implementation.
2054
2055 * proj.c (proj_relsub_serve): Now calls the new proj_set_relation()
2056 function rather than directly calling db_relation_put().
2057
2058 2002-02-17 R. Steven Rainwater <steve@ncc.com>
2059
2060 * acct_maint.c (acct_person_diary_xml_serve): Added patch from Gary
2061 Benson to fix memory leak in XML code.
2062
2063 * rss_export.c (rss_index_serve): Added patch from Gary Benson to
2064 fix memory leak in XML code.
2065
2066 2002-02-04 R. Steven Rainwater <steve@ncc.com>
2067
2068 * rss_export.c (rss_index_serve): Adjust URL and increased number
2069 of exported articles to 15 from 10.
2070
2071 2002-02-01 R. Steven Rainwater <steve@ncc.com>
2072
2073 * article.c (article_submit_serve): Added code to authorize user and
2074 check for duplicate postings (due to user error or browser problems).
2075
2076 2001-08-11 R. Steven Rainwater <steve@ncc.com>
2077
2078 * style.c (render_header_raw): Added a hard-coded keyword meta tag
2079 for robots.net.
2080
2081 2001-07-18 R. Steven Rainwater <steve@ncc.com>
2082
2083 * site.c (site_render_banner_ad): Rewrote banner ad code to use the
2084 XML database. Banner ads are randomly selected from /ads/adlist.xml
2085 and page view counts are decremented with each viewing of the ad.
2086 When view count reaches zero, ads are removed from rotation.
2087
2088 * site.c (site_send_banner_ad): A wrapper for site_render_banner_ad
2089 that allows banner ad requests used as an SSI within an HTML page.
2090
2091 * mod_virgule.c (virgule_handler): Added code to handle requests
2092 for '/cgi-bin/ad' by calling site_send_banner_ad.
2093
2094 2001-06-15 R. Steven Rainwater <steve@ncc.com>
2095
2096 * acct_maint.c (acct_touch): New function. Touches a <lastlogin>
2097 tag in the profile that can be used by an external account reaper
2098 to remove unused/unwanted accounts. When I get around to adding
2099 an internal account reaper, it will also use this function.
2100
2101 * auth.c (auth_user): Added a call to acct_touch().
2102
2103 * article.c (article_form_serve): Removed redundant "Post a new
2104 article" text from Posting page.
2105
2106 2001-05-21 R. Steven Rainwater <steve@ncc.com>
2107
2108 * tmetric.c (tmetric_index_serve): Added changes from Raph's 1.22
2109 version of mod_virgule. Neale Pickett's fix was added to the tmetric
2110 cache for names preceding the "-".
2111
2112 2001-04-27 R. Steven Rainwater <steve@ncc.com>
2113
2114 * site.c (site_render): Added a tag to for the loginbox.
2115
2116 * site.c (site_render_loginbox): Added this function to display a
2117 login box for users who are not logged in or a welcome message for
2118 those who are.
2119
2120 2001-04-23 R. Steven Rainwater <steve@ncc.com>
2121
2122 * article.c (article_submit_serve): Added maxlength attributes to
2123 article submission form to enforce length limits on article titles.
2124
2125 * article.c (article_generic_submit_serve): Added maxlength attributes.
2126
2127 2001-04-12 R. Steven Rainwater <steve@ncc.com>
2128
2129 * article.c (article_recent_render): Added a link for users who can't
2130 post that allows them to email story suggestions
2131
2132 2001-04-11 R. Steven Rainwater <steve@ncc.com>
2133
2134 * style.c (render_header_raw): Added a line of javascript to prevent
2135 pages from being displayed inside other sites framesets - this can
2136 happen from bad HTML on other websites or intentionally to wrap
2137 banner ads around someone elses sites.
2138
2139 2001-04-06 R. Steven Rainwater <steve@ncc.com>
2140
2141 * mod_virgule.c (xlat_handler): Added a new handler to accept a
2142 list of directories in httpd.conf that will be passed through to
2143 Apache to be handled normally.
2144
2145 * mod_virgule.c (test_page): Added a dump of any VirgulePass values
2146
2147 * mod_virgule.c (set_virgule_pass): New function that stores the
2148 VirgulePass values in an array.
2149
2150 * mod_virgule.c (set_virgule_dir_conf): Added initializer for the
2151 new pass_dirs element.
2152
2153 * site.c (site_render_recent_bots): Added a function to display
2154 recently added robots on the robomenu from an xml file created by
2155 the Perl administration program.
2156
2157 * site.c (site_render): Added check for the <recentbots/> tag.
2158
2159 * style.c (render_sitemap): Added link to robomenu and changed the
2160 "person" menu to read "humans".
2161
2162 2001-04-03 R. Steven Rainwater <steve@ncc.com>
2163
2164 * auth.c (auth_user): Tweaked the Apache user name data to remove
2165 spaces. This appears to be perfectly legal as far as the common log
2166 format and Apache are concerned but webalizer gags on names with
2167 spaces for some reason.
2168
2169 2001-03-22 R. Steven Rainwater <steve@ncc.com>
2170
2171 * article.c (article_form_serve): Removed Post button. User is now
2172 required to use the Preview button before posting. Added more
2173 descriptive comments about the use of the posting form (hard-coded
2174 for robots.net).
2175
2176 * article.c (article_generic_submit_serve): Added more descriptive
2177 comments about the use of the article preview form (hard-coded for
2178 robots.net).
2179
2180 2001-03-16 R. Steven Rainwater <steve@ncc.com>
2181
2182 * article.c (article_render_topic): Added "alt" attributes to topic
2183 icons for HTML compliance.
2184
2185 * site.c (site_render): Fixed bug that was putting illegal </img>
2186 tags into the XML-generated HTML output. These tags were causing
2187 rendering problems on some older browsers. Also fixed a number of
2188 case-sensitivities that were screwing up XML->HTML parsing.
2189
2190 2001-03-15 R. Steven Rainwater <steve@ncc.com>
2191
2192 * article.c (article_render_from_xml): Article titles on lead stories
2193 are now links to the story.
2194
2195 * util.c (render_date): Added optional date render format which
2196 includes hours, minutes, and time zone information. A new arg was
2197 added to select the desired render format and render_date() calls
2198 throughout mod_virgule were modified to use the new calling style.
2199
2200 2001-03-09 R. Steven Rainwater <steve@ncc.com>
2201
2202 * rss_export.c (rss_render_from_xml): Added some code to strip HTML
2203 anchor tags from the exported story descriptions. Whiles these
2204 appear to be legal in RSS, they are annoying.
2205
2206 2001-03-07 R. Steven Rainwtaer <steve@ncc.com>
2207
2208 * mod_virgule.c (test_serve): #ifdef'd out this function since it
2209 seems to not be needed or useful.
2210
2211 * proj.c (various): Change hard-coded values used by Advogato into
2212 hard-code values for robots.net. These really need to be read from
2213 XML rather than hard-code...
2214
2215 * site.c (site_serve): If a request for a URI ending in .html cannot
2216 be filled by an XML document, an attempt is made to find a static
2217 HTML file before declining the request.
2218
2219 2001-03-02 R. Steven Rainwtaer <steve@ncc.com>
2220
2221 * acct_maint.c (acct_person_serve): Cert selector is not
2222 displayed for users when looking at their own page.
2223
2224 * article.c (all): Changed calls to ok_to_post() in cases where
2225 ok_to_reply() was more appropriate.
2226
2227 * article.c (article_form_serve): Changed maximum article title
2228 size from 50 to 40 characters.
2229
2230 * article.c (article_generic_submit_serve): Changed maximum article
2231 title size from 50 to 40 characters. Fixed bug that caused loss of
2232 article topic when previewed.
2233
2234 * auth.c (auth_user): Authenticated user name from cookie is set in
2235 the Apache request_rec->conn_rec->user field so it can be logged.
2236
2237 * proj.c (proj_newsub_serve,proj_editsub_serve): Now uses the
2238 ok_to_create_project() function instead of ok_to_post(). Reduced
2239 project name size from 30 to 25 characters.
2240
2241 * req.c/h (ok_to_post): User must have journeyer or higher cert to
2242 post an article.
2243
2244 * req.c/h (ok_to_relpy): New function. User must have apprentice or
2245 higher cert to post a reply to article.
2246
2247 * req.c/h (ok_to_create_project): New function. User must have
2248 apprentice or higher cert to create a project.
2249
2250 * rss.c (rss_index_serve, rss_render_from_xml): Replaced hard-coded
2251 references to Advogato with hard-coded references to robots.net.
2252
2253
2254 2001-03-01 R. Steven Rainwater <steve@ncc.com>
2255
2256 * acct_maint.c (acct_certify_serve): Users are now unable to
2257 issue meaningless self-certifications.
2258
2259 * site.c (site_render_banner_ad): Kluge to display some random
2260 hard-coded banner ads. This will be replaced by real code later.
2261
2262 2001-02-27 R. Steven Rainwater <steve@ncc.com>
2263
2264 * article.c (article_render_from_xml): Slight fixes to article
2265 header code to achieve a uniform header size and preven wrapping
2266 in the header.
2267
2268 2001-02-26 R. Steven Rainwater <steve@ncc.com>
2269
2270 * acct_maint.c (acct_index_serve): Removed hard-coded reference
2271 to Advogato.org from descriptive text on user account page.
2272
2273 * certs.c (render_cert_level_begin): Removed hard-coded reference
2274 to advogato. The code is uneeded as the admin user name and cert
2275 level may be set in the httpd.conf file.
2276
2277 2001-02-25 R. Steven Rainwater <steve@ncc.com>
2278
2279 * mod_virgule (set_virgule_css): Added this function to read the
2280 location of the mod_virgule style sheet from the Apache config file.
2281
2282 * mod_virgule (create_virgule_dir_conf, test_page, virgule_handler):
2283 Added code to support reading the location of the style sheet using
2284 set_virgule_css().
2285
2286 * req.h (_VirguleReq): Added pointer to CSS location
2287
2288 * site.c (site_render): Removed code that was inserting spurious
2289 newlines into HTML rendered from the XML files. This fixes many
2290 of the HTML table rendering problems with older Netscape versions.
2291
2292 * style.c (render_header_raw): Style sheet location loaded from
2293 Apache config rather than a static one is now inserted into raw
2294 pages.
2295
2296 2001-02-23 R. Steven Rainwater <steve@ncc.com>
2297
2298 * util.c, site.c: Merged mod_virgule 1.21 changes. Only additional
2299 functionality over my existing changes is the use of <project> as
2300 an alternate to <proj>.
2301
2302 2001-02-22 Raph Levien <raph@acm.org>
2303
2304 * db_ops.c (add_recent): Uses xmlNewTextChild rather than
2305 xmlNewChild, so escaping is now correct.
2306
2307 * util.c Added <proj> tag and renderer.
2308
2309 * style.c (render_acceptable_html): Added <proj> to list.
2310
2311 * site.c (site_render_recent_proj): Changed to use
2312 render_proj_name (which escapes the URL correctly) rather than
2313 hand-rolled HTML.
2314
2315 Thanks to R. Steven Rainwater and Matt McClanahan for patches.
2316
2317 2001-02-22 R. Steven Rainwater <steve@ncc.com>
2318
2319 * everything : Updated user name support to allow names with spaces,
2320 dashes, underscores, and dots. All relevant functions throughout
2321 mod_virgule were updated to work with the new name format.
2322
2323 2001-02-21 R. Steven Rainwater <steve@ncc.com>
2324
2325 * acct_maint.c (all): Modified all function using cert levels to
2326 work with the changes made in certs.c (see below).
2327
2328 * article.c (article_render_from_xml): Replaced spacer tags with
2329 legal HTML alternative. Assorted other HTML fixes. If STYLE is
2330 defined in style.h, the article title attributes are taken from the
2331 external CSS.
2332
2333 * article.c (article_render_from_xml): Rewrote code that renders
2334 article headers. A header table is generated that includes a cell
2335 for an icon representing the article topic. The styles for the
2336 topic and author cells are drawn from CSS. All these change take
2337 effect when STYLE is defined.
2338
2339 * article.c (article_form_serve): Added topic selector input to
2340 the article posting form.
2341
2342 * article.c (article_submit_serve): Added support for article topics.
2343
2344 * article.c (article_generic_submit_serve): Added support for article
2345 topics.
2346
2347 * article.h: added ArticleTopic struct.
2348
2349 * certs.c/h: Major changes to reconcile an off-by-one error between
2350 CERT_NONE (was 0) and the lowest cert level (was 1). The 0th cert
2351 level is now considered the default and used in place of both. This
2352 simplifies many of the functions, structures, and cert calculations.
2353 Replaced the hard-coded cert levels created for Advogato with user
2354 configurable ones that may be set in the httpd.conf file.
2355
2356 * mod_virgule (command_rec): Added new command records for
2357 VirguleCerts, VirguleAdmin, VirguleSeeds, and VirguleTopic. New
2358 Apache option handler functions were added for each of these.
2359
2360 * mod_virgule (test_page): Now renders seeds, cert levels and admin
2361 values that were read from httpd.conf.
2362
2363 * mod_virgule (create_virgule_dir_conf): Seed, cert, admin, and
2364 topic pointers are now initialized.
2365
2366 * mod_virgule (virgule_handler): Pointers to seed, cert, admin, and
2367 topic data is now passed to the VirguleReq struct.
2368
2369 * req.c (all): Various changes to work with new cert level code.
2370
2371 * req.h: Added pointers in _VirguleReq for cert_level array, seed
2372 array, topic array, and admin name.
2373
2374 * tmetric.c/.h: Various changes to remove hard coded seed values.
2375 No changes to trust metric calculation were made.
2376
2377 2001-02-20 R. Steven Rainwater <steve@ncc.com>
2378
2379 * certs.c (render_cert_level_[begin|end]): If STYLE is defined in
2380 style.h, the cert level style is taken from the external CSS rather
2381 than hard-coded.
2382
2383 * db_ops.c (db_relation_get): Added return value to suppress compiler
2384 warnings. Not sure why this function exists?
2385
2386 * main_page.c/.h: removed these unused files
2387
2388 * mod_virgule.c (virgule_handler): Removed unecessary reference to
2389 main_page.c function. Fixed prefix bug that affected the foo.html
2390 diagnostics page. Added explanatory comments to some functions.
2391 Removed assorted cruft that appeared to have been used by Raph only
2392 for initial testing.
2393
2394 * proj.c (proj_index_serv): qsort() is now used to alphabetize the
2395 project list. An assciated compare function, proj_index_sort() was
2396 added. Removed unused variables to eliminate compiler warnings.
2397
2398 * site.c (site_render_recent_acct): Replaced spacer tags with table
2399 tags for HTML compliance.
2400
2401 * site.c (site_render_recent_changelog): Replaced spacer tags with
2402 break tags for HTML compliance.
2403
2404 * site.c (site_render_recent_proj): Replaced spacer tags with table
2405 tags for HTML compliance.
2406
2407 * site.c (site_render): Removed some dead code. Added #ifdefs to
2408 exclude calls to render_table_[open|close] when CSS extensions are
2409 compiled in.
2410
2411 * style.c (render_sitemap): If STYLE is defined, sitemap attributes
2412 are taken from external CSS rather than hard-coded valueds.
2413
2414 * style.c (render_table_[open|close]): Enclosed in #ifdef to exclude
2415 these functions when CSS extensions are compiled in.
2416
2417 2001-02-20 R. Steven Rainwater <steve@ncc.com>
2418
2419 * style.c (render_header_raw): Added support for an external style
2420 sheet named /mod_virgule.css to make life easier when customizing
2421 a mod_virgule site.
2422
2423
2424 2001-01-24 Raph Levien <raph@acm.org>
2425
2426 * auth.c (auth_user): Fixes denial of service attack. Thanks
2427 to R. Steven Rainwater for the patch.
2428
2429 2000-11-07 Raph Levien <raph@acm.org>
2430
2431 * req.h:
2432 * req.c:
2433 * tmetric.h:
2434 * tmetric.c: Replaced tmetric.xml with plain-text file, which
2435 removed a major performance bottleneck.
2436
2437 2000-09-02 Raph Levien <raph@acm.org>
2438
2439 * diary.c: Provide separate creation and last update dates.
2440
2441 * wiki.c: Liberalize InterWiki lexing.
2442
2443 2000-08-24 Raph Levien <raph@acm.org>
2444
2445 * wiki.c (wiki_link): Fix embarassing bugs.
2446
2447 * style.c (render_acceptable_html): Add wiki and person tags.
2448
2449 2000-08-24 Raph Levien <raph@acm.org>
2450
2451 * util.h:
2452 * util.c (nice_htext): Added handlers for special tags (wiki
2453 and person). First arg is now a VirguleReq rather than a pool.
2454
2455 * acct_maint.c (acct_person_serve):
2456 * article.c (article_generic_submit_serve):
2457 * diary.c (diary_preview_serve, diary_post_serve):
2458 * proj.c (proj_relsub_serve): Changed first arg of nice_htext
2459 to vr.
2460
2461 * req.h: Added render_data table, used by wiki to store
2462 intermap.
2463
2464 * wiki.h:
2465 * wiki.c: Renders InterWiki links.
2466
2467 * Makefile: Added wiki.o.
2468
2469 Tue Jun 6 22:47:04 2000 Raph Levien <raph@acm.org>
2470
2471 * acct_maint.c: Fixed problem of logging into an account
2472 that is an alias. It now follows the alias link.
2473
2474 * proj.c (proj_proj_serve): Fixed escaping of project name in
2475 cases where it includes "+".
2476
2477 * util.c: Added escape_uri_arg() function that escapes query
2478 arguments correctly.
2479
2480 2000-04-13 Raph Levien <raph@gimp.org>
2481
2482 * util.c (nice_htext): Fixed a brown paper bag bug in which
2483 nice_htext would run off the end of the buffer.
2484
2485 * article.c (article_generic_submit_serve): Fixed a bug in which
2486 the nice_text version of the title was ignored.
2487
2488 * util.c: Added escape_noniso_char, which translates non-iso
2489 characters to reasonable replacements. Both nice_text and
2490 nice_htext use this now. This fixes a vulnerability where some
2491 browsers (notably Netscape) interpret a tag between 0x8B and 0x9B
2492 characters as an HTML tag, and at the same time takes care of the
2493 "dreaded question mark" problem when people post from Windows
2494 browsers.
2495
2496 Sat Apr 8 13:05:38 2000 Raph Levien <raph@acm.org>
2497
2498 * proj.c (proj_proj_serve): Properly escape project name in URI.
2499
2500 * article.c (article_reply_submit_serve): lead and body are now
2501 passed to this routine raw so that they don't accumulate <p> tags.
2502
2503 * util.c: Added "pre" tag to acceptable html.
2504
2505 * rss_export.c (rss_index_serve): Changed root element to
2506 lowercase "rss".
2507
2508 * article.c (article_generic_submit_serve): Check for empty body
2509 when submitting a reply.
2510
2511 * article.c (article_render_reply):
2512 * diary.c (diary_render): Added <a name=""> tags to individual
2513 replies and diary entries. Thanks to Kelly for the patch.
2514
2515 * diary.c: Fixed segfaulting when diary is empty.
2516
2517 Sat Mar 4 16:14:23 2000 Raph Levien <raph@acm.org>
2518
2519 * proj.c:
2520 * diary.c (diary_post_serve):
2521 * acct_maint.c (acct_newsub_serve): Increased add_recent to 50.
2522 This makes sense now that the xml tags in site.c actually pay
2523 attention to their arguments.
2524
2525 * diary.c (validate_key): Patch by R. Steven Rainwater to allow
2526 key of -1, which autoassigns a new post number. This makes it
2527 easier to use a client for posting diary entries.
2528
2529 2000-03-04 Laurent Gauthier <lolo@seul.org>
2530
2531 * site.c (site_render_recent_changelog): Implemented this function
2532 to render the <recentlog> tag.
2533
2534 * site.c (site_render): Added a new tag <recentlog>, that will
2535 display the most recent diary entries.
2536
2537 * diary.c (diary_latest_render): New function used to render the
2538 latest diary update for a given user.
2539
2540 * diary.h: Added prototype for diary_latest_render().
2541
2542 Thu Mar 2 17:18:30 2000 Raph Levien <raph@acm.org>
2543
2544 * diary.c (diary_serve): Fixed prefix bug.
2545
2546 * acct_maint.c (acct_person_serve): Fixed prefix bug.
2547
2548 * site.c: Made "recent" tags actually limit the number displayed.
2549
2550 Fri Feb 25 13:41:21 2000 Raph Levien <raph@acm.org>
2551
2552 * diary.c (diary_render): Fixed a little bug that got introduced
2553 with the diary editing code.
2554
2555 Fri Feb 25 12:56:14 2000 Raph Levien <raph@acm.org>
2556
2557 * acct_maint.c (acct_person_serve): Made an explicit "[Edit]" link
2558 for diary editing, rather than just making the date clickable.
2559 Made the personal information page automatically redirect through
2560 symlinks. Thus, if the account Foo exists and /person/foo/ is
2561 requested, it will redirect to /person/Foo/.
2562
2563 Wed Feb 23 23:28:12 2000 Phil Schwan <pschwan@linuxcare.com>
2564
2565 * diary.c: Added diary editing. In order to re-use code already
2566 present in diary_post_serve and diary_preview_serve, I made them
2567 get the diary's index from the form field "key". This key is run
2568 through validate_key() which does simple bounds checking and returns
2569 a key suitable for passing to db_xml_put. Keys are originally set
2570 in diary_index_serve (adding a new diary entry) and diary_edit_serve.
2571
2572 Wed Feb 23 15:52:20 2000 Raph Levien <raph@acm.org>
2573
2574 * acct_maint.c: When you create an account with uppercase
2575 characters, it now creates an "alias" account with the
2576 all-lowercase version of the name, pointing to the real account.
2577 Conversely, it checks the all-lc name on account creation. This
2578 blocks people from creating accounts colliding in name (all except
2579 for case) with existing accounts. This was a serious problem
2580 because ap_table_* is not case sensitive.
2581
2582 * tmetric.c: Changes to work with "alias" profiles.
2583
2584 Thu Feb 17 11:46:34 PST 2000 Manish Singh <yosh@gimp.org>
2585
2586 * Makefile: use glib-config and xml-config directly, to avoid
2587 gnome build time dependancy
2588
2589 * mod_virgule.c: moved gnome-xml #includes to the beginning, so we
2590 get xmlNode declared for diary.h
2591
2592 2000-01-17 Raph Levien <raph@gimp.org>
2593
2594 * diary.c (diary_export): Initial support for exporting diaries
2595 as XML files.
2596
2597 * diary.h: diary_export declaration.
2598
2599 * acct_maint.c (acct_person_diary_xml_serve): Added
2600 /person/<username>/diary.xml into namespace served.
2601
2602 Mon Jan 10 11:11:49 2000 Raph Levien <raph@acm.org>
2603
2604 * acct_maint.c: Support for "older entries" for diary.
2605
2606 * diary.h, diary.c: Implemented "older entries" link. Implemented a
2607 "Preview" button for diary posting.
2608
2609 * article.h, article.c: Implemented "older articles" link.
2610 Implemented a "Preview" button for article and reply posting.
2611
2612 * util.c: Added str_subst utility function, used for previews.
2613
2614 Wed Dec 15 14:51:51 1999 Raph Levien <raph@acm.org>
2615
2616 * apache_util.c (read_post_data): bytes_read == 0 is an error
2617 condition. It was looping infinitely on this.
2618
2619 Wed Dec 8 12:24:49 1999 Raph Levien <raph@acm.org>
2620
2621 * db_xml.c (db_xml_free): Fixed a really _dumb_ memory leak.
2622
2623 Fri Nov 26 16:02:35 1999 Raph Levien <raph@acm.org>
2624
2625 * acct_maint.c: Shows project relationships, also have graph
2626 display for playing with dot.
2627
2628 * article.c: Only display "Reply..." link twice if number of
2629 replies != 0.
2630
2631 * db_ops.c: Enforce uniqueness when putting new relations in the
2632 db.
2633
2634 * proj.c: Correct url escaping for project names. Also
2635 sanitychecking of new project names.
2636
2637 * tmetric.c: Added alan :)
2638
2639 1999-11-15 Raph Levien <raph@gimp.org>
2640
2641 * db_ops.c (db_relation_put_field): Naming changes.
2642
2643 * proj.c: Actually stores the "staff" relationship between project
2644 and person now.
2645
2646 Mon Nov 15 15:43:47 1999 Raph Levien <raph@acm.org>
2647
2648 * proj.c: Project page now works pretty well.
2649
2650 * schema.c: Another new thing is a schema system for automating
2651 some of the drudge work in having forms with lots of fields. This
2652 is used throughout proj.c, and should probably be retrofitted to a
2653 few other things.
2654
2655 * db_ops.c: I'm starting on support for relations in the database
2656 abstraction, which will be useful for multiway relations. For
2657 example, if person X works on project Y, it will (with one
2658 operation) store information in both /acct/X and /proj/Y.
2659
2660 * some other minor fixes too, like alphabetizing the /person/ list
2661 and so on.
2662

webmaster@dprg.org
ViewVC Help
Powered by ViewVC 1.1.2