-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathChangeLog
2869 lines (1904 loc) · 107 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2011-05-27 R. Steve Rainwater <[email protected]>
* acct_maint.c (acct_newsub_serve, acct_loginsub_serve):
* acct_maint.c (acct_flag_as_spam, acct_certify_serve):
* acct_maint.c ( acct_update_serve):
* article.c (article_submit_serve, article_reply_submit_serve):
* diary.c (diary_post_serve, diary_edit_serve):
* proj.c (proj_newsub_serve, proj_relsub_serve, proj_editsub_serve):
* rating.c (rating_rate_diary):
Added check for POST method. Otherwise, specially crafted GET requests
could trigger mod_virgule actions. Props to Daniel Kahn Gillmor for
spotting the need for this.
2011-05-26 R. Steven Rainwater <[email protected]>
* mod_virgule: Various minor code cleanup and debug code removal
to prep for checking in to subversion.
2011-05-03 R. Steven Rainwater <[email protected]>
* aggregator.c (extract_content): Skip feed items that exist in
markup but have no content.
2010-07-21 R. Steven Rainwater <[email protected]>
* aggregator.c (aggregator_getfeeds_serve): Switched to using private
memory pool that can be completely freed after each iteration of the
aggregation loop.
* aggregator.c (extract_content): Added text/html to supported content
types.
2010-06-10 R. Steven Rainwater <[email protected]>
* aggregator.c (aggregator_post_feed): Free content and title after
posting each item in feed to slow down memory consumption. This
applies to libxml2 functions that don't use the Apache APR memory
pool.
2010-02-10 R. Steven Rainwater <[email protected]>
* util.c (virgule_normalize_html, virgule_normalize_html_tree):
Added baseurl argument to allow the content aggregator to pass the
base URL used for relative image anchor tags.
* aggregator.c (extract_content): Now passed the feed's base URL to
the HTML normalization procedures, so that images with relative
anchor tags can be converted to absolute URLs.
* util.c (virgule_normalize_html_node, virgule_nice_element):
Added recursive functions for normalizing HTML tree nodes and nicing
individual elements and properties. When nice_element updates the
properties, relative img src URLs are corrected to absolute using
the baseurl (when available). This should fix some of the bad images
that show up in syndicated blog posts.
2009-05-27 R. Steven Rainwater <[email protected]>
* attc_maint.c (acct_maint): Fixed rare segfault that could occur
when computing stats on a user database that had zero users at one
of the certification levels.
2009-05-20 R. Steven Rainwater <[email protected]>
* aggregator.c (extract_content): new function to extract content
from a syndicated feed item based on the explicitly specified or
guessed content type. This should allow to us properly parse feeds
containing unescaped XHTML tags inside of the feed's XML tags. Any
feed that does not explicitly specify the content type is assumed
to be either XML escaped HTML markup or a CDATA section contain
raw HTML.
* aggregator.c (aggregator_index_rdf_site_summary_10): Added support
for feeds that use the description tag rather than the more common
Dublin Core content tag.
* aggregator.c (aggregator_index_atom_10): Added parsing of the feed's
content type for use by the content extractor. So far types of 'html'
and 'xhtml' are supported.
2009-04-24 R. Steven Rainwater <[email protected]>
* aggregator.h (struct _FeedItem): added strcontent, a pointer to
a fully parsed, stringified version of the feed item content.
* aggregator.c (aggregator_post_feed): extract feed content as a
string to simplify parsing on our end.
2009-02-13 R. Steven Rainwater <[email protected]>
* util.c (nice_element): rewrote element property scanner to work
with the libxml2 parser.
2009-01-26 R. Steven Rainwater <[email protected]>
* util.c (virgule_nice_htext, nice_tag, find_end_tag, match_tag):
Removed these functions, which have been replaced by the libxml2
HTML parser.
* util.c (virgule_normalize_html_tree): Broke out tree-specific
portion of HTML parser. If you need to normalize an existing XML
tree, use virgule_normalize_html_tree(). If you need to clean up
a text buffer of HTML-like tag soup, call virgule_normalize_html(),
which will turn it into a legal XML tree and pass it to, you guessed
it, virgule_normalize_html_tree().
* diary.c (virgule_diary_store_feed_item): Adapted to work with the
new libxml2 HTML parser.
2009-01-23 R. Steven Rainwater <[email protected]>
* acct_maint.c (acct_person_serve): Renders appropriately based on
content type.
* acct_maint.c (acct_update_serve, acct_newsub_serve): updated to
work with libxml2 HTML parser and store with format type identifier.
2009-01-19 R. Steven Rainwater <[email protected]>
* article.c, diary.c, proj.c, schema.c: lots of minor tweaks to
normalize the preview, editing and storage paths of content in these
modules. This should make HTML handling more consistent and hopefully
will allow us to someday combined the common code.
* proj.c (proj_newsub_serve, proj_proj_serve): updated to work with
libxml2 HTML parser and store with format type identifier.
* schema.c (virgule_schema_render_input, virgule_schema_put_field):
Textarea fields now receive additional processing to improve line
break handling. Removed redundant entity escaping on textarea fields.
2009-01-16 R. Steven Rainwater <[email protected]>
* proj.c (proj_proj_serve, proj_reply_submit_serve):
* proj.c ( proj_reply_form_serve): Fixed broken HTML in forms.
* aggregator.c (aggregator_post_feed): Added support for parsing of
gzipped feeds.
2008-12-19 R. Steven Rainwater <[email protected]>
* article.c (article_generic_submit_serve, article_edit_serve):
updated code to work with libxml2 HTML parser and fixed random
HTML markup bugs. All form textareas now use softwrap.
* diary.c (diary_edit_serve, diary_post_serve, diary_preview_serve):
updated code to work with libxml2 HTML parser and fixed random
HTML markup bugs. All form textareas now use softwrap.
2008-12-17 R. Steven Rainwater <[email protected]>
* site.c (site_render): Removed experimental YouTube tag.
* util.c (virgule_youtube_link): Removed experimental YouTube tag.
* util.c (nice_person_link, nice_project_link): Updated to work
with the new libxml2 based HTML parser.
* wiki.c (virgule_wiki_link): Updated to work with new HTML parser.
2008-12-16 R. Steven Rainwater <[email protected]>
* article.c (article_render_reply): Now passes content to
virgule_format_content() for appropriate formatting at render time.
* article.c (article_render_from_xml): Now passes lead and body to
virgule_format_content() for appropriate formatting at render time.
Also improved CSS support in HTML markup for articles. NOTE: All
this format tag stuff is strickly to maintain backward compatibilty
on Advogato and robots.net. Once the migration to the new HTML
parser is complete and the database at those sites are updated, I'll
pull this stuff out. It should be safe to go ahead and use the code
on new sites in the meantime. No functionality will be lost when
the format stuff is removed.
2008-11-25 R. Steven Rainwater <[email protected]>
* article.c (article_generic_submit_serve): Added storage format type
field with a default of type 0.
* diary.c (virgule_diary_store_entry): Added storage format type
field with a default of type 0.
* diary.c (virgule_diary_store_feed_item): Added storage format type
field with a default of type 1.
* util.c (virgule_normalize_html): Added new function to normalize
any tag soup that even vaguely resembles HTML or XML. This is based
on libxml2 and replaces mod_virgule's older homebrew HTML parser.
* util.c (virgule_format_content): Added new function to call an
appropriate content formatting function based on type of content.
2008-09-27 R. Steven Rainwater <[email protected]>
* site.c: Removed deprecated AdInfo struct
* site.c (site_render): Added experimental YouTube link. Place a
YouTube video ID inside like so: <youtube>d9gjy1OsTGQ</youtube>
* util.c (virgule_youtube_link): Genrates the YouTube link code
from the supplied video ID.
* style.c (virgule_render_header): Cleaned up some cruft
* INSTALL: Complete rewrite of the INSTALL file based on user feedback
2008-08-15 R. Steven Rainwater <[email protected]>
* acct_maint.c (acct_person_diary_rss_serve): Fixed typo in RSS
version number (removed extra trailing dot).
2008-08-04 R. Steven Rainwater <[email protected]>
* article.c (article_render_from_xml): replaced table-based article
header HTML with cleaner div markup.
2008-06-27 R. Steven Rainwater <[email protected]>
* mod_virgule (set_virgule_db): db arg is now a const
* mod_virgule (read_site_config): fixed cases where a certain
config.xml setup could result in a strlen(NULL).
* Makefile: Cleaned up a and added comments about Apache ARP 1.x
* acct_maint.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
* diary.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
* db_ops.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
* db_xml.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
* tmetric.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
* schema.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
* site.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
* util.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
2008-01-23 R. Steven Rainwater <[email protected]>
* diary.c (virgule_diary_entry_render): Added call to
virgule_nice_htext before rendering diary. This is a kluge to get
around the increasingly nasty HTML syndicated from external blogs.
This should be replaced with proper HTML filtering and repair in the
aggregator storage module (it will also be necessary to retroactively
repair stored blogs before removing this code).
2008-01-09 Mauro Persano <[email protected]>
* mod_virgule.c (read_allowed_tag): Added this function to parse
allowed tag structures in the config.xml file.
* mod_virgule.c (read_site_config): Modified to handle tag attribute
data from config.xml.
* util.c (virgule_add_allowed_tag): Modified to handle tag attribute
data from config.xml.
* util.c (nice_tag): Added this function to filter out disallowed
tag attributes in HTML.
* util.c (nice_htext): Added call to nice_tag()
2007-12-15 R. Steven Rainwater <[email protected]>
* db.c (virgule_db_lock_key, virgule_db_lock_upgrade,
virgule_db_lock_downgrade, virgule_db_lock, virgule_db_unlock):
Removed all the existing lock functions and all references to them
throughout mod_virgule. Instead of locking the entire database,
these calls are replaced with Apache APR file locking calls to
lock only the specific DB Key (file) being read or written. This
makes mod_virgule much more responsive and a bit more scalable.
* db.c (virgule_db_del): Replaced unlink() with apr_file_remove().
Replaced rmdir() with apr_dir_remove().
* db.c (virgule_db_put_p): Added exclusive apr_lock_file() call.
* db.c (virgule_db_get_p): Added shared apr_lock_file() call.
2007-12-05 R. Steven Rainwater <[email protected]>
* diary.c (virgule_diary_rss_export): The guid of syndicated diary
entries, when available, is preserved in Advogato's outbound diary
RSS feed. This should help downstream aggregators identify duplicate
posts more easily. Thanks to Paul Wise for noticing this.
2007-11-07 R. Steven Rainwater <[email protected]>
* private.h: Added pointer to a Google Analytics string
* mod_virgule.c (read_site_config, info_page): Added support for a
Google Analytics code in the config.xml file
* style.c (virgule_render_footer_send): Added support for Google
Analytics. If a GA ID is found, the analytics tracking code is
inserted prior to the HTML body close tag.
* acct_maint.c (virgule_acct_update_art_index): Reduced memory
leakage substantially.
2007-11-04 Joe Presbrey <[email protected]>
* acct_maint.c (prof_fields): Added field in profile for a FOAF URI
* foaf.c (virgule_foaf_person): Added xmlns:owl namespace to FOAF.
An owl:sameAs tag is now added for the FOAF URI, if present.
2007-11-02 R. Steven Rainwater <[email protected]>
* config.xml: Fixed XML well-formedness error. Thanks to presbrey
for spotting this and the template issues.
* sample_db: Added several missing generic default templates needed
for a new install.
2007-10-22 R. Steven Rainwater <[email protected]>
* foaf.c (virgule_foaf_person): Added export of the computed trust
level for each user with reference to a local RDF schema of Advogato
trust levels. This mechanism was suggested by Sean B. Palmer and
Dan Connolly on the W3C #swig IRC channel.
2007-08-31 R. Steven Rainwater <[email protected]>
* foaf.c (virgule_foaf_person): The mbox_sha1sum field is not
included if the user profile has no email address. Thanks to
Andreas Harth of deri.org for reporting the bug.
* site.c (virgule_site_render_person_link): A rel="nofollow" is
added to any person link if the user is not trusted. This should
help minimize the value of untrusted accounts created by spammers.
Suggested by ncm.
* acct_maint.c (virgule_acct_person_index_serve): The user's cert
level is evaluated and rel="nofollow" added for untrusted users.
* site.c (site_render_recent_acct): The user's cert level is now
passed to virgule_site_render_person_link().
* diary.c (virgule_diary_entry_render): The user's cert level is now
passed to virgule_site_render_person_link().
* certs.c (virgule_render_cert_level_begin): The CertLevel value is
now returned. This prevents the need to do multiple trust metric
lookups in some cases.
2007-08-26 R. Steven Rainwater <[email protected]>
* mod_virgule (info_page): Fixed pointer dereferencing bug.
* rating.c (rating_clean): Added a maintenance function that
analyzes the eigen vector cache and removes local cache files of
users that have been deleted. Ratings of nonexistant users found
in good cache files are also removed.
2007-08-14 R. Steven Rainwater <[email protected]>
* acct_maintc. (acct_person_diary_static_serve): Handles a static
diary URL by rendering a single diary entry in fancy recentlog mode
with the addition of two links to additional diary entries for the
user.
* acct_maint.c (acct_person_serve): Added handlers for static diary
URLs.
* diary.c (virgule_diary_entry_render): Change diary entry permalinks
to static URLs. This may improve search engine rankings for diary
entries and will come in handy someday when we add comments to diaries.
2007-08-01 R. Steven Rainwater <[email protected]>
* util.c (virgule_render_url): URL is now escaped with ap_escape_html()
rather than ap_os_escape_path(), which was freaking out on URLs that
contained a ? character. This should have been done as part of the
migration from the Apache APR 1.3 -> 2.0 API. Props to redi for
spotting this bug.
2007-07-29 R. Steven Rainwater <[email protected]>
* acct_maint.c (acct_person_serve): Account profiles now include a
list of the 10 most recent articles posted by the user and link to
a full listing of articles.
* acct_maint.c (virgule_acct_update_art_index): Added this function
to create and maintain an XML index in the user account directory of
every article the user has posted.
* acct_maint.c (acct_person_articles_serve): Renders a full list of
all articles posted by the specified user.
* acct_maint.c (acct_kill): The articles.xml file is removed with a
user account is deleted.
* article.c (article_maint): Added this function to sequentially
process all articles and update user profiles with a correct index
of articles each user has posted.
* article.c (virgule_article_serve): Added URL for the new article
maintenance function.
2007-07-22 R. Steven Rainwater <[email protected]>
* acct_maint.c (acct_person_serve): Inbound and outbound trust certs
less than 30 days old are marked as "new" in the user profile.
2007-07-19 R. Steven Rainwater <[email protected]>
* foaf.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
* proj.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
* rss_export.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
* xmlrpc.c: Added xmlChar/char casts to eliminate gcc 4.x warnings.
2007-07-16 R. Steven Rainwater <[email protected]>
* proj.c (proj_proj_serve):
* article.c (article_render_from_xml):
* acct_maint.c (acct_person_server): Apostrophe is now escaped in the
HTML calling the social bookmarking Javascript function. Thanks to
LKCL for spotting the error.
2007-07-09 R. Steven Rainwater <[email protected]>
* aggregator.c (aggregator_post_feed): Check for existing GUID before
doing an update in case the feed has retro-actively altered the item's
post time stamp. This should prevent item dupes on feeds that mess
with the time stamps in bad ways, provided the GUID remains valid.
* article.c (article_render_from_xml): Replaced hardcoded social
bookmark links with standard share icon and call to external
javascript social bookmarking widget.
* acct_maint.c (acct_person_serve): Added social bookmark link to
profile page. Replaced "this person" to the actual user name in the
profile certification banner.
* proj.c (proj_proj_serve): Added social bookmark link to project
page. Tweak HTML slightly to improve look.
2007-07-06 R. Steven Rainwater <[email protected]>
* acct_maint.c (acct_logout_serve): The no_cache and no_local_copy
flags are now set in the Apache request_rec structure to prevent
browsers from caching old logout results. This bug was preventing a
few users from successfully logging out of Advogato. Props to
Paul Wise (pabs3) for bringing the problem to my attention.
2007-06-13 R. Steven Rainwater <[email protected]>
* v.js (clrField): Started a mod_virgule Javascript library.
The clrField() function allows helpful comments to be placed in
form fields that will vanish when the user focuses the field.
* style.c (virgule_render_header): Now includes the new Javascript
library in each page header. Removed the hardcoded frame-buster
Javascript from the page headers and put it in the v.js file,
allowing it to be cached across page views. This reduces the page
size slightly.
* util.c (virgule_strip_a): Fixed a bug that allowed spammers to
circumvent having anchor tags stripped from their notes field
by intentionally entering malformed markup.
* acct_maint.c (acct_index_serve): Cleaned up the account action
list.
2007-06-08 R. Steven Rainwater <[email protected]>
* db_ops.c (db_relation_put_field): Fixed a bug that prevented staff
relations from being removed when set to a relation type of None.
Props to Gary Benson for noticing the problem.
* proj.c (virgule_proj_set_relation): Fixed bug that prevented
db_relation_put_field() from being called on certain staff
relationship changes.
2007-05-16 R. Steven Rainwater <[email protected]>
* util.c (virgule_force_legal_css_name): Added function to force an
arbitrary string into compliance with the CSS1 spec for use as a CSS
class name. This will allow usernames to be inserted into class
statements as additional identifiers. Some third party blog handling
utilities rely on this arrangement to improve dupe handling.
* diary.c (virgule_diary_entry_render): Wrapped each entry in a div
and assigned two classes, one for site design and one that's a
CSS'ified version of the user name for screen-scraping aggregator
use. Also switched the diary entry body to a div from a blockquote
allowing more flexibility in site layout.
2007-05-15 R. Steven Rainwater <[email protected]>
* private.h (virgule_private): added editors list pointer. This will
allow a site to optionally limit article posts to a specific set of
users, known as editors. Also changed article_post_by_seeds_only to
article_post_by_editors_only. The seed list was serving double duty
on robots.net as an editors list but it's now helpful to separate
the functions.
* mod_virgule.c (read_site_config): Added code to read the list of
editors from the config.xml file on startup.
* mod_virgule.c (info_page): The diagnostics page now dumps the
list of editors, if any, and the current setting of the editor only
flag read from the config.xml file.
* req.c (virgule_req_ok_to_post): Now queries the editors list
if the article_post_by_editors_only flag is set.
* article.c (article_form_serve): The article post page now uses
a page-specific template instead of the default template to allow
for more site-specific customization such as posting guidelines.
2007-05-03 R. Steven Rainwater <[email protected]>
* general: Moved module templates to the new template directory.
* style.c (virgule_render_header): Removed references to vr->raw
flag which not needed with the streamlined header code.
* style.c (virgule_render_footer_send): Removed reference to vr->raw,
removed unneeded insertion of a </div> tag, Removed unneeded call
to virgule_render_sitemap().
* style.c (virgule_render_sitemap): Removed references to the
unneeded vr->sitemap_rendered flag.
* req.h (_VirguleReq): Removed unused raw and sitemap_rendered flags
* mod_virgule.c (virgule_handler): Removed unused reference to
vr->sitemap_rendered flag.
2007-05-03 R. Steven Rainwater <[email protected]>
* proj.c (proj_new_serve, proj_edit_serve): Output is now rendered
within the default template.
* article.c (article_render_from_xml): Reddit submissions now
include the article title.
* article.c (article_form_serve): Output is now rendered within
the default template.
* article.c (article_generic_submit_serve): Output is now rendered
within the default template.
* article.c (article_reply_form_serve): Output is now render
within the default template.
* site.c (virgule_site_render_page): Removed code related to the
now unneeded distinction between standard and raw page headers.
* style.c (virgule_render_header): Removed this now unused function
along with a large block of hard-coded, site-specific header
markup for robots.net and Advogato. It's all in the templates now.
* style.c (virgule_render_header_raw): Renamed this function to
virgule_render_header().
2007-04-30 R. Steven Rainwater <[email protected]>
* acct_maint.c (account_index_serve): Account info page and account
login page are now template based. 100% of the login page markup is
now configurable in the template.
* diary.c (diary_index_serve, diary_preview_serve): Output is now
rendered within a template.
* diary.c (diary_edit_serve): Output is now rendered in a template.
Fixed several bugs dating back to the first diary editing patch, one
of which could potentially have been the cause of Apache segfaults.
2007-04-29 R. Steven Rainwater <[email protected]>
* site.c (site_render): Template tag replacement strings with NULL
values are now allowed.
* style.c (virgule_render_in_template): Templates are now rendered
even when no content is provided for them.
2007-04-25 R. Steven Rainwater <[email protected]>
* aggregator.c (aggregator_post_feed): Items with no content are
skipped rather than creating empty diary posts.
* style.c (virgule_send_error_page): Error pages are now rendered
using the default.xml template. All hardcoded markup has been removed.
An additional argument was added to allow reuse of this function for
informational messages as well as error messages. Replaced old-style
<tt> tags with <em> tags. The old-style look can be duplicated in CSS
if desired.
* style.c (virgule_render_header_raw): Now produces legal HTML even
if title is NULL.
* site.c (virgule_site_render_page): Improved handling of the page
title to allow for static title text in the template, title text
provided by mod_virgule, and combinations of the two if desired.
* tmetric.c (tmetric_index_serve): Replaced hardcoded output page
with an info page generated by virgule_send_error_page().
* rating.c (rating_crank, rating_crank_all): Replaced hardcoded
output pages with info pages genrated by virgule_send_error_page().
* rating.c (rating_report): Replaced hardcoded output with a
template based output page. The default.xml template is used.
* aggregtator.c (aggregator_getfeeds_serve): Replaced hardcoded
output with a template based page. Default.xml template is used.
2007-04-17 R. Steven Rainwater <[email protected]>
* aggregator.c (aggregator_index_atom_10): Fixed handling of ATOM
feed in which the entry containers have a <summary> tag but no
<content> tag. Also supported now are ATOM feeds which include
only an <updated> tag and not a <published> tag.
2007-04-09 R. Steven Rainwater <[email protected]>
* MAKEFILE: Changed -fPIC to -fpic. This may have been the cause of
a couple of segfaults, due to a conflict with the flag used to compile
Apache and/or libxml2 on some distros. The -fpic flag should be
correct on 99% of the platforms likely to be running mod_virgule.
* acct_maint.c (virgule_acct_touch): Added missing db lock calls.
* rss_export.c (rss_index_serve, rss_render_from_xml): Changed a few
xmlNewChild calls to xmlNewTextChild to assure proper entity escapes.
* site.c (virgule_site_send_banner_ad, virgule_site_render_banner_ad):
Removed these functions. They have been rendered unnecessary by the
newer general purpose include tag which allows external banner ad
management tools to be used.
* mod_virgule (virgule_handler): Fixed minor aliasing bug. Removed
call to virgule_site_send_banner_ad.
2007-04-07 R. Steven Rainwater <[email protected]>
* req.h: Added a temporary buffer for pre-rendering template data.
Also added a header buffer which allows additional page header
contents to be inserted easily. The old header buffer kluge that
passed strings through virgule_render_header() has been removed.
* mod_virgule (virgule_handler): Set the new buffer pointers
to NULL when initializing a request structure.
* style.c (virgule_set_temp_buffer, virgule_set_main_buffer): Added
functions to switch between the request buffer and the temp buffer
more easily. A temporary buffer is used when building pages that
will be rendered within a preloaded template. The main buffer is
used to render pages directly.
* style.c (virgule_render_in_template): Added a new function to handle
rendering an arbitrary page from a template. This collects some
duplicate code that was being used in several places and should
make things a little easier to maintain going forward.
* style.c (virgule_render_header_raw): If the header buffer is not
empty, its contents are inserted into the page header at this time.
* style.c (virgule_send_error_page): A page not found error string
is automatically added if the error code has been set to 404. This
eliminates the need for lots of duplicated static strings.
* acct_maint.c (acct_person_diary_serve): Replaced existing code
with the new template rendering functions.
* article.c (article_num_serve): Replaced existing code with the
new template rendering functions.
* buffer.c (virgule_buffer_size): Added function to return the
current size of a buffer.
2007-04-05 R. Steven Rainwater <[email protected]>
* acct_maint.c (acct_person_diary_rss_serve): Added memory allocation
check on XML document dump process to prevent segfaults.
* acct_maint.c (acct_flag_as_spam): Removed early free since the
normal pool cleanup occurs immediately afterwards anyway.
* rss_export.c (rss_index_serve): Added an additional error check
to the xml rendering process to prevent allocation error segfaults.
* db_xml.c (db_xml_free): Additional sanity check before optional
xmlFreeDoc calls that occur outside of normal APR pool life cycle.
Also removed an unused parameter from the function call throughout
the mod_virgule code.
* foaf.c (virgule_foaf_person): Handles accounts with no givenname
or surname in a safer fashion.
* tmetric.c (tmetric_run): Removed unneeded check for NULL value
before call to db_xml_free().
2007-03-30 R. Steven Rainwater <[email protected]>
* article.c (article_render_from_xml): Added some initial social
bookmarking support for Digg, del.icio.us, and Reddit.
* sample_db: Added PNG images for Digg, del.icio.us, and Reddit.
2007-03-21 R. Steven Rainwater <[email protected]>
* mod_virgule.c (info_page): Added a lot of additional diagnostic
info from the Apache thread private record structure. Also moved all
the diagnostic info into a nicely formatted table that's a lot easier
to read.
2007-03-19 R. Steven Rainwater <[email protected]>
* acct_maint.c (acct_person_diary_serve): Blog pages are now rendered
from a template (/site/person/diary.xml) instead of hard-coded HTML.
A sample diary.xml template was also added to the sample XML DB.
2007-03-15 R. Steven Rainwater <[email protected]>
* diary.c (virgule_diary_[store|update]_feed_item): These functions
are now able to deal with feed formats that carry the blog content
as unescaped XML trees. At least one Blogger ATOM feed uses this
method.
* util.c (virgule_sha1): Return an SHA-1 hash as a string. Accepts
input strings of arbitrary length. Based on the Apache APR SHA-1
implementation.
* mod_virgule.c (info_page): Added admin email and FOAF SHA-1 test.
* foaf.c (virgule_foaf_person): Added support for foaf:mbox_sha1sum
field (an SHA-1 hash string of the user's email address).
2007-03-08 R. Steven Rainwater <[email protected]>
* acct_maint.c (acct_newsub_serve): The password field is now a
required field on new accounts. The password is no longer allowed to
be the same as the username. The email field is now required. Also
removed some old debugging cruft from this function.
2007-03-07 R. Steven Rainwater <[email protected]>
* acct_maint.c (acct_person_serve): Account profile "extra junk"
error was replaced with a conventional 404 error.
Requests for invalid account names now return a 404 error as well.
FOAF autodiscovery header and FOAF image link now show only for
trusted users.
RSS autodiscovery header and RSS link now show only for trusted users
who have at least one blog post.
* acct_maint.c (acct_person_foaf_serve): FOAF files are served only
for trusted users. FOAF requests for untrusted users now generate a
404 error.
* acct_maint.c (acct_person_diary_rss_serve): RSS feeds are now
served only for trusted users with at least one blog post. RSS
requests for untrusted users or trusted users who have no blog
posts now generate a 404 error.
* diary.c (virgule_diary_exists): Added this function to test if
there are any posts in a diary.
2007-03-05 R. Steven Rainwater <[email protected]>
* article.c (article_submit_serve): Duplicate article rejection no
longer triggers on article edits of the most recently posted article.
* article.c (article_render_from_xml): Now displays the article
update timestamp for edited articles.
2007-02-24 R. Steven Rainwater <[email protected]>
* mod_virgule.c (read_site_config): Added support for articledays2edit
config value. This will determine the number number of days after
posting that an article remains editable by the author.
* article.c (article_render_from_xml): Added edit link to article
subtitle if viewed by the author within edit period.
2007-02-23 R. Steven Rainwater <[email protected]>
* article.c (virgule_article_serve): Added handler for edit function.
* article.c (article_edit_serve): Loads an existing article into the
editor. Only works for the original author and within a configurable
time period.
* article.c (article_generic_submit_serve): Added kludge to support
editing of existing articles, preservation of original article date,
and original article key value. This code is pretty nasty but no
worse than the rest of kludges piled on top of each other in here.
Functions like this one will be the first against the wall when the
revolution comes.
2007-02-21 R. Steven Rainwater <[email protected]>
* acct_maint.c (acct_person_serve): Toned down the certification
form description a bit.
2007-02-17 R. Steven Rainwater <[email protected]>
* site.c (site_render): Added userstats tag support.
* style.c (virgule_render_userstats): Added function to render the
new userstats.xml data as a simple table.
2007-02-16 R. Steven Rainwater <[email protected]>
* certs.c (virgule_cert_verify_outbound): Added this function to
verify and repair outbound certs when called by acct_maint().
Checks are performed for a variety of cert errors that are known to
have occured on mod_virgule sites due to file corrupt. Corruption
that cannot be repaired is reported through a return value for
manual attention.
* certs.c (virgule_cert_verify_inbound): Added this function to
verify and repair inbound certs when called by acct_maint().
2007-02-12 R. Steven Rainwater <[email protected]>
* acct_maint.c (acct_kill): Feedlist is only rewritten if a record
was removed for the deleted account. Blog feed buffer (feed.xml) is
removed during the account deletion process.
* acct_maint.c (acct_maint): Added new function to sequentially
check all user profiles for abnormalities. Unrecoverable problems
are reported for manual repair. Recoverable problems like asymmetric
certification are fixed automatically.
2007-02-09 R. Steven Rainwater <[email protected]>
* style.c (virgule_render_header_raw): Removed the ancient CSS hack
used to for pre Netscape 4 browsers. The number of additional hits
generated by the hack is no longer worth it for backwards
compatibility with a browser that's not used anymore.
2007-02-08 R. Steven Rainwater <[email protected]>
* style.c (virgule_render_date): Added seconds to the timestamp
rendering style used for RSS pubDate field. Props to
Wade Berrier <[email protected]> for noticing this bug.
2007-02-07 R. Steven Rainwater <[email protected]>
* mod_virgule.c: Removed some cruft and several test functions that
have gone unused for years.
* mod_virgule.c (info_page): Removed reference to count(), a test
function which is no longer used. Cleaned up and correct HTML. Added
additional diagnostics output.
2007-02-04 R. Steven Rainwater <[email protected]>
* site.c (site_render_recent_proj): Removed unneeded class from
recent project div wrappers. Assigning the class in the style sheet
is more flexible and results in smaller HTML.
2007-02-03 R. Steven Rainwater <[email protected]>
* foaf.c (virgule_foaf_person): Changed foaf:seeAlso to the
correct rdfs:seeAlso. Oops. (thanks to Morten Frederiksen for
pointing out the bug).
2007-02-02 R. Steven Rainwater <[email protected]>
* foaf.c (virgule_foaf_person): More FOAF changes (thanks go to
Richard Cyganiak, Benjamin Nowack, Andreas Harth and Danny Ayers).
Output should now work better with RDF applications like Tabulator
and Disco. Projects are now converted to document references
instead of foaf:Project records, which should be more consistent
with the latest interpretations of the FOAF 0.1 spec.
* acct_maint.c (acct_person_serve): Normalized and corrected the
HTML used to describe a user's projects on the profile page. Added
a FOAF badge and link.
2007-02-01 R. Steven Rainwater <[email protected]>
* foaf.c (virgule_foaf_person): Refactored the code a bit to move all
the FOAF-specific code into its own file. This should make things
easier down the line if we add FOAF files for the projects. Added a
number of additional new properties to the FOAF output and made some
minor corrections to the syntax based on feedback from the foaf-dev
mailing list.
* acct_maint.c (acct_person_foaf_serve): This now just a wrapper for
for virgule_foaf_person that render the returned XML document.
2007-01-30 R. Steven Rainwater <[email protected]>
* acct_maint.c (acct_person_foaf_serve): Added foaf:knows properties
for each outbound cert in a user's profile. Added foaf:Project
properties for each project associated with the user.
2007-01-29 R. Steven Rainwater <[email protected]>
* rating.c (virgule_rating_serve): Changed the diary (blog) ranking
crank URL from /rating/crank.html to /admin/crank-diaryrating.html
to move it to a password protectable area where it can't be abused.
* aggregator.c (virgule_aggregator_serve): Changed aggregator crank
URL from /aggregator/getfeeds.html to /admin/crank-aggregator.html
to move it to a password protectable area where it can't be abused.
2007-01-28 R. Steven Rainwater <[email protected]>
* acct_maint.c (acct_person_serve): Added FOAF auto-discovery URL
to the account profile page head section.
* acct_maint.c (acct_person_foaf_serve): Added name, nick, homepage,
and weblog tags to FOAF file.
* mod_virgule (info_page): renamed from test_page() and changed the
URL to /admin/info.html from /foo.html. This will allow the URL to be
added to a general password protected admin area of the site. The
info page exposes diagnostsic information that would be helpful to
script kiddies and crackers.
* mod_virgule (virgule_handler): Reordered dispatching sequence to
put administration and less used handlers last. Highly used handlers
such as RSS, articles, and diaries are now first. This should provide
a (very) small performance improvement.
* tmetric.c (virgule_tmetric_serve): Changed the trust metric crank
URL from /tmetric/ to /admin/crank-tmetric.html to move it to a
password protectable area where it can't be abused.
2007-01-27 R. Steven Rainwater <[email protected]>