int _rpcsvcdirty = 0;
void
-rpc_init(char *name, int prog, int vers, void (*dispatch)(), int defport)
+rpc_init(char *name, int prog, int vers,
+ void (*dispatch)(struct svc_req *, register SVCXPRT *),
+ int defport)
{
struct sockaddr_in saddr;
SVCXPRT *transp;
sin.sin_port = htons(port);
val = 1;
- if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val)) < 0)
- xlog(L_ERROR, "setsockopt failed: %s\n", strerror(errno));
+ if (proto == IPPROTO_TCP)
+ if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR,
+ &val, sizeof(val)) < 0)
+ xlog(L_ERROR, "setsockopt failed: %s\n",
+ strerror(errno));
#if 0
/* I was told it didn't work with gigabit ethernet.