diff -u -p src/pfpng.c.orig src/pfpng.c --- src/pfpng.c.orig Tue Jun 24 15:41:46 2003 +++ src/pfpng.c Tue Aug 24 19:41:41 2004 @@ -57,6 +57,8 @@ lib_png_sig_cmp *dl_png_s void * open_png_library (void) { + if (dl_handle_libpng) + return (void *)dl_handle_libpng; dl_handle_libpng = dlopen ("libpng.so", RTLD_LAZY); if (dl_handle_libpng) { @@ -116,8 +118,12 @@ open_png_library (void) void close_png_library (void) { - if (dl_handle_libpng) +#if 0 + if (dl_handle_libpng) { dlclose (dl_handle_libpng); + dl_handle_libpng = NULL; + } +#endif return; } Index: src/pipsCom.c diff -u -p src/pipsCom.c.orig src/pipsCom.c --- src/pipsCom.c.orig Tue Jun 24 15:41:46 2003 +++ src/pipsCom.c Tue Aug 24 23:38:06 2004 @@ -56,9 +56,13 @@ connect_server (char *host) if (!servinfo) return -1; sockfd = socket (AF_INET, SOCK_STREAM, 0); + memset(&address, 0, sizeof(address)); address.sin_family = AF_INET; address.sin_addr = *(struct in_addr *)*hostinfo->h_addr_list; address.sin_port = servinfo->s_port; +#ifdef __FreeBSD__ + address.sin_len = sizeof(address); +#endif len = sizeof (address); if (connect (sockfd, (struct sockaddr *)&address, len) == -1)