Lines Matching refs:ypdb
87 #define READFD ypdb->dom_pipe_fds[0]
88 #define WRITEFD ypdb->dom_pipe_fds[1]
167 struct _dom_binding *ypdb; in ypbindproc_domain_2_yp() local
180 for (ypdb = ypbindlist; ypdb; ypdb = ypdb->dom_pnext) { in ypbindproc_domain_2_yp()
181 if (strcmp(ypdb->dom_domain, *argp) == 0) in ypbindproc_domain_2_yp()
185 if (ypdb == NULL) { in ypbindproc_domain_2_yp()
202 ypdb = malloc(sizeof *ypdb); in ypbindproc_domain_2_yp()
203 if (ypdb == NULL) { in ypbindproc_domain_2_yp()
208 bzero(ypdb, sizeof *ypdb); in ypbindproc_domain_2_yp()
209 strlcpy(ypdb->dom_domain, *argp, sizeof ypdb->dom_domain); in ypbindproc_domain_2_yp()
210 ypdb->dom_vers = YPVERS; in ypbindproc_domain_2_yp()
211 ypdb->dom_alive = 0; in ypbindproc_domain_2_yp()
212 ypdb->dom_default = 0; in ypbindproc_domain_2_yp()
213 ypdb->dom_lockfd = -1; in ypbindproc_domain_2_yp()
215 ypdb->dom_domain, ypdb->dom_vers); in ypbindproc_domain_2_yp()
217 ypdb->dom_pnext = ypbindlist; in ypbindproc_domain_2_yp()
218 ypbindlist = ypdb; in ypbindproc_domain_2_yp()
222 if (ping(ypdb)) { in ypbindproc_domain_2_yp()
229 &ypdb->dom_server_addr.sin_addr.s_addr, sizeof(u_int32_t)); in ypbindproc_domain_2_yp()
231 &ypdb->dom_server_addr.sin_port, sizeof(u_short)); in ypbindproc_domain_2_yp()
365 struct _dom_binding *ypdb; in terminate() local
371 for (ypdb = ypbindlist; ypdb; ypdb = ypdb->dom_pnext) { in terminate()
372 close(ypdb->dom_lockfd); in terminate()
373 if (ypdb->dom_broadcast_pid) in terminate()
374 kill(ypdb->dom_broadcast_pid, SIGINT); in terminate()
376 ypdb->dom_domain, ypdb->dom_vers); in terminate()
392 struct _dom_binding *ypdb, *next; in main() local
499 for (ypdb = ypbindlist; ypdb; ypdb = next) { in main()
500 next = ypdb->dom_pnext; in main()
502 handle_children(ypdb); in main()
519 struct _dom_binding *ypdb; in checkwork() local
521 for (ypdb = ypbindlist; ypdb; ypdb = ypdb->dom_pnext) in checkwork()
522 ping(ypdb); in checkwork()
538 handle_children(struct _dom_binding *ypdb) in handle_children() argument
560 if (y == ypdb) in handle_children()
564 switch (ypdb->dom_default) { in handle_children()
571 ypdb->dom_domain, YPVERS); in handle_children()
572 close(ypdb->dom_lockfd); in handle_children()
574 free(ypdb); in handle_children()
578 ypdb->dom_broadcast_pid = 0; in handle_children()
579 ypdb->dom_alive = 0; in handle_children()
580 broadcast(ypdb); in handle_children()
659 broadcast(struct _dom_binding *ypdb) in broadcast() argument
664 if (children >= MAX_CHILDREN || ypdb->dom_broadcast_pid) in broadcast()
667 if (pipe(ypdb->dom_pipe_fds) < 0) { in broadcast()
672 if (ypdb->dom_vers == -1 && (long)ypdb->dom_server_addr.sin_addr.s_addr) { in broadcast()
676 inet_ntoa(ypdb->dom_server_addr.sin_addr), ypdb->dom_domain); in broadcast()
680 broad_domain = ypdb; in broadcast()
681 flock(ypdb->dom_lockfd, LOCK_UN); in broadcast()
683 switch ((ypdb->dom_broadcast_pid = fork())) { in broadcast()
722 ypdb->dom_domain, &port); in broadcast()
724 bzero(&ypdb->dom_server_addr, in broadcast()
726 if (tell_parent(ypdb->dom_domain, in broadcast()
727 &ypdb->dom_server_addr)) in broadcast()
747 ptr = ypdb->dom_domain; in broadcast()
755 bzero(&ypdb->dom_server_addr, in broadcast()
757 if (tell_parent(ypdb->dom_domain, &ypdb->dom_server_addr)) in broadcast()
777 ping(struct _dom_binding *ypdb) in ping() argument
790 if (ypdb->dom_broadcast_pid) in ping()
793 if ((client_handle = clntudp_bufcreate(&ypdb->dom_server_addr, in ping()
797 ypdb->dom_alive = 0; in ping()
798 ypdb->dom_vers = -1; in ping()
799 broadcast(ypdb); in ping()
806 ptr = ypdb->dom_domain; in ping()
812 ypdb->dom_alive = 0; in ping()
813 ypdb->dom_vers = -1; in ping()
815 broadcast(ypdb); in ping()
827 struct _dom_binding *ypdb, *prev = NULL; in rpc_received() local
839 for (ypdb = ypbindlist; ypdb; ypdb = ypdb->dom_pnext) { in rpc_received()
840 if (strcmp(ypdb->dom_domain, dom) == 0) in rpc_received()
842 prev = ypdb; in rpc_received()
845 if (ypdb && force) { in rpc_received()
846 if (ypdb->dom_broadcast_pid) { in rpc_received()
847 kill(ypdb->dom_broadcast_pid, SIGINT); in rpc_received()
860 if (ypdb != NULL) { in rpc_received()
861 ypdb->dom_broadcast_pid = 0; in rpc_received()
862 ypdb->dom_alive = 0; in rpc_received()
868 switch (ypdb->dom_default) { in rpc_received()
871 ypbindlist = ypdb->dom_pnext; in rpc_received()
873 prev->dom_pnext = ypdb->dom_pnext; in rpc_received()
875 ypdb->dom_domain, YPVERS); in rpc_received()
876 close(ypdb->dom_lockfd); in rpc_received()
878 free(ypdb); in rpc_received()
882 ypdb->dom_broadcast_pid = 0; in rpc_received()
883 ypdb->dom_alive = 0; in rpc_received()
884 broadcast(ypdb); in rpc_received()
891 if (ypdb == NULL) { in rpc_received()
898 ypdb = malloc(sizeof *ypdb); in rpc_received()
899 if (ypdb == NULL) { in rpc_received()
903 bzero(ypdb, sizeof *ypdb); in rpc_received()
904 strlcpy(ypdb->dom_domain, dom, sizeof ypdb->dom_domain); in rpc_received()
905 ypdb->dom_lockfd = -1; in rpc_received()
906 ypdb->dom_default = 0; in rpc_received()
907 ypdb->dom_pnext = ypbindlist; in rpc_received()
908 ypbindlist = ypdb; in rpc_received()
912 if (ypdb->dom_vers == -1 && ypdb->dom_server_addr.sin_addr.s_addr) { in rpc_received()
916 inet_ntoa(raddrp->sin_addr), ypdb->dom_domain); in rpc_received()
920 bcopy(raddrp, &ypdb->dom_server_addr, in rpc_received()
921 sizeof ypdb->dom_server_addr); in rpc_received()
923 ypdb->dom_vers = YPVERS; in rpc_received()
924 ypdb->dom_alive = 1; in rpc_received()
925 ypdb->dom_broadcast_pid = 0; in rpc_received()
927 if (ypdb->dom_lockfd != -1) in rpc_received()
928 close(ypdb->dom_lockfd); in rpc_received()
931 ypdb->dom_domain, ypdb->dom_vers); in rpc_received()
951 ypdb->dom_lockfd = fd; in rpc_received()
965 if (writev(ypdb->dom_lockfd, iov, 2) != iov[0].iov_len + iov[1].iov_len) { in rpc_received()
967 close(ypdb->dom_lockfd); in rpc_received()
968 ypdb->dom_lockfd = -1; in rpc_received()