Index: ekpd/cbtd.c diff -u -p ekpd/cbtd.c.orig ekpd/cbtd.c --- ekpd/cbtd.c.orig Tue Jun 24 15:22:12 2003 +++ ekpd/cbtd.c Tue Aug 24 19:41:40 2004 @@ -293,3 +293,14 @@ end_epson_cbt (P_CBTD_INFO p_info) return err; } + +#ifdef __FreeBSD__ + +void +__assert_fail(const char *assertion, const char *file, unsigned int line, + const char *function) +{ + abort(); +} + +#endif Index: ekpd/cbtd_comserv.c diff -u -p ekpd/cbtd_comserv.c.orig ekpd/cbtd_comserv.c --- ekpd/cbtd_comserv.c.orig Tue Jun 24 15:22:12 2003 +++ ekpd/cbtd_comserv.c Tue Aug 24 23:37:04 2004 @@ -591,9 +591,16 @@ servsock_open (int port) fd = socket (AF_INET, SOCK_STREAM, 0); if (fd < 0) return -1; + memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_addr.s_addr = htonl (INADDR_ANY); addr.sin_port = htons (port); +#ifdef __FreeBSD__ + addr.sin_len = sizeof(addr); +#endif +#if !defined(MSG_NOSIGNAL) && defined(SO_NOSIGPIPE) + setsockopt(fd, SOL_SOCKET, SO_NOSIGPIPE, &opt, sizeof(opt)); +#endif bind (fd, (struct sockaddr *)&addr, sizeof (addr)); setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof(int)); listen (fd, 5); @@ -611,7 +618,11 @@ sock_read (int fd, char* buf, int read_s for (i = 0; i < SOCK_ACCSESS_WAIT_MAX; i++) { +#ifndef MSG_NOSIGNAL + size = recv (fd, buf, read_size, MSG_DONTWAIT); +#else size = recv (fd, buf, read_size, MSG_NOSIGNAL | MSG_DONTWAIT); +#endif if (size == read_size) { return 0; @@ -641,7 +652,11 @@ sock_write (int fd, char* buf, int write for (i = 0; i < SOCK_ACCSESS_WAIT_MAX; i++) { +#ifndef MSG_NOSIGNAL + size = send (fd, buf, write_size, MSG_DONTWAIT); +#else size = send (fd, buf, write_size, MSG_NOSIGNAL | MSG_DONTWAIT); +#endif if (size == write_size) { fsync (fd); Index: src/pfpng.c