pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/mail/prayer

Module Name:    pkgsrc
Committed By:   schnoebe
Date:           Thu Jun 30 01:17:39 UTC 2011

Modified Files:
        pkgsrc/mail/prayer: Makefile distinfo
Added Files:
        pkgsrc/mail/prayer/patches: patch-defaults_Config patch-files_Makefile
   patch-lib_os.c patch-lib_os__bsd.h
            patch-man_Makefile patch-servers_Makefile patch-utils_Makefile
Removed Files:
        pkgsrc/mail/prayer/patches: patch-aa patch-ab patch-ac patch-ad
            patch-ae patch-af patch-ag patch-ah patch-ai patch-aj patch-ak

Log Message:
Update to 1.3.4;

`$Cambridge: hermes/src/prayer/docs/DONE,v 1.66 2011/06/27 13:39:56 dpc22 Exp $


Release: Prayer 1.3.4


draft.c fixes:
 Fold long lines of addresses before the entry which reaches 78 characters
 when possible, rather than after the first entry which crosses that
 boundary. Long standing bug bear of mine but several support functions
 needed to be rewritten to use scratch string in place of output buffer.

 Long subject lines which are not RFC1522 encoded need to be folded.
 separately. Reported by Andrey N. Oktyabrski <>.

 RFC1522 is not allowed to fold lines in the middle of a UTF-8 multibyte
 character. Reported by Andrey N. Oktyabrski <>.

Tidy library:
  Add support for tidyp fork of (apparently abandoned) tidy library.

Fix cross site scripting problem:
  MSIE and Chrome think that <!---> is a complete comment. Allows people to
  hide scripts inside <!---><script>...<!--->. Strip all comments (which is
  something that the old sanitiser had been doing already)

Sieve blocks should check "From: " address in body as well as
envelope sender address. Check "Sender: " as well for completeness.

Linux needs IPPROTO_IPV6 to bind to '' and '::'


Mike Brudenell <> reported problem with RFC
2183/RFC 2231 quoting with vey long filenames, or filenames with strange
characters from ASCII range.


Release: Prayer 1.3.3


Better handling of complex multipart messages:

 Rather than just displaying the first text/plain or text/html that we can
 find in the top, (leaving people to access sections for the other parts),
 display the entire tree: multipart/alternative are handled as before, but
 with other multipart messages, recurse into the subtrees and repeat. Given:

   1   (Nested multipart)
   1.1 text/html
   1.2 text/plain
   2   text/plain

 we display sections 1.1 and 2. Previously we would display section 2,
 which is a bit of a disaster if section (1) was the original message and
 a listserver has helpfully tagged on a message footer as a separate bodypart

Combine os_*.c back into a single file (which is where I started off
many years back). Eliminates lots of repeated code.



os_bind_inet_socket(unsigned long port, char *interface)

  If interface resolves to multiple IP addresses then only binds to the
  first. Should really walk along ai->ai_next and bind to each IP address
  in turn. Unfortuanetly this means that os_bind_inet_socket() needs to
  return an array of sockfds rather than a single int. Parent routines
  probably aren't going to play ball either.

  Most likely cause will be a hostname which generates both IPv4 and IPv6
  addresses. Unfortanately it is a probably that we are going to have
  to solve eventually.


Fix XSS problems reported by:
  Jacob H. Hilton <>
  Dr Andrew C Aitchison <>

  Rather than trying to spot dangerous tags by simple substring matching in C,
  I now feed the html through Tidy library (,
  and then prune unwanted nodes from the parse tree before setting it to
  the pretty printer. The only problem is that the Tidy library doesn't
  provide any public API for manipulating the parse tree (although it does
  provide a public API for walking the tree!?), so I had to dig around to
  find the private functions required to remove and manipulate nodes.

  Javascript embedded into CSS is also a problem: I need to strip off CSS
  character entities before looking for dangerous expressions. The final
  part is still a simple string match: I hope that I don't end up having to
  generate parse trees for CSS as well as the HTML.

  Now passes full test suite at:

Better vacation screen
  Subject line

Coping with multiple logins as single user from single browser:
  SessionID stored in HTTP Cookie: second login blats first
    Can store SessionID in URL (Prayer does this if no cookies available)
    Not secure: leaks in HTTP "Referrer" header with links from HTML email.
  Solution: Use HTTP Cookie keyed by PID of login session.

Smaller cleanups:
  Improve gap between words in spell check (Cambridge house style)
  Remove extra blank lines after postpone, restore cycle.

To generate a diff of this commit:
cvs rdiff -u -r1.40 -r1.41 pkgsrc/mail/prayer/Makefile
cvs rdiff -u -r1.14 -r1.15 pkgsrc/mail/prayer/distinfo
cvs rdiff -u -r1.2 -r1.3 pkgsrc/mail/prayer/files/
cvs rdiff -u -r1.10 -r0 pkgsrc/mail/prayer/patches/patch-aa
cvs rdiff -u -r1.5 -r0 pkgsrc/mail/prayer/patches/patch-ab \
cvs rdiff -u -r1.6 -r0 pkgsrc/mail/prayer/patches/patch-ac \
cvs rdiff -u -r1.7 -r0 pkgsrc/mail/prayer/patches/patch-af
cvs rdiff -u -r1.3 -r0 pkgsrc/mail/prayer/patches/patch-ag
cvs rdiff -u -r1.2 -r0 pkgsrc/mail/prayer/patches/patch-ah \
cvs rdiff -u -r1.1 -r0 pkgsrc/mail/prayer/patches/patch-aj \
cvs rdiff -u -r0 -r1.1 pkgsrc/mail/prayer/patches/patch-defaults_Config \
    pkgsrc/mail/prayer/patches/patch-files_Makefile \
    pkgsrc/mail/prayer/patches/ \
    pkgsrc/mail/prayer/patches/patch-lib_os.c \
    pkgsrc/mail/prayer/patches/patch-lib_os__bsd.h \
    pkgsrc/mail/prayer/patches/patch-man_Makefile \
    pkgsrc/mail/prayer/patches/patch-servers_Makefile \

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Home | Main Index | Thread Index | Old Index