That doesn't look quite right either.  The FreeBSD manpages show timezone to be a function, whereas on other platforms it is an integer.

For the moment I recommend that you zero out clientTimeZone->bias in your defined(__FreeBSD__) case.  If you like you can take a try at calculating the right bias value, but I have some time zone improvements pending that may obsolete this calculation.