Major new ubiqx release

Christopher R. Hertel crh at NTS.Umn.EDU
Wed Apr 22 15:44:38 GMT 1998


> If I may make a suggestion...
> When you start looking at schema, look at existing ones, such as
> the ones used for LDAP, and MS Active Directory, and Novell's NDS.
> All of them are based (some more tightly than others) on the X.500
> schema.

I think that this is thinking at a much higher level than is necessary.  
Let me provide an example...

In the WINS database we have the following:

             /  NetBIOS Name
Key         <   NetBIOS Name Type
             \  NetBIOS Scope

              / Flags
             /  Name Source
Base Record <   Refresh Time
             \  Death Time
              \ List of IP addresses for this name

This is the content of the current record structure.  There may be other 
values that would be useful, but I'm going to claim that that's not 
important now.  We can work with what we have.

If I want to share this information with, say, Oracle, I would probably
define two tables.  The first would store everything listed above *except*
the list of IPs, and the second table would have that list.  I would 
probably need to include the Key fields in both tables so that I could 
form the relationship between the two tables.

Doing this via an X.500 - modeled database is easier since those are 
hierarchical and I can simply make the name record a container which 
would contain all of the IP records.

The point is:  We'd create a schema in the external database that would 
               handle Samba's data.  That's the proper place to do the
               adaptations.

So, my goal is to write code for Samba that makes it reasonably easy to
build connections between Samba and the outside world.  How the outside 
handles the information that it gets from (or gives to) Samba is mostly
beyond scope.

I'm thinking that I could create a replacable IPC module.  The default
might be a TCP/IP socket but variations could include named pipes, Unix
domain sockets, an AREXX port on Amiga (yes, Samba runs on Amiga), and
something else on a VAX.  Which tube you use would be a compile-time 
decision.

The information running across that tube is the interesting part.  In
addition to database back-ends and X.500/LDAP type stuff I'd like to see a
command line interface.  That in mind, we need some sort of (hopefully
simple) protocol for this communication stream.  I'm wondering if any of
the protocols we currently implement will apply.  If so, we could reduce
code a bigbunch. 

For WINS, I basically need to be able to:

  - Query the WINS list for one name or a set of names.
  - Sequential traversal through the list.
  - Insert or update a list entry.  (This will require that there be some
    form of security on the list.  I like the idea of *not* using a 
    TCP/IP socket for this I/O because I wouldn't want the whole Internet 
    to be able to access my control port.)

We also need to think of the other databases that Samba manages:  Browse 
list, configuration, passwords (eek!), etc.

Thoughts?

Chris -)-----

--
Christopher R. Hertel -)-----                   University of Minnesota
crh at nts.umn.edu              Networking and Telecommunications Services


More information about the samba-technical mailing list