According to Geoff Hutchison:
> I requested a copy of the source from Tenon Intersystems' version of 
> ht://Dig that they package for their "iTools" product that runs on 
> MacOS X and now LinuxPPC--of course the latter is simply a version of 
> the RPM.
> 
> Anyway, here's where you can get the source:
> http://iris2.sysci.org/tenon/htdig-3.1.2.src.itools.osx.tar.gz
> 
> Beware, they include the binaries as well as an uncompressed tar of 
> the binaries! It's really big.
> 
> I haven't had a chance to do a comparison between the trees, but it 
> is actually based on 3.1.2--their WebTen version of ht://Dig, which 
> is also named '3.1.2' was 3.1.0b2 last time I checked.
> 
> I won't do any sort of merge for the 3-1-x tree, but I assume people 
> would like me to merge in any changes for the 3-2-x tree? Since Mac 
> OS X Server is based on BSD, I'd be interested to see what changes 
> they made.

As far as I can tell, all you'd have to do is apply the patch below, and
configure using "./configure --prefix=/Local/Library/WebServer/htdig".
The patch applies to 3.1.4, and should apply to the upcoming 3.1.5
as well.  It's a pretty simple patch, but not exactly clean, as they
never bothered with declarations for the my*() functions and let the
compiler assume int for everything.  I think a cleaner approach would
be to rename the method names that conflict with the socket library
functions, so that you can do away with the "::" overrides, and add a
test in the autoconf stuff for sys/malloc.h as well as malloc.h.  Come
to think of it, why use malloc.h at at all?  DB2_db::db_init() uses
calloc() to allocate and clear a DB_ENV object, but it should probably
use "new" and memset() instead, then you can do away with malloc.h.

--- htdig-3.1.2/htlib/Connection.cc     Wed Apr 21 21:47:58 1999
+++ htdig-3.1.2.itools.osx/htlib/Connection.cc  Sun Jun  6 22:16:41 1999
@@ -144,7 +144,7 @@ int Connection::close()
     connected = 0;
     if (sock >= 0)
     {
-       int ret = ::close(sock);
+       int ret = myclose(sock);
        sock = -1;
        return ret;
     }
@@ -228,10 +228,10 @@ int Connection::connect(int allow_EINTR)
 
     for (;;)
     {
-       status = ::connect(sock, (struct sockaddr *)&server, sizeof(server));
+       status = myconnect(sock, (struct sockaddr *)&server, sizeof(server));
        if (status < 0 && errno == EINTR && !allow_EINTR)
        {
-           ::close(sock);
+           myclose(sock);
            open();
            continue;
        }
@@ -251,11 +251,11 @@ int Connection::connect(int allow_EINTR)
        // to close the socket and create a new one in order to do any
        // more with it.
        //
-       ::close(sock);
+       myclose(sock);
        open();
     }
 #else
-    ::close(sock);
+    myclose(sock);
     open(0);
 #endif
 
@@ -269,7 +269,7 @@ int Connection::connect(int allow_EINTR)
 //
 int Connection::bind()
 {
-    if (::bind(sock, (struct sockaddr *)&server, sizeof(server)) == NOTOK)
+    if (mybind(sock, (struct sockaddr *)&server, sizeof(server)) == NOTOK)
     {
        return NOTOK;
     }
@@ -297,7 +297,7 @@ int Connection::get_port()
 //
 int Connection::listen(int n)
 {
-    return ::listen(sock, n);
+    return mylisten(sock, n);
 }
 
 
@@ -310,7 +310,7 @@ Connection *Connection::accept(int priv)
 
     while (1)
     {
-       newsock = ::accept(sock, (struct sockaddr *)0, (GETPEERNAME_LENGTH_T *)0);
+       newsock = myaccept(sock, (struct sockaddr *)0, (GETPEERNAME_LENGTH_T *)0);
        if (newsock == NOTOK && errno == EINTR)
            continue;
        break;
--- htdig-3.1.2/htlib/DB2_db.cc Wed Apr 21 21:47:58 1999
+++ htdig-3.1.2.itools.osx/htlib/DB2_db.cc      Sun Jun  6 22:16:55 1999
@@ -44,7 +44,7 @@ static char RCSid[] = "$Id: DB2_db.cc,v 
 #include <errno.h>
 #include <stdlib.h>
 #include <fstream.h>
-#include <malloc.h>
+#include <sys/malloc.h>
 #include <unistd.h>
 
 // Where do I need this for? I don't know.
--- htdig-3.1.2/htlib/Makefile.in       Wed Apr 21 21:47:58 1999
+++ htdig-3.1.2.itools.osx/htlib/Makefile.in    Sun Jun  6 22:13:20 1999
@@ -16,6 +16,7 @@ OBJS= Configuration.o Connection.o Datab
                URL.o URLTrans.o cgi.o \
                good_strtok.o io.o strcasecmp.o \
                strptime.o mytimegm.o HtCodec.o HtWordCodec.o \
+               myconnection.o mywrite.o \
                HtURLCodec.o regex.o HtWordType.o
 
 TARGET=                libht.a
--- htdig-3.1.2/htlib/String.cc Wed Apr 21 21:47:58 1999
+++ htdig-3.1.2.itools.osx/htlib/String.cc      Sun Jun  6 22:10:13 1999
@@ -198,7 +198,7 @@ int String::write(int fd) const
        
     while (left)
     {
-       int result = ::write(fd, wptr, left);
+       int result = mywrite(fd, wptr, left);
                
        if (result < 0)
            return result;
--- htdig-3.1.2/htlib/myconnection.c    Sun Jun  6 22:00:00 1999
+++ htdig-3.1.2.itools.osx/htlib/myconnection.c Sun Jun  6 22:16:31 1999
@@ -0,0 +1,24 @@
+myconnect( sock,addr,len )
+{
+       return( connect(sock,addr,len ) );
+}
+
+mybind( sock,addr,len )
+{
+       return( bind( sock,addr,len ) );
+}
+
+mylisten( sock,n )
+{
+       return( listen(sock,n) );
+}
+
+myaccept( sock,addr,len )
+{
+       return( accept(sock,addr,len) );
+}
+
+myclose( n )
+{
+       return( close(n) );
+}
--- htdig-3.1.2/htlib/mywrite.c Sun Jun  6 22:00:00 1999
+++ htdig-3.1.2.itools.osx/htlib/mywrite.c      Sun Jun  6 22:13:03 1999
@@ -0,0 +1,4 @@
+mywrite( fid,buf,cnt )
+{
+       return( write( fid,buf,cnt ) );
+}

-- 
Gilles R. Detillieux              E-mail: <[EMAIL PROTECTED]>
Spinal Cord Research Centre       WWW:    http://www.scrc.umanitoba.ca/~grdetil
Dept. Physiology, U. of Manitoba  Phone:  (204)789-3766
Winnipeg, MB  R3E 3J7  (Canada)   Fax:    (204)789-3930

------------------------------------
To unsubscribe from the htdig3-dev mailing list, send a message to
[EMAIL PROTECTED] 
You will receive a message to confirm this. 

Reply via email to