Lines Matching +full:short +full:- +full:ping

1 /*-
2 * SPDX-License-Identifier: BSD-3-Clause
87 #define READFD ypdb->dom_pipe_fds[0]
88 #define WRITEFD ypdb->dom_pipe_fds[1]
89 #define BROADFD broad_domain->dom_pipe_fds[1]
96 int ping(struct _dom_binding *);
175 syslog(LOG_WARNING, "Domain name '%s' has embedded slash -- \ in ypbindproc_domain_2_yp()
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()
187 …syslog(LOG_NOTICE, "Running in restricted mode -- request to bind domain \"%s\" rejected.\n", *arg… 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()
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()
232 /*printf("domain %s at %s/%d\n", ypdb->dom_domain, in ypbindproc_domain_2_yp()
233 inet_ntoa(ypdb->dom_server_addr.sin_addr), in ypbindproc_domain_2_yp()
234 ntohs(ypdb->dom_server_addr.sin_port));*/ in ypbindproc_domain_2_yp()
244 if (strchr(argp->ypsetdom_domain, '/')) { in ypbindproc_setdom_2_yp()
245 syslog(LOG_WARNING, "Domain name '%s' has embedded slash -- \ in ypbindproc_setdom_2_yp()
246 rejecting.", argp->ypsetdom_domain); in ypbindproc_setdom_2_yp()
253 if (fromsin->sin_addr.s_addr != htonl(INADDR_LOOPBACK)) { in ypbindproc_setdom_2_yp()
266 if (ntohs(fromsin->sin_port) >= IPPORT_RESERVED) { in ypbindproc_setdom_2_yp()
271 if (argp->ypsetdom_vers != YPVERS) { in ypbindproc_setdom_2_yp()
279 &argp->ypsetdom_binding.ypbind_binding_addr, in ypbindproc_setdom_2_yp()
282 &argp->ypsetdom_binding.ypbind_binding_port, in ypbindproc_setdom_2_yp()
284 rpc_received(argp->ypsetdom_domain, &bindsin, 1); in ypbindproc_setdom_2_yp()
303 switch (rqstp->rq_proc) { in ypbindprog_2()
317 switch (rqstp->rq_cred.oa_flavor) { in ypbindprog_2()
319 creds = (struct authunix_parms *)rqstp->rq_clntcred; in ypbindprog_2()
320 if (creds->aup_uid != 0) { in ypbindprog_2()
359 children--; in reaper()
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()
395 if ((yplockfd = (open(YPBINDLOCK, O_RDONLY|O_CREAT, 0444))) == -1) in main()
398 if (flock(yplockfd, LOCK_EX|LOCK_NB) == -1 && errno == EWOULDBLOCK) in main()
407 if (strcmp("-ypset", argv[i]) == 0) in main()
409 else if (strcmp("-ypsetme", argv[i]) == 0) in main()
411 else if (strcmp("-s", argv[i]) == 0) in main()
413 else if (strcmp("-S", argv[i]) == 0 && argc > i) in main()
415 else if (strcmp("-m", argv[i]) == 0) in main()
429 if (strcmp(dirp->d_name, ".") && in main()
430 strcmp(dirp->d_name, "..")) { in main()
431 sprintf(path,"%s/%s",BINDINGDIR,dirp->d_name); in main()
464 strlcpy(ypbindlist->dom_domain, domain_name, sizeof ypbindlist->dom_domain); in main()
465 ypbindlist->dom_vers = YPVERS; in main()
466 ypbindlist->dom_alive = 0; in main()
467 ypbindlist->dom_lockfd = -1; in main()
468 ypbindlist->dom_default = 1; in main()
494 case -1: in main()
500 next = ypdb->dom_pnext; in main()
503 if (children == (MAX_CHILDREN - 1)) in main()
521 for (ypdb = ypbindlist; ypdb; ypdb = ypdb->dom_pnext) in checkwork()
522 ping(ypdb); in checkwork()
529 * bogus info to rpc_received() -- it can handle it. Note that we
531 * since descriptors can be re-used, we have to make sure we
555 READFD = WRITEFD = -1; in handle_children()
559 for (y = ypbindlist; y; y = y->dom_pnext) { in handle_children()
564 switch (ypdb->dom_default) { in handle_children()
567 ypbindlist = y->dom_pnext; in handle_children()
569 prev->dom_pnext = y->dom_pnext; in handle_children()
571 ypdb->dom_domain, YPVERS); in handle_children()
572 close(ypdb->dom_lockfd); in handle_children()
575 domains--; in handle_children()
578 ypdb->dom_broadcast_pid = 0; in handle_children()
579 ypdb->dom_alive = 0; in handle_children()
603 sprintf(buf, "%s", broad_domain->dom_domain); in tell_parent()
614 if (select(FD_SETSIZE, NULL, &fds, NULL, &timeout) == -1) in tell_parent()
632 if (tell_parent(broad_domain->dom_domain, addr)) in broadcast_result()
637 if (yp_restricted && verify(addr->sin_addr)) { in broadcast_result()
639 …OTICE, "NIS server at %s not in restricted mode access list -- rejecting.\n",inet_ntoa(addr->sin_a… in broadcast_result()
642 if (tell_parent(broad_domain->dom_domain, addr)) in broadcast_result()
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()
681 flock(ypdb->dom_lockfd, LOCK_UN); in broadcast()
683 switch ((ypdb->dom_broadcast_pid = fork())) { in broadcast()
689 case -1: in broadcast()
703 close(ypbindlist->dom_lockfd); in broadcast()
704 ypbindlist = ypbindlist->dom_pnext; in broadcast()
709 * Special 'many-cast' behavior. If we're in restricted mode, in broadcast()
714 * operation: we transmit uni-cast datagrams only. in broadcast()
717 short port; in broadcast()
722 ypdb->dom_domain, &port); in broadcast()
723 if (i == -1) { 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()
735 if (tell_parent(broad_domain->dom_domain, &sin)) 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()
769 * establish a new binding. Note that we treat non-default domains
777 ping(struct _dom_binding *ypdb) in ping() function
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()
806 ptr = ypdb->dom_domain; in ping()
812 ypdb->dom_alive = 0; in ping()
813 ypdb->dom_vers = -1; in ping()
833 /*printf("returned from %s/%d about %s\n", inet_ntoa(raddrp->sin_addr), in rpc_received()
834 ntohs(raddrp->sin_port), dom);*/ in rpc_received()
839 for (ypdb = ypbindlist; ypdb; ypdb = ypdb->dom_pnext) { in rpc_received()
840 if (strcmp(ypdb->dom_domain, dom) == 0) in rpc_received()
846 if (ypdb->dom_broadcast_pid) { in rpc_received()
847 kill(ypdb->dom_broadcast_pid, SIGINT); in rpc_received()
851 READFD = WRITEFD = -1; in rpc_received()
856 if ((ypsecuremode && (ntohs(raddrp->sin_port) >= IPPORT_RESERVED))) { in rpc_received()
858 inet_ntoa(raddrp->sin_addr), ntohs(raddrp->sin_port), in rpc_received()
861 ypdb->dom_broadcast_pid = 0; in rpc_received()
862 ypdb->dom_alive = 0; in rpc_received()
867 if (raddrp->sin_addr.s_addr == (long)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()
879 domains--; in rpc_received()
882 ypdb->dom_broadcast_pid = 0; in rpc_received()
883 ypdb->dom_alive = 0; 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()
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()
933 if ((fd = open(path, O_CREAT|O_SHLOCK|O_RDWR|O_TRUNC, 0644)) == -1) { in rpc_received()
935 if ((fd = open(path, O_CREAT|O_SHLOCK|O_RDWR|O_TRUNC, 0644)) == -1) in rpc_received()
939 if ((fd = open(path, O_CREAT|O_RDWR|O_TRUNC, 0644)) == -1) { in rpc_received()
941 if ((fd = open(path, O_CREAT|O_RDWR|O_TRUNC, 0644)) == -1) in rpc_received()
951 ypdb->dom_lockfd = fd; in rpc_received()
953 iov[0].iov_base = (char *)&(udptransp->xp_port); in rpc_received()
954 iov[0].iov_len = sizeof udptransp->xp_port; in rpc_received()
961 &raddrp->sin_addr.s_addr, sizeof(u_int32_t)); in rpc_received()
963 &raddrp->sin_port, sizeof(u_short)); 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()
1009 bcopy (h->h_addr_list[0], &restricted_addrs[i], in yp_restricted_mode()