NexWhoisD Code
Status: Beta
Brought to you by:
cyber_eagle
File | Date | Author | Commit |
---|---|---|---|
LICENSE | 2008-01-19 | cyber_eagle | [r1] Initial release of v0.1_beta. |
Makefile | 2008-01-19 | cyber_eagle | [r1] Initial release of v0.1_beta. |
NOTICE | 2008-01-19 | cyber_eagle | [r1] Initial release of v0.1_beta. |
README | 2008-01-19 | cyber_eagle | [r1] Initial release of v0.1_beta. |
nexwhoisd.c | 2008-01-19 | cyber_eagle | [r1] Initial release of v0.1_beta. |
nexwhoisd.conf | 2008-01-19 | cyber_eagle | [r1] Initial release of v0.1_beta. |
structure.sql | 2008-01-19 | cyber_eagle | [r1] Initial release of v0.1_beta. |
NexWhoisD v0.1_beta ------------------------------------------------------------------------ Copyright 2008 Matthew Hillman Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ------------------------------------------------------------------------ Project Homepage: http://sourceforge.net/projects/nexwhoisd 1. Important Note 2. Prerequisites 3. Building 4. Installing 5. Configuration 6. Running 7. Known Issues and Beta Limitations 8. Record Type Reference 9. Tips 1. Important Note: This software is BETA and as such no guarantees can be made as to its stability, though every effort has been taken in design and basic testing to ensure the code is fairly secure and robust. Added features and some more grace to some parts of the code is planned. 2. Prerequisites: * Access to a MySQL database. * Thread-safe libmysqlclient_r library. The Makefile looks in /usr/include/mysql by default. See: http://dev.mysql.com/doc/refman/5.0/en/threaded-clients.html 3. Building: In this initial beta release a full configure script etc. has not yet been implemented. A simple and rather static Makefile is included, but you may need to edit it to work on your system. Most people can just give the command "make" to build a server executable. 4. Installing: You should now set up the MySQL database. Create a database and use the stucture provided in structure.sql. Add some test data. In this beta version you must add data manually or with your favourite MySQL admin tool as there is no admnistration interface yet. You may want to refer to the record type reference at the end of this readme. 5. Configuration: The configuration file is documented in the sample nexwhoisd.conf file provided. By default the server looks for this file in the same directory as the server binary, though an alternative can be specified on the command line. Run the server with the -h flag for more details. The only mandatory configuration is the MySQL access details. 6. Running: Simply execute the file built in the building stage. If run as a daemon, no init scripts are yet provided to control its functioning, but sending SIGTERM will cause the server to gracefully shut down. 7. Known Issues and Beta Limitations: * Currently domains can only be registered to an ORG. This will be updated to include some more flexible record types. * Cannot yet run as root to bind to privileged port and drop privilegeds. It is recommended therefore to run the server as an unprivileged user on an unprivileged port. 8. Record Type Reference: Currently the following record types are supported (these may be improved and expanded in later versions): Domain Records Database table: test_domain Fields: FIELD DESCRIPTION MAX SIZE Domain Domain name 200 Org Org handle for domain owner 25 NET Network IP Range Records Database table: test_ip_net FIELD DESCRIPTION MAX SIZE NetRangeStart Start of IP range as an int 10 NetRangeEnd End of IP range as an int 10 NetHandle Unique handle starting with NET- 25 OrgHandle Handle of the ORG who owns this NET 25 TechPOC Handle of the POC for technical issues 25 AbusePOC Handle of the POC for abuse issues 25 ORG Organisation Records Database table: test_org FIELD DESCRIPTION MAX SIZE OrgHandle Unique handle starting with ORG- 25 OrgName Name of this organisation 50 RLContact Real life contact point for this ORG 100 OrgPrimaryPoc Primary POC for this ORG 25 POC Point-Of-Contact Records Database table: test_poc; Note: Each POC record may be only part of a whole Point-Of-Contact. Multiple entries with the same PocHandle are possible, and serve to group all records of a single contact point. Each record then contains a string in PocContent which is interpreted according to PocType, which can be either 'E' for an email address, 'U' for a URL or 'P' for a phone number. FIELD DESCRIPTION MAX SIZE PocHandle Unique handle starting with POC- 25 PocContent The contact data for this POC record 100 PocType Type of contact point for this record 1 9. Tips: * To insert IP addresses, as for NetRangeStart and NetRangeEnd, use MySQL's INET_ATON() function like so: INSERT INTO example_tbl (example_IP) VALUES (INET_ATON('127.0.0.1')); * To get a list of command line options that the server accepts, run the server binary with the -h switch. * The default configuration file is called nexwhoisd.conf and is assumed to be located in the same directory as the server executable. * If you encounter errors, check syslog if the server is running as a daemon. One common error is when the server is shut down and restarted quickly. Due to the way connections are terminated in whois protocol sockets can be tied up in TIME_WAIT state for a while, which will prevent the server from rebinding that port until TIME_WAIT is cleared. This should not take long, so wait a while for the state to clear before restarting the server.