Finally strung CAT5 to the basement and bought one of those
linksys DSL routers (Yeah I know I could do it with a spare
linux box, but I didn't really want a box on upstairs 24x7,
and her office where the DSL line comes in is crowded
already). The linksys is working pretty nicely.
I'm getting about 620kbps transfer rate off the supposedly
784k DSL line, but by the time you factor in IP overhead
it's probably about right.
Released FreeTDS 0.51 this week. So far so good. Need to
automagically find the 16 and 32 bit types for the platform
it's built on. inttypes.h provides them on many platforms,
but not all and where they are defined seems to vary a
bit. glib using some sizeof macros to do it, so I'm
probably going to follow that unless anyone has a better
idea.
Also been working on a TDS based connection pool program.
It works like this. Let's say you have a 10 CAL license for
MS SQL Server and want to use Apache/PHP to pull data from
the server. Now most likely you'll have many apache
children (in a heavy traffic site anyway), more than the
number of CALs you have. And more often than not they will
not be querying the database at any particular time. So
what to do? buck up for a 50 CAL license? pricey.
The TDS Connection Pool sits between the Database and the
PHP (or whaterver) clients. It acts like a MS SQL Server,
a client logs in and gets a forged login acknowledgement and
thinks it connected. Meanwhile the pool maintains a group
of logins to the real dataserver and when a client sends a
query, it allocates a connection, forwards the query,
forwards the response back to the client and then returns
the connection to the pool. This has the additional
advantage that the client-to-pool connection is very quick
compared to the long connect time to the real dataserver, so
you get the advantage of persistant connections without the
disadvantages of having one connection per Apache child like
PHP.