1#++ 2# NAME 3# tcp_table 5 4# SUMMARY 5# Postfix client/server table lookup protocol 6# SYNOPSIS 7# \fBpostmap -q "\fIstring\fB" tcp:\fIhost:port\fR 8# 9# \fBpostmap -q - tcp:\fIhost:port\fR <\fIinputfile\fR 10# DESCRIPTION 11# The Postfix mail system uses optional tables for address 12# rewriting or mail routing. These tables are usually in 13# \fBdbm\fR or \fBdb\fR format. Alternatively, table lookups 14# can be directed to a TCP server. 15# 16# To find out what types of lookup tables your Postfix system 17# supports use the "\fBpostconf -m\fR" command. 18# 19# To test lookup tables, use the "\fBpostmap -q\fR" command as 20# described in the SYNOPSIS above. 21# PROTOCOL DESCRIPTION 22# .ad 23# .fi 24# The TCP map class implements a very simple protocol: the client 25# sends a request, and the server sends one reply. Requests and 26# replies are sent as one line of ASCII text, terminated by the 27# ASCII newline character. Request and reply parameters (see below) 28# are separated by whitespace. 29# 30# Send and receive operations must complete in 100 seconds. 31# REQUEST FORMAT 32# .ad 33# .fi 34# Each request specifies a command, a lookup key, and possibly a 35# lookup result. 36# .IP "\fBget\fR SPACE \fIkey\fR NEWLINE" 37# Look up data under the specified key. 38# .IP "\fBput\fR SPACE \fIkey\fR SPACE \fIvalue\fR NEWLINE" 39# This request is currently not implemented. 40# REPLY FORMAT 41# .ad 42# .fi 43# Each reply specifies a status code and text. Replies must be no 44# longer than 4096 characters including the newline terminator. 45# .IP "\fB500\fR SPACE \fItext\fR NEWLINE" 46# In case of a lookup request, the requested data does not exist. 47# In case of an update request, the request was rejected. 48# The text describes the nature of the problem. 49# .IP "\fB400\fR SPACE \fItext\fR NEWLINE" 50# This indicates an error condition. The text describes the nature of 51# the problem. The client should retry the request later. 52# .IP "\fB200\fR SPACE \fItext\fR NEWLINE" 53# The request was successful. In the case of a lookup request, 54# the text contains an encoded version of the requested data. 55# ENCODING 56# .ad 57# .fi 58# In request and reply parameters, the character %, each non-printing 59# character, and each whitespace character must be replaced by %XX, 60# where XX is the corresponding ASCII hexadecimal character value. The 61# hexadecimal codes can be specified in any case (upper, lower, mixed). 62# 63# The Postfix client always encodes a request. 64# The server may omit the encoding as long as the reply 65# is guaranteed to not contain the % or NEWLINE character. 66# SECURITY 67# .ad 68# .fi 69# Do not use TCP lookup tables for security critical purposes. 70# The client-server connection is not protected and the server 71# is not authenticated. 72# BUGS 73# Only the lookup method is currently implemented. 74# 75# The client does not hang up when the connection is idle for 76# a long time. 77# SEE ALSO 78# postmap(1), Postfix lookup table manager 79# regexp_table(5), format of regular expression tables 80# pcre_table(5), format of PCRE tables 81# cidr_table(5), format of CIDR tables 82# README FILES 83# .ad 84# .fi 85# Use "\fBpostconf readme_directory\fR" or 86# "\fBpostconf html_directory\fR" to locate this information. 87# .na 88# .nf 89# DATABASE_README, Postfix lookup table overview 90# LICENSE 91# .ad 92# .fi 93# The Secure Mailer license must be distributed with this software. 94# AUTHOR(S) 95# Wietse Venema 96# IBM T.J. Watson Research 97# P.O. Box 704 98# Yorktown Heights, NY 10598, USA 99#--*/ 100