|
Lines 450-453
Link Here
|
| 450 |
return (dummy); |
450 |
return (dummy); |
| 451 |
} |
451 |
} |
| 452 |
|
452 |
|
|
|
453 |
/* |
| 454 |
* Create a client handle for a unix connection. Obsoleted by clnt_vc_create() |
| 455 |
*/ |
| 456 |
CLIENT * |
| 457 |
clntunix_create(raddr, prog, vers, sockp, sendsz, recvsz) |
| 458 |
struct sockaddr_un *raddr; |
| 459 |
u_long prog; |
| 460 |
u_long vers; |
| 461 |
register int *sockp; |
| 462 |
u_int sendsz; |
| 463 |
u_int recvsz; |
| 464 |
{ |
| 465 |
struct netbuf nbuf; |
| 466 |
int len; |
| 467 |
|
| 468 |
if (*sockp < 0) { |
| 469 |
*sockp = socket(AF_UNIX, SOCK_STREAM, 0); |
| 470 |
len = strlen(raddr->sun_path) + sizeof(raddr->sun_family) + |
| 471 |
sizeof(raddr->sun_len) + 1; |
| 472 |
raddr->sun_len = len; |
| 473 |
if ((*sockp < 0) |
| 474 |
|| (connect(*sockp, (struct sockaddr *)raddr, len) < 0)) { |
| 475 |
rpc_createerr.cf_stat = RPC_SYSTEMERROR; |
| 476 |
rpc_createerr.cf_error.re_errno = errno; |
| 477 |
if (*sockp != -1) |
| 478 |
(void)_close(*sockp); |
| 479 |
return (NULL); |
| 480 |
} |
| 481 |
} |
| 482 |
nbuf.len = raddr->sun_len = SUN_LEN(raddr); |
| 483 |
nbuf.maxlen = sizeof (struct sockaddr_un); |
| 484 |
nbuf.buf = raddr; |
| 485 |
|
| 486 |
return(clnt_vc_create(*sockp, &nbuf, prog, vers, sendsz, recvsz)); |
| 487 |
} |
| 488 |
|
| 489 |
/* |
| 490 |
* Creates, registers, and returns a (rpc) unix based transporter. |
| 491 |
* Obsoleted by svc_vc_create(). |
| 492 |
*/ |
| 493 |
SVCXPRT * |
| 494 |
svcunix_create(sock, sendsize, recvsize, path) |
| 495 |
register int sock; |
| 496 |
u_int sendsize; |
| 497 |
u_int recvsize; |
| 498 |
char *path; |
| 499 |
{ |
| 500 |
struct sockaddr_un addr; |
| 501 |
int len = sizeof(struct sockaddr_un); |
| 502 |
|
| 503 |
memset(&addr, 0, sizeof (addr)); |
| 504 |
addr.sun_family = AF_UNIX; |
| 505 |
strcpy(addr.sun_path, path); |
| 506 |
len = strlen(addr.sun_path) + sizeof(addr.sun_family) + |
| 507 |
sizeof(addr.sun_len) + 1; |
| 508 |
addr.sun_len = len; |
| 509 |
|
| 510 |
if (sock == RPC_ANYSOCK) { |
| 511 |
if ((sock = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) |
| 512 |
return ((SVCXPRT *)NULL); |
| 513 |
} |
| 514 |
|
| 515 |
bind(sock, (struct sockaddr *)&addr, len); |
| 516 |
|
| 517 |
return(svc_vc_create(sock, sendsize, recvsize)); |
| 518 |
} |
| 519 |
|
| 520 |
/* |
| 521 |
* Like svunix_create(), except the routine takes any *open* UNIX file |
| 522 |
* descriptor as its first input. Obsoleted by svc_fd_create(); |
| 523 |
*/ |
| 524 |
SVCXPRT * |
| 525 |
svcunixfd_create(fd, sendsize, recvsize) |
| 526 |
int fd; |
| 527 |
u_int sendsize; |
| 528 |
u_int recvsize; |
| 529 |
{ |
| 530 |
return (svc_fd_create(fd, sendsize, recvsize)); |
| 531 |
} |
| 532 |
|
| 453 |
#endif /* PORTMAP */ |
533 |
#endif /* PORTMAP */ |