# Resource Management and Ports

A key aspect of DLG for the advanced sysop is that of Resource Management. DLG incorporates a special module, called ResMan, to manage all resource tracking, allocation, and recovery. Specific resources that are managed by ResMan include file and message areas, ports, menus, and named resources.

For example, whenever a user enters a message area, the messaging module first asks ResMan if the area is locked. If it is not, then ResMan is told that an additional user is now in the area. If another program tries to lock that message area later, it is denied the lock because there is a user in the area. The lock will pend until the user leaves, then it will be granted.

Named resources are a powerful semaphore system that can be used by any program or script to control handshaking between more than one process. For example, you might want to keep UUCP from calling out while you are processing mail. You could lock a named resource "UUCP" and release it when you were done with your processing. Meanwhile, your UUCP script could check to see if that named resource was locked, and if not, call out for mail.

Possibly the most important resource controlled by Resman, however, are Ports. A port> is an entry point into a DLG BBS. On the basic DLG installation, you will have exactly two ports active, one remote for external callers to use, and one local for your own use.

Ports can be configured to use just about anything to interface your BBS to users. Remote ports generally use one serial device or another, while local ports use `console.device` to link you to your BBS. You may also use network devices, as long as they support bidirectional communications, such as telnet devices.

You may configure as many remote ports as you desire, one for each modem entry point into the system, and as many local ports as desired as well. Remote ports are referred to by a three-character name, with the first two being "TR" and the last being a port number, such as "TR0" for the first remote port (the system default). "TL" ports are local only. You may use any other character for the second character with remote devices, such as "TN0" for a network connection, or "TT0" for a telnet connection.

Some configuration actions you perform as a sysop will affect all ports equally, while others are restricted to certain ports. For example, you can restrict access to a certain line of your BBS by access level. It is quite possible to create radically different presentations for different ports.