I found a bug in the check for old remote time stamps.  I found it by modifying fwknopd to show the "local" time and the remote time when it throws a "remote time stamp" message.  The results are below:

Wed Sep 24 11:09:18 2008 [-] remote time stamp is older than 120 second max age. local: 1222268958, remote: 1222272559, diff: 3601

You can see that the timestamp of the log message is around 11:09am, the "local" timestamp given by perl's time() function is around 10:09am, and that of the remote system is around 11:09am. 

The time() function shouldn't be used here because local time is needed.  localtime() gives the intended result, it just needs to be converted to a Unix timestamp.