YPSERV(8) UNIX Programmer's Manual YPSERV(8) NAME ypserv - yellow pages server and binder processes SYNOPSIS /usr/etc/ypserv /etc/ypbind DESCRIPTION The yellow pages (YP) provides a simple network lookup ser- vice consisting of databases and processes. The databases are _d_b_m(3) files in a directory tree rooted at /_e_t_c/_y_p. These files are described in ypfiles(5). The processes are /_u_s_r/_e_t_c/_y_p_s_e_r_v, the YP database lookup server, and /_e_t_c/_y_p_b_i_n_d, the YP binder. The programmatic interface to YP is described in ypclnt(3N). Administrative tools are described in yppush(8), ypxfr(8), yppoll(8), ypwhich(8), and ypset(8). Tools to see the contents of YP maps are described in ypcat(8), and ypmatch(1). Database generation and maintenance tools are described in ypinit(8), ypmake(8), and makedbm(8). Both _y_p_s_e_r_v and _y_p_b_i_n_d are daemon processes typically activated at system startup time from /_e_t_c/_r_c._l_o_c_a_l. _y_p_s_e_r_v runs only on YP server machines with a complete YP database. _y_p_b_i_n_d runs on all machines using YP services, both YP servers and clients. The _y_p_s_e_r_v daemon's primary function is to look up informa- tion in its local database of YP maps. The operations per- formed by _y_p_s_e_r_v are defined for the implementor by the _Y_P _p_r_o_t_o_c_o_l _s_p_e_c_i_f_i_c_a_t_i_o_n, and for the programmer by the header file <rpcsvc/yp_prot.h>. Communication to and from _y_p_s_e_r_v is by means of RPC calls. Lookup functions are described in ypclnt(3N), and are supplied as C-callable funtions in /_l_i_b/_l_i_b_c. There are four lookup functions, all of which are performed on a specified map within some YP domain: _M_a_t_c_h, _G_e_t__f_i_r_s_t, _G_e_t__n_e_x_t, and _G_e_t__a_l_l. The _M_a_t_c_h opera- tion takes a key, and returns the associated value. The _G_e_t__f_i_r_s_t operation returns the first key-value pair from the map, and _G_e_t__n_e_x_t can be used to enumerate the remainder. _G_e_t__a_l_l ships the entire map to the requester as the response to a single RPC request. Two other functions supply information about the map, rather than map entries: _G_e_t__o_r_d_e_r__n_u_m_b_e_r, and _G_e_t__m_a_s_t_e_r__n_a_m_e. In fact, both order number and master name exist in the map as key-value pairs, but the server will not return either through the normal lookup functions. (If you examine the map with _m_a_k_e_d_b_m(8), however, they will be visible.) Other functions are used within the YP subsystem itself, and are not of general interest to YP clients. They include _D_o__y_o_u__s_e_r_v_e__t_h_i_s__d_o_m_a_i_n?, _T_r_a_n_s_f_e_r__m_a_p, and Printed 12/27/86 6 December 1985 1 YPSERV(8) UNIX Programmer's Manual YPSERV(8) _R_e_i_n_i_t_i_a_l_i_z_e__i_n_t_e_r_n_a_l__s_t_a_t_e. The function of _y_p_b_i_n_d is to remember information that lets client processes on a single node communicate with some _y_p_s_e_r_v process. _y_p_b_i_n_d must run on every machine which has YP client processes; _y_p_s_e_r_v may or may not be running on the same node, but must be running somewhere on the network. The information _y_p_b_i_n_d remembers is called a _b_i_n_d_i_n_g - the association of a domain name with the internet address of the YP server, and the port on that host at which the _y_p_s_e_r_v process is listening for service requests. The process of binding is driven by client requests. As a request for an unbound domain comes in, the _y_p_b_i_n_d process broadcasts on the net trying to find a _y_p_s_e_r_v process that serves maps within that domain. Since the binding is established by broadcasting, there must be at least one _y_p_s_e_r_v process on every net. Once a domain is bound by a particular _y_p_b_i_n_d, that same binding is given to every client process on the node. The _y_p_b_i_n_d process on the local node or a remote node may be queried for the binding of a particular domain by using the _y_p_w_h_i_c_h(1) command. Bindings are verified before they are given out to a client process. If _y_p_b_i_n_d is unable to speak to the _y_p_s_e_r_v process it's bound to, it marks the domain as unbound, tells the client process that the domain is unbound, and tries to bind the domain once again. Requests received for an unbound domain will fail immediately. In general, a bound domain is marked as unbound when the node running _y_p_s_e_r_v crashes or gets overloaded. In such a case, _y_p_b_i_n_d will to bind any YP server (typically one that is less-heavily loaded) available on the net. _y_p_b_i_n_d also accepts requests to set its binding for a par- ticular domain. The request is usually generated by the YP subsystem itself. _y_p_s_e_t(8) is a command to access the _S_e_t__d_o_m_a_i_n facility. It is for unsnarling messes, not for casual use. FILES If the file /_u_s_r/_e_t_c/_y_p/_y_p_s_e_r_v._l_o_g exists when _y_p_s_e_r_v starts up, log information will be written to this file when error conditions arise. SEE ALSO ypclnt(3N), ypfiles(5), ypcat(8), ypmatch(8), yppush(8), ypwhich(8), ypxfr(8), ypset(8), YP protocol specification Printed 12/27/86 6 December 1985 2