cs man page on Inferno

Man page or keyword search:  
man Server   579 pages
apropos Keyword Search (all sections)
Output format
Inferno logo
[printable version]

CS(8)									 CS(8)

NAME
       cs, csquery - connection server

SYNOPSYS
       ndb/cs [ -f database ] [ -v ] [ -x net ]

       ndb/csquery [ -x net ] [ -s server ] [ address ... ]

DESCRIPTION
       Cs  spawns  a process that serves a single file /net/cs, in the current
       name space, answering requests by client processes  to  translate  sym‐
       bolic network and service names into instructions for connecting to the
       given service.  It is normally accessed indirectly by calls to dial(2).

       The network data is taken from the network database files, described in
       ndb(6).	By default, it is /lib/ndb/local but the -f option can specify
       a different one.

       Each write to /net/cs makes a query, expressed in  one  of  two	forms.
       The first form is a network address of the same form as the addr param‐
       eter to dial: network!netaddr!service where  service  and  network  are
       optional	 for some networks.  The write returns an error if the address
       cannot be translated.  Otherwise, the file offset should be reset to  0
       using  sys-seek(2)  and each subsequent read will return either end-of-
       file (if there are no further translations), or a single line  contain‐
       ing a translation of the form:

	      /net/proto/clone address!port

       The first field is the name of the clone file for a network protocol or
       interface.  To make a connection or announce a service, open that file,
       and  write the text in the second field preceded by connect or announce
       as required.  (All this activity is normally encapsulated in a call  to
       dial(2).)  Cs produces a translation for each network and for each net‐
       work address on which a symbolic netaddr is found.  When	 announcing  a
       service,	 netaddr  can  be  * to represent any local interface, and the
       resulting recipes read from /net/cs will not include an address!	 part.

       Cs interprets a netaddr of the form $server specially: it looks for  an
       attribute  server  in  the  database in the entry for the current host,
       then in the entry for each network that contains it (if specified), and
       finally	in  a site-wide entry labelled with the attribute infernosite.
       If found, the value of the attribute replaces the netaddr  before  fur‐
       ther translation.

       In  the second form of query, the text written contains space-separated
       attribute/value pairs following an initial

	      !	 attr1=val1 [ attr2=val2  ...  ]

       Cs looks for an ndb(6) entry that contains attribute/value pairs match‐
       ing those in the query.	Any value but val1 may be `*', to signify that
       the entry must contain the given attribute  but	with  any  value.   As
       before,	the  write  returns  an error if no entry matches.  Otherwise,
       each subsequent read returns the whole of the next matching  entry,  in
       ndb(6) form.

       The  file  /net/cs persists until it is removed or unmounted from /net,
       or the cs process is killed (see kill(1)).  The -v option causes cs  to
       print  each translation request and results (if any) on standard error.
       The -x option gives an alternative mount point for cs,  when  there  is
       more  than  one	network	 stack	(see ip(3)).  It causes it cs to serve
       net/cs instead of /net/cs.

       Cs is normally started  once, after dns(8) if  used,  but  before  most
       other applications including the various listeners described in svc(8).
       If another instance of cs(8) is started on the same  mount  point,  the
       file it serves replaces the earlier one if permissions allow.  (On Plan
       9, Plan 9's native connection  service  will  be	 used  by  default  if
       Inferno's cs is not started.)

       Csquery	queries	 the given server (default: /net/cs) for a translation
       of each address and prints the results, one per line.  If no address is
       given, csquery prompts for address(es) to translate which it reads from
       the standard input, printing the results of  each  translation  on  the
       standard	 output.   The	-x option gives an alternative mount point for
       cs, when there is more than one network stack (see ip(3)).

       Cs uses ndb(6) to map protocol and service names to Internet port  num‐
       bers.   When  running  hosted, if entries are not in ndb(6), cs applies
       the built-in srv(2), if available, to have  the	host  system  try  the
       translation.   Consequently, entries in ndb(6) take precedence over the
       host's system-wide configuration.  (This is helpful for adding symbolic
       names  for Inferno services without requiring administrative privileges
       on the host system.)

EXAMPLE
       Check the translation of the symbolic name $signer:

	      ndb/csquery
	      > net!$signer!inflogin
	      /net/tcp/clone 200.1.1.67!6673

FILES
       #scs*  service directory

       /net/cs
	      connection service

       /net/dns
	      domain name service

       /lib/ndb/local
	      map from symbolic service names to servers

SOURCE
       /appl/cmd/ndb/cs.b
       /appl/cmd/ndb/csquery.b

SEE ALSO
       dial(2), ndb(6), dns(8)

									 CS(8)
[top]

List of man pages available for Inferno

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net