Skip to Content.
Sympa Menu

freetds - Re: [freetds] connection, login, socket, sessions and more!

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "James K. Lowden" <jklowden AT freetds.org>
  • To: freetds AT lists.ibiblio.org
  • Subject: Re: [freetds] connection, login, socket, sessions and more!
  • Date: Sat, 21 May 2011 14:05:24 -0400

On Fri, 20 May 2011 11:44:53 +0200
Frediano Ziglio <freddy77 AT gmail.com> wrote:

> 1)
> - move additional fields from TDS_CONNECTION to TDS_LOGIN and use
> TDS_LOGIN for all
> - add a new TDS_CONNECTION structure
>
> 2)
> - rename TDS_SOCKET to TDS_SESSION
> - add a new TDS_SOCKET structure
>
> 3)
> - move additional fields from TDS_CONNECTION to TDS_LOGIN and use
> TDS_LOGIN for all
> - rename TDS_SOCKET to TDS_SESSION
> - add a new TDS_SOCKET structure

Thanks for taking the time to think this through and discuss it. Some
of this stuff is very old and has evolved away from the original
ideas.

The minimal change would be a new TDS_MARS struct:

typedef struct tds_mars {
/* MARS fields */
} TDS_MARS;

struct tds_socket {
/* unchanged, except */
TDS_MARS** mars;
};

Isn't that enough?

Following Microsoft's terminology, we might call it TDS_SMUX or
TDS_MCSMP instead.

What "additional fields" do we need for TDS_MARS?

>From a quick scan of
[MC-SMP].pdf
(http://download.microsoft.com/download/B/0/B/B0B199DB-41E6-400F-90CD-C350D0C14A53/%5BMC-SMP%5D.pdf)
it looks like a TCP tunnel: SID, state, window size, last received, last
acknowledged, etc.

> Also TDS_SOCKET reminds too much a physical connection.

MARS doesn't change the number of "physical" connections. There's
still exactly *one* TCP socket, with N MARS "SID" session IDs, where N
>= 1 for a connected socket.

> > - move additional fields from TDS_CONNECTION to TDS_LOGIN
> > and use TDS_LOGIN for all
> > - add a new TDS_CONNECTION structure

I would like to *remove* TDSCONNECTION, and use only TDSLOGIN.

I suggest:

1. Add TDS_MARS (or other name) per above.
2. Remove TDSCONNECTION; move fields to TDSLOGIN.
3. (option) rename TDSSOCKET to TDSCONNECTION.

"Session" is not a technical networking term. In English, we "open a
connection"; in Unix the result of connect(2) or accept(2) is a
connection. I would reserve "session" for server-side settings,
"session properties", things like ANSI_DEFAULTS.

Regards,

--jkl




Archive powered by MHonArc 2.6.24.

Top of Page