Our many thanks to Mats Mattsson for taking the time
to do the initial re-write of the protocol spec, I haven't had a lot of time to do it
recently. Any questions about the protocol or ODS server workings can be
emailed to Scott
|
ODS Protocol by Mats Mattson, revised by
Scott Taggart
Last updated: Sunday 3rd November 2002
Clients should connect to ODS via the hostname update.ods.org on port
7070 (tcp) for unencrypted communications or port 7071 (tcp) for
encrypted communications via a SSH Tunnel (stunnel)
All queries should be directed to Scott
Other administrative commands are not listed here |
| Command |
Login Required |
Description |
Return codes |
| <connection opened> |
No |
Session welcome message |
100 Open Domain Server <version> <OS> <time/date>. |
| <command timeout> |
No |
No commands have been sent for 300 seconds -
Disconnected |
000 Your session has timed out. closed |
| <unknown command> |
No |
Invalid command |
None |
| ADDRR <host> A|AAAA|CNAME <target>[:TTL] |
Yes |
Will add an A/AAAA/CNAME record. A points to an
IPv4 address, AAAA points to IPv6 addresses (see notes below about format) and CNAME points to a
valid hostname. The TTL value is how long the host will be cached in the DNS
servers compliant with standards, default is 180 seconds. Note: a target of CONNIP for an A record will add your connecting
IP address as target |
300 Host owned by another user
300 TTL out of range
300 Not logged in
400 Illegal input - disconnected
795 RR successfully added |
| ADDRR <host> MX <target>[:priority] |
Yes |
Will add an MX record, a mail relay record for
your hostname. The mailer will try the servers with small priority numbers
first, if equal it will try a random server |
300 Priority out of range
300 Host owned by another user
300 Not logged in
400 Illegal input - disconnected
795 RR successfully added |
| ADDRR <host> NS <target> |
Yes |
Will add an NS record, a nameserver record |
300 Host owned by another user
300 Not logged in
400 Illegal input - disconnected
795 RR successfully added |
| ADDUSER <username> <password> <e-mail> <firstname> <lastname> |
No |
Will add the specified user/password if possible |
210 User successfully added 300 An error
occurred: <error message> |
| CHPASS <new-pass> <repeat-pass> |
Yes |
Changes password for current user |
220 Password successfully changed
300 Passwords do not match |
| DELRR <host> [A|AAAA|MX|NS <target>[:priority/ttl]] |
Yes |
Will delete a DNS record. Just specifying host will delete the first A record matching. When
deleting MX records you need to specify the priority,
you need to specify TTL's for records with a TTL also |
300 Domain for host not found
300 RR not found
901 RR successfully deleted |
| DELUSER <username> <password> |
Yes |
Will delete the specified user |
300 Unknown, Not logged in
520 User successfully deleted
- disconnected520 Delete user failed - disconnected |
| DOMAINS |
No |
Lists the available domain names. 181 and 182
responses are multilined based on how many domains there are |
180 -- PUBLIC DOMAINS -- 180 <public domains>
181 -- PRIVATE DOMAINS --
182 <private domains>
189 -- END OF LIST -- |
| FINGER <username> |
No |
Returns some info about the user |
160 -- FINGER USER -- 160 Username: <user> 160 Email: <e-mail> 160 Name: <name> 160 -- END FINGER USER --
300 User not found |
| HELP |
No |
Will list the commands you are able use at the moment (some errors though). The list depends of if you are logged in or not. Response is multilined |
110 -- HELP -- 110 <command> [parameters] 110 -- END HELP -- |
| LOGIN <username> <password> |
No |
Will log you in with your username and password |
225 Login successful 520 Login failed closed |
| LISTRR |
Yes |
Will list all current records in the database for
that user. Response is multilined based on number of records |
150 -- HOSTS -- 150 <hostname> <record_type> <target[:ttl/priority]> 150 -- END of RR LIST -- |
| QUIT |
No |
Will end the session |
299 Goodbye |
| STATS |
No |
Will print current information of the server |
130 ODS has n/n active/users, n RRs, n/n private/domains |
| VERSION |
No |
Will return with information of the current server software
version. Multilined |
120 <version info, a few lines> 120 -- MODULE VERSION STATUS -- 120 <module version, etc> 120 -- END MODULE VERSION STATUS -- |
| WHOAMI |
No |
Returns your username |
140 Logged in as <user> 300 Unknown, Not logged in |
| WHOIS <hostname> |
No |
Prints information about the specified hostname. Response is one error line or multilined |
170 -- WHOIS INFORMATION -- 170 Hostname: <hostname> 170 Owner Username: <user> 170 Owner Email: <e-mail> 170 Owner Fullname: <name> 170 -- END WHOIS --300 Domain for host not found |
Note on IPv6 format: You must use a '.' instead of a
':' as a delimiter
in the IPv6 addresses when adding. Also every hextet must have a
hexadecimal value in it. For example:
3ffe.c00..1 is invalid.. You must do 3ffe.c00.0.0.0.0.0.1