Print this page
8330 Add svc_tp_create_addr to libnsl
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Sebastien Roy <sebastien.roy@delphix.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/man/man3nsl/rpc_svc_create.3nsl.man.txt
          +++ new/usr/src/man/man3nsl/rpc_svc_create.3nsl.man.txt
   1    1  RPC_SVC_CREATE(3NSL)                     Networking Services Library Functions
   2    2  
   3    3  
   4    4  
   5    5  NAME
   6    6         rpc_svc_create, svc_control, svc_create, svc_destroy, svc_dg_create,
   7    7         svc_fd_create, svc_raw_create, svc_tli_create, svc_tp_create,
   8      -       svc_vc_create, svc_door_create - server handle creation routines
        8 +       svc_tp_create_addr, svc_vc_create, svc_door_create - server handle
        9 +       creation routines
   9   10  
  10   11  SYNOPSIS
  11   12         #include <rpc/rpc.h>
  12   13  
  13   14         bool_t svc_control(SVCXPRT *svc, const uint_t req, void *info);
  14   15  
  15   16  
  16   17         int svc_create(const void (*dispatch)(const struct svc_req *,
  17   18              const SVCXPRT *), const rpcprog_t prognum, const rpcvers_t versnum,
  18   19              const char *nettype);
↓ open down ↓ 7 lines elided ↑ open up ↑
  26   27  
  27   28  
  28   29         SVCXPRT *svc_fd_create(const int fildes, const uint_t sendsz,
  29   30              const uint_t recvsz);
  30   31  
  31   32  
  32   33         SVCXPRT *svc_raw_create(void);
  33   34  
  34   35  
  35   36         SVCXPRT *svc_tli_create(const int fildes, const struct netconfig *netconf,
  36      -            const struct t_bind *bind_addr, const uint_t sendsz,
       37 +            const struct t_bind *bind_info, const uint_t sendsz,
  37   38              const uint_t recvsz);
  38   39  
  39   40  
  40   41         SVCXPRT *svc_tp_create(const void (*dispatch)
  41   42              (const struct svc_req *, const SVCXPRT *), const rpcprog_t prognum,
  42   43              const rpcvers_t versnum, const struct netconfig *netconf);
  43   44  
  44   45  
       46 +       SVCXPRT *svc_tp_create_addr(const void (*dispatch)
       47 +            (const struct svc_req *, const SVCXPRT *), const rpcprog_t prognum,
       48 +            const rpcvers_t versnum, const struct netconfig *netconf,
       49 +            const struct netbuf *bind_addr)
       50 +       );
       51 +
       52 +
  45   53         SVCXPRT *svc_vc_create(const int fildes, const uint_t sendsz,
  46   54              const uint_t recvsz);
  47   55  
  48   56  
  49   57         SVCXPRT *svc_door_create(void (*dispatch)(struct svc_req *, SVCXPRT *),
  50   58              const rpcprog_t prognum, const rpcvers_t versnum,
  51   59              const uint_t sendsz);
  52   60  
  53   61  
  54   62  DESCRIPTION
  55   63         These routines are part of the RPC library which allows C language
  56   64         programs to make procedure calls on servers across the network. These
  57   65         routines deal with the creation of service handles. Once the handle is
  58   66         created, the server can be invoked by calling svc_run().
  59   67  
  60   68     Routines
  61   69         See rpc(3NSL) for the definition of the SVCXPRT data structure.
  62   70  
  63   71         svc_control()
  64      -                            A function to change or retrieve information about
  65      -                            a service object. req indicates the type of
  66      -                            operation and info is a pointer to the
  67      -                            information.  The supported values of req,  their
  68      -                            argument types, and what they do are:
       72 +                      A function to change or retrieve information about a
       73 +                      service object. req indicates the type of operation and
       74 +                      info is a pointer to the information.  The supported
       75 +                      values of req,  their argument types, and what they do
       76 +                      are:
  69   77  
  70      -                            SVCGET_VERSQUIET
  71      -                                                     If a request is received
  72      -                                                     for a program number
  73      -                                                     served by this server but
  74      -                                                     the version number is
  75      -                                                     outside the range
  76      -                                                     registered with the
  77      -                                                     server, an
  78      -                                                     RPC_PROGVERSMISMATCH
  79      -                                                     error will normally be
  80      -                                                     returned.  info should be
  81      -                                                     a pointer to an integer.
  82      -                                                     Upon successful
  83      -                                                     completion of the
  84      -                                                     SVCGET_VERSQUIET request,
  85      -                                                     *info contains an integer
  86      -                                                     which describes the
  87      -                                                     server's current
  88      -                                                     behavior:  0 indicates
  89      -                                                     normal server behavior,
  90      -                                                     that is, an
  91      -                                                     RPC_PROGVERSMISMATCH
  92      -                                                     error will be returned.
  93      -                                                     1 indicates that the out
  94      -                                                     of range request will be
  95      -                                                     silently ignored.
       78 +                      SVCGET_VERSQUIET
       79 +                                If a request is received for a program number
       80 +                                served by this server but the version number
       81 +                                is outside the range registered with the
       82 +                                server, an RPC_PROGVERSMISMATCH error will
       83 +                                normally be returned.  info should be a
       84 +                                pointer to an integer. Upon successful
       85 +                                completion of the SVCGET_VERSQUIET request,
       86 +                                *info contains an integer which describes the
       87 +                                server's current behavior:  0 indicates normal
       88 +                                server behavior, that is, an
       89 +                                RPC_PROGVERSMISMATCH error will be returned.
       90 +                                1 indicates that the out of range request will
       91 +                                be silently ignored.
  96   92  
  97   93  
  98      -                            SVCSET_VERSQUIET
  99      -                                                     If a request is received
 100      -                                                     for a program number
 101      -                                                     served by this server but
 102      -                                                     the version number is
 103      -                                                     outside the range
 104      -                                                     registered with the
 105      -                                                     server, an
 106      -                                                     RPC_PROGVERSMISMATCH
 107      -                                                     error will normally be
 108      -                                                     returned.  It is
 109      -                                                     sometimes desirable to
 110      -                                                     change this behavior.
 111      -                                                     info should be a pointer
 112      -                                                     to an integer which is
 113      -                                                     either  0, indicating
 114      -                                                     normal server behavior
 115      -                                                     and an
 116      -                                                     RPC_PROGVERSMISMATCH
 117      -                                                     error will be returned,
 118      -                                                     or  1, indicating that
 119      -                                                     the out of range request
 120      -                                                     should be silently
 121      -                                                     ignored.
       94 +                      SVCSET_VERSQUIET
       95 +                                If a request is received for a program number
       96 +                                served by this server but the version number
       97 +                                is outside the range registered with the
       98 +                                server, an RPC_PROGVERSMISMATCH error will
       99 +                                normally be returned.  It is sometimes
      100 +                                desirable to change this behavior. info should
      101 +                                be a pointer to an integer which is either  0,
      102 +                                indicating normal server behavior and an
      103 +                                RPC_PROGVERSMISMATCH error will be returned,
      104 +                                or  1, indicating that the out of range
      105 +                                request should be silently ignored.
 122  106  
 123  107  
 124      -                            SVCGET_XID
 125      -                                                     Returns the transaction
 126      -                                                     ID of connection-oriented
 127      -                                                     and connectionless
 128      -                                                     transport service calls.
 129      -                                                     The transaction  ID
 130      -                                                     assists in uniquely
 131      -                                                     identifying client
 132      -                                                     requests for a given RPC
 133      -                                                     version, program number,
 134      -                                                     procedure, and client.
 135      -                                                     The transaction  ID is
 136      -                                                     extracted from the
 137      -                                                     service transport handle
 138      -                                                     svc. info must be a
 139      -                                                     pointer  to an unsigned
 140      -                                                     long.  Upon successful
 141      -                                                     completion of the
 142      -                                                     SVCGET_XID request,
 143      -                                                     *info contains the
 144      -                                                     transaction  ID. Note
 145      -                                                     that rendezvous and raw
 146      -                                                     service handles do not
 147      -                                                     define a transaction  ID.
 148      -                                                     Thus, if the service
 149      -                                                     handle is of rendezvous
 150      -                                                     or raw type, and the
 151      -                                                     request is of type
 152      -                                                     SVCGET_XID, svc_control()
 153      -                                                     will return FALSE. Note
 154      -                                                     also that the transaction
 155      -                                                     ID read by the server can
 156      -                                                     be set by the client
 157      -                                                     through the suboption
 158      -                                                     CLSET_XID in
 159      -                                                     clnt_control(). See
 160      -                                                     clnt_create(3NSL)
      108 +                      SVCGET_XID
      109 +                                Returns the transaction  ID of
      110 +                                connection-oriented and connectionless
      111 +                                transport service calls. The transaction  ID
      112 +                                assists in uniquely identifying client
      113 +                                requests for a given RPC version, program
      114 +                                number, procedure, and client. The transaction
      115 +                                ID is extracted from the service transport
      116 +                                handle  svc. info must be a pointer  to an
      117 +                                unsigned long.  Upon successful completion of
      118 +                                the  SVCGET_XID request,  *info contains the
      119 +                                transaction  ID. Note that rendezvous and raw
      120 +                                service handles do not define a transaction
      121 +                                ID. Thus, if the service handle is of
      122 +                                rendezvous or raw type, and the request is of
      123 +                                type SVCGET_XID, svc_control() will return
      124 +                                FALSE. Note also that the transaction ID read
      125 +                                by the server can be set by the client through
      126 +                                the suboption CLSET_XID in  clnt_control().
      127 +                                See clnt_create(3NSL)
 161  128  
 162  129  
 163      -                            SVCSET_RECVERRHANDLER
 164      -                                                     Attaches or detaches a
 165      -                                                     disconnection handler to
 166      -                                                     the service handle, svc,
 167      -                                                     that will be called when
 168      -                                                     a transport error arrives
 169      -                                                     during the reception of a
 170      -                                                     request or when the
 171      -                                                     server is waiting for a
 172      -                                                     request and the
 173      -                                                     connection shuts down.
 174      -                                                     This handler is only
 175      -                                                     useful for a connection
 176      -                                                     oriented service handle.
      130 +                      SVCSET_RECVERRHANDLER
      131 +                                Attaches or detaches a disconnection handler
      132 +                                to the service handle, svc, that will be
      133 +                                called when a transport error arrives during
      134 +                                the reception of a request or when the server
      135 +                                is waiting for a request and the connection
      136 +                                shuts down. This handler is only useful for a
      137 +                                connection oriented service handle.
 177  138  
 178      -                                                     *info contains the
 179      -                                                     address of the error
 180      -                                                     handler to attach, or
 181      -                                                     NULL to detach a
 182      -                                                     previously defined one.
 183      -                                                     The error handler has two
 184      -                                                     arguments. It has a
 185      -                                                     pointer to the erroneous
 186      -                                                     service handle. It also
 187      -                                                     has an integer that
 188      -                                                     indicates if the full
 189      -                                                     service is closed (when
 190      -                                                     equal to zero), or that
 191      -                                                     only one connection on
 192      -                                                     this service is closed
 193      -                                                     (when not equal to zero).
      139 +                                *info contains the address of the error
      140 +                                handler to attach, or NULL to detach a
      141 +                                previously defined one. The error handler has
      142 +                                two arguments. It has a pointer to the
      143 +                                erroneous service handle. It also has an
      144 +                                integer that indicates if the full service is
      145 +                                closed (when equal to zero), or that only one
      146 +                                connection on this service is closed (when not
      147 +                                equal to zero).
 194  148  
 195      -                                                       void handler (const SVCXPRT *svc, const bool_t isAConnection);
      149 +                                  void handler (const SVCXPRT *svc, const bool_t isAConnection);
 196  150  
 197      -                                                     With the service handle
 198      -                                                     address, svc, the error
 199      -                                                     handler is able to detect
 200      -                                                     which connection has
 201      -                                                     failed and to begin an
 202      -                                                     error recovery process.
 203      -                                                     The error handler can be
 204      -                                                     called by multiple
 205      -                                                     threads and should be
 206      -                                                     implemented in an MT-safe
 207      -                                                     way.
      151 +                                With the service handle address, svc, the
      152 +                                error handler is able to detect which
      153 +                                connection has failed and to begin an error
      154 +                                recovery process. The error handler can be
      155 +                                called by multiple threads and should be
      156 +                                implemented in an MT-safe way.
 208  157  
 209  158  
 210      -                            SVCGET_RECVERRHANDLER
 211      -                                                     Upon successful
 212      -                                                     completion of the
 213      -                                                     SVCGET_RECVERRHANDLER
 214      -                                                     request, *info contains
 215      -                                                     the address of the
 216      -                                                     handler for receiving
 217      -                                                     errors. Upon failure,
 218      -                                                     *info contains NULL.
      159 +                      SVCGET_RECVERRHANDLER
      160 +                                Upon successful completion of the
      161 +                                SVCGET_RECVERRHANDLER request, *info contains
      162 +                                the address of the handler for receiving
      163 +                                errors. Upon failure, *info contains NULL.
 219  164  
 220  165  
 221      -                            SVCSET_CONNMAXREC
 222      -                                                     Set the maximum record
 223      -                                                     size (in bytes) and
 224      -                                                     enable non-blocking mode
 225      -                                                     for this service handle.
 226      -                                                     Value can be set and read
 227      -                                                     for both connection and
 228      -                                                     non-connection oriented
 229      -                                                     transports, but is
 230      -                                                     silently ignored for the
 231      -                                                     non-connection oriented
 232      -                                                     case. The info argument
 233      -                                                     should be a pointer to an
 234      -                                                     int.
      166 +                      SVCSET_CONNMAXREC
      167 +                                Set the maximum record size (in bytes) and
      168 +                                enable non-blocking mode for this service
      169 +                                handle. Value can be set and read for both
      170 +                                connection and non-connection oriented
      171 +                                transports, but is silently ignored for the
      172 +                                non-connection oriented case. The info
      173 +                                argument should be a pointer to an int.
 235  174  
 236  175  
 237      -                            SVCGET_CONNMAXREC
 238      -                                                     Get the maximum record
 239      -                                                     size for this service
 240      -                                                     handle. Zero means no
 241      -                                                     maximum in effect and the
 242      -                                                     connection is in blocking
 243      -                                                     mode. The result is not
 244      -                                                     significant for non-
 245      -                                                     connection oriented
 246      -                                                     transports. The info
 247      -                                                     argument should be a
 248      -                                                     pointer to an int.
      176 +                      SVCGET_CONNMAXREC
      177 +                                Get the maximum record size for this service
      178 +                                handle. Zero means no maximum in effect and
      179 +                                the connection is in blocking mode. The result
      180 +                                is not significant for non-connection oriented
      181 +                                transports. The info argument should be a
      182 +                                pointer to an int.
 249  183  
 250      -                            This routine returns TRUE if the operation was
 251      -                            successful. Otherwise, it returns false.
      184 +                      This routine returns TRUE if the operation was
      185 +                      successful. Otherwise, it returns false.
 252  186  
 253  187  
 254  188         svc_create()
 255      -                            svc_create() creates server handles for all the
 256      -                            transports belonging to the class nettype.
      189 +                      svc_create() creates server handles for all the
      190 +                      transports belonging to the class nettype.
 257  191  
 258      -                            nettype defines a class of transports which can be
 259      -                            used for a particular application. The transports
 260      -                            are tried in left to right order in NETPATH
 261      -                            variable or in top to bottom order in the
 262      -                            netconfig database. If nettype is NULL, it
 263      -                            defaults to netpath.
      192 +                      nettype defines a class of transports which can be used
      193 +                      for a particular application. The transports are tried
      194 +                      in left to right order in NETPATH variable or in top to
      195 +                      bottom order in the netconfig database. If nettype is
      196 +                      NULL, it defaults to netpath.
 264  197  
 265      -                            svc_create() registers itself with the rpcbind
 266      -                            service (see rpcbind(1M)). dispatch is called when
 267      -                            there is a remote procedure call for the given
 268      -                            prognum and versnum; this requires calling
 269      -                            svc_run() (see svc_run() in rpc_svc_calls(3NSL)).
 270      -                            If svc_create() succeeds, it returns the number of
 271      -                            server handles it created, otherwise it returns 0
 272      -                            and an error message is logged.
      198 +                      svc_create() registers itself with the rpcbind service
      199 +                      (see rpcbind(1M)). dispatch is called when there is a
      200 +                      remote procedure call for the given prognum and versnum;
      201 +                      this requires calling svc_run() (see svc_run() in
      202 +                      rpc_svc_calls(3NSL)). If svc_create() succeeds, it
      203 +                      returns the number of server handles it created,
      204 +                      otherwise it returns 0 and an error message is logged.
 273  205  
 274  206  
 275  207         svc_destroy()
 276      -                            A function macro that destroys the RPC service
 277      -                            handle xprt.  Destruction usually involves
 278      -                            deallocation of private data structures, including
 279      -                            xprt itself.  Use of xprt is undefined after
 280      -                            calling this routine.
      208 +                      A function macro that destroys the RPC service handle
      209 +                      xprt.  Destruction usually involves deallocation of
      210 +                      private data structures, including xprt itself.  Use of
      211 +                      xprt is undefined after calling this routine.
 281  212  
 282  213  
 283  214         svc_dg_create()
 284      -                            This routine creates a connectionless RPC service
 285      -                            handle, and returns a pointer to it. This routine
 286      -                            returns NULL if it fails, and an error message is
 287      -                            logged. sendsz and recvsz are parameters used to
 288      -                            specify the size of the buffers. If they are 0,
 289      -                            suitable defaults are chosen. The file descriptor
 290      -                            fildes should be open and bound. The server is not
 291      -                            registered with rpcbind(1M).
      215 +                      This routine creates a connectionless RPC service
      216 +                      handle, and returns a pointer to it. This routine
      217 +                      returns NULL if it fails, and an error message is
      218 +                      logged. sendsz and recvsz are parameters used to specify
      219 +                      the size of the buffers. If they are 0, suitable
      220 +                      defaults are chosen. The file descriptor fildes should
      221 +                      be open and bound. The server is not registered with
      222 +                      rpcbind(1M).
 292  223  
 293      -                            Warning: since connectionless-based RPC messages
 294      -                            can only hold limited amount of encoded data, this
 295      -                            transport cannot be used for procedures that take
 296      -                            large arguments or return huge results.
      224 +                      Warning: since connectionless-based RPC messages can
      225 +                      only hold limited amount of encoded data, this transport
      226 +                      cannot be used for procedures that take large arguments
      227 +                      or return huge results.
 297  228  
 298  229  
 299  230         svc_fd_create()
 300      -                            This routine creates a service on top of an open
 301      -                            and bound file descriptor, and returns the handle
 302      -                            to it. Typically, this descriptor is a connected
 303      -                            file descriptor for a connection-oriented
 304      -                            transport. sendsz and recvsz indicate sizes for
 305      -                            the send and receive buffers. If they are 0,
 306      -                            reasonable defaults are chosen. This routine
 307      -                            returns NULL if it fails, and an error message is
 308      -                            logged.
      231 +                      This routine creates a service on top of an open and
      232 +                      bound file descriptor, and returns the handle to it.
      233 +                      Typically, this descriptor is a connected file
      234 +                      descriptor for a connection-oriented transport. sendsz
      235 +                      and recvsz indicate sizes for the send and receive
      236 +                      buffers. If they are 0, reasonable defaults are chosen.
      237 +                      This routine returns NULL if it fails, and an error
      238 +                      message is logged.
 309  239  
 310  240  
 311  241         svc_raw_create()
 312      -                            This routine creates an RPC service handle and
 313      -                            returns a pointer to it.  The transport is really
 314      -                            a buffer within the process's address space, so
 315      -                            the corresponding RPC client should live in the
 316      -                            same address space; (see clnt_raw_create() in
 317      -                            rpc_clnt_create(3NSL)). This routine allows
 318      -                            simulation of RPC and acquisition of RPC overheads
 319      -                            (such as round trip times), without any kernel and
 320      -                            networking interference. This routine returns NULL
 321      -                            if it fails, and an error message is logged.
      242 +                      This routine creates an RPC service handle and returns a
      243 +                      pointer to it.  The transport is really a buffer within
      244 +                      the process's address space, so the corresponding RPC
      245 +                      client should live in the same address space; (see
      246 +                      clnt_raw_create() in rpc_clnt_create(3NSL)). This
      247 +                      routine allows simulation of RPC and acquisition of RPC
      248 +                      overheads (such as round trip times), without any kernel
      249 +                      and networking interference. This routine returns NULL
      250 +                      if it fails, and an error message is logged.
 322  251  
 323      -                            Note: svc_run() should not be called when the raw
 324      -                            interface is being used.
      252 +                      Note: svc_run() should not be called when the raw
      253 +                      interface is being used.
 325  254  
 326  255  
 327  256         svc_tli_create()
 328      -                            This routine creates an RPC server handle, and
 329      -                            returns a pointer to it.  fildes is the file
 330      -                            descriptor on which the service is listening.  If
 331      -                            fildes is RPC_ANYFD, it opens a file descriptor on
 332      -                            the transport specified by netconf. If the file
 333      -                            descriptor is unbound and bindaddr is non-null
 334      -                            fildes is bound to the address specified by
 335      -                            bindaddr, otherwise fildes is bound to a default
 336      -                            address chosen by the transport. In the case where
 337      -                            the default address is chosen, the number of
 338      -                            outstanding connect requests is set to 8 for
 339      -                            connection-oriented transports.  The user may
 340      -                            specify the size of the send and receive buffers
 341      -                            with the parameters sendsz and recvsz ; values of
 342      -                            0 choose suitable defaults. This routine returns
 343      -                            NULL if it fails, and an error message is logged.
 344      -                            The server is not registered with the rpcbind(1M)
 345      -                            service.
      257 +                      This routine creates an RPC server handle, and returns a
      258 +                      pointer to it.  fildes is the file descriptor on which
      259 +                      the service is listening.  If fildes is RPC_ANYFD, it
      260 +                      opens a file descriptor on the transport specified by
      261 +                      netconf. If the file descriptor is unbound and bind_info
      262 +                      is non-null fildes is bound to the address specified by
      263 +                      bind_info, otherwise fildes is bound to a default
      264 +                      address chosen by the transport. In the case where the
      265 +                      default address is chosen, the number of outstanding
      266 +                      connect requests is set to 8 for connection-oriented
      267 +                      transports.  The user may specify the size of the send
      268 +                      and receive buffers with the parameters sendsz and
      269 +                      recvsz ; values of 0 choose suitable defaults. This
      270 +                      routine returns NULL if it fails, and an error message
      271 +                      is logged. The server is not registered with the
      272 +                      rpcbind(1M) service.
 346  273  
 347  274  
 348  275         svc_tp_create()
 349      -                            svc_tp_create() creates a server handle for the
 350      -                            network specified by netconf, and registers itself
 351      -                            with the rpcbind service.  dispatch is called when
 352      -                            there is a remote procedure call for the given
 353      -                            prognum and versnum; this requires calling
 354      -                            svc_run().  svc_tp_create() returns the service
 355      -                            handle if it succeeds, otherwise a NULL is
 356      -                            returned and an error message is logged.
      276 +                      svc_tp_create() creates a server handle for the network
      277 +                      specified by netconf, and registers itself with the
      278 +                      rpcbind service.  dispatch is called when there is a
      279 +                      remote procedure call for the given prognum and versnum;
      280 +                      this requires calling svc_run().  svc_tp_create()
      281 +                      returns the service handle if it succeeds, otherwise a
      282 +                      NULL is returned and an error message is logged.
 357  283  
 358  284  
      285 +       svc_tp_create_addr()
      286 +                      svc_tp_create_addr() creates a server handle for the
      287 +                      network specified by netconf, and registers itself with
      288 +                      the rpcbind service.  If bind_addr is non-NULL, that
      289 +                      address is used for the listener binding.  If bind_addr
      290 +                      is NULL, this call is the same as svc_tp_create().
      291 +                      dispatch is called when there is a remote procedure call
      292 +                      for the given prognum and versnum; this requires calling
      293 +                      svc_run().  svc_tp_create_addr() returns the service
      294 +                      handle if it succeeds, otherwise a NULL is returned and
      295 +                      an error message is logged.
      296 +
      297 +
 359  298         svc_vc_create()
 360      -                            This routine creates a connection-oriented RPC
 361      -                            service and returns a pointer to it. This routine
 362      -                            returns NULL if it fails, and an error message is
 363      -                            logged. The users may specify the size of the send
 364      -                            and receive buffers with the parameters sendsz and
 365      -                            recvsz; values of 0 choose suitable defaults. The
 366      -                            file descriptor fildes should be open and bound.
 367      -                            The server is not registered with the rpcbind(1M)
 368      -                            service.
      299 +                      This routine creates a connection-oriented RPC service
      300 +                      and returns a pointer to it. This routine returns NULL
      301 +                      if it fails, and an error message is logged. The users
      302 +                      may specify the size of the send and receive buffers
      303 +                      with the parameters sendsz and recvsz; values of 0
      304 +                      choose suitable defaults. The file descriptor fildes
      305 +                      should be open and bound. The server is not registered
      306 +                      with the rpcbind(1M) service.
 369  307  
 370  308  
 371  309         svc_door_create()
 372      -                            This routine creates an RPC server handle over
 373      -                            doors for the given program prognum and version
 374      -                            versnum and returns a pointer to it. Doors is a
 375      -                            transport mechanism that facilitates fast data
 376      -                            transfer between processes on the same machine.
 377      -                            The user may set the size of the send buffer with
 378      -                            the parameter sendsz. If sendsz is 0, the
 379      -                            corresponding default buffer size is 16 Kbyte. If
 380      -                            successful, the svc_door_create() routine returns
 381      -                            the service handle. Otherwise it returns NULL and
 382      -                            sets a value for rpc_createerr. The server is not
 383      -                            registered with rpcbind(1M). The SVCSET_CONNMAXREC
 384      -                            and SVCGET_CONNMAXREC svc_control() requests can
 385      -                            be used to set and change the maximum allowed
 386      -                            request size for the doors transport.
      310 +                      This routine creates an RPC server handle over doors for
      311 +                      the given program prognum and version versnum and
      312 +                      returns a pointer to it.  Doors is a transport mechanism
      313 +                      that facilitates fast data transfer between processes on
      314 +                      the same machine. The user may set the size of the send
      315 +                      buffer with the parameter sendsz. If sendsz is 0, the
      316 +                      corresponding default buffer size is 16 Kbyte. If
      317 +                      successful, the svc_door_create() routine returns the
      318 +                      service handle. Otherwise it returns NULL and sets a
      319 +                      value for rpc_createerr. The server is not registered
      320 +                      with rpcbind(1M). The SVCSET_CONNMAXREC and
      321 +                      SVCGET_CONNMAXREC svc_control() requests can be used to
      322 +                      set and change the maximum allowed request size for the
      323 +                      doors transport.
 387  324  
 388  325  
 389  326  ATTRIBUTES
 390  327         See attributes(5)  for descriptions of the following attributes:
 391  328  
 392  329  
 393  330  
 394  331  
 395  332         +--------------------+-----------------+
 396  333         |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
↓ open down ↓ 4 lines elided ↑ open up ↑
 401  338         +--------------------+-----------------+
 402  339         |MT-Level            | MT-Safe         |
 403  340         +--------------------+-----------------+
 404  341  
 405  342  SEE ALSO
 406  343         rpcbind(1M), rpc(3NSL), rpc_clnt_create(3NSL), rpc_svc_calls(3NSL),
 407  344         rpc_svc_err(3NSL), rpc_svc_reg(3NSL), attributes(5)
 408  345  
 409  346  
 410  347  
 411      -                                 May 18, 2017             RPC_SVC_CREATE(3NSL)
      348 +                                 June 19, 2017            RPC_SVC_CREATE(3NSL)
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX