Table of Contents
Services
Synchronet Services1) are loadable modules or external executables designed to be loaded by the Synchronet Services Server to service a particular TCP or UDP protocol for remote client connections. Synchronet Services are similar in concept to UNIX's [x]inetd services.
Service Types
There are four types of services currently supported:
- Dynamic JavaScript (the most common service type)
- Static JavaScript (e.g. the IRC Daemon)
- Dynamic Native
- Static Native
JavaScript Services
Additional methods and properties available to Synchronet Services written in JavaScript:
Properties
Property | Type | Description |
---|---|---|
logged_in | boolean | Indication if user has successfully authenticated or not |
datagram | string | Contents of received UDP datagram (when applicable) |
Methods
Along with the common global methods, JavaScript services include support for the following methods:
Method | Returns | Usage | Description |
---|---|---|---|
login | boolean | login(user, password [,increment_logins=false]) | Attempt to authenticate as specified user (name or number) |
logout | boolean | logout() | Logout currently authenticated user |
server.client_add | void | server.client_add(Socket, [user], [host]) | Register client based on specified socket connection, with optional username and hostname |
server.client_update | void | server.client_update(Socket, [user], [host]) | Update client based on specified socket connection, with optional username and hostname |
server.client_remove | void | server.client_remove(Socket) | Unregister client based on specified socket connection |
Configuration
Services are normally configured via the services.ini
file in the ctrl
directory with some global settings controlled via the [Services]
section of the sbbs.ini
file.
Some static services (e.g. the IRC Daemon) may alternatively be executed independently of the Services Server using JSexec.