0c0783366c3f5e3aad448f77660772403fc2eee3
[become] / src / ypstuff.c
1 /* -*-c-*-
2 *
3 * $Id: ypstuff.c,v 1.1 1998/04/23 13:29:33 mdw Exp $
4 *
5 * YP support functions
6 *
7 * (c) 1998 EBI
8 */
9
10 /*----- Licensing notice --------------------------------------------------*
11 *
12 * This file is part of `become'
13 *
14 * `Become' is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation; either version 2 of the License, or
17 * (at your option) any later version.
18 *
19 * `Become' is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with `become'; if not, write to the Free Software Foundation,
26 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
27 */
28
29 /*----- Revision history --------------------------------------------------*
30 *
31 * $Log: ypstuff.c,v $
32 * Revision 1.1 1998/04/23 13:29:33 mdw
33 * New interface to YP server. Only bind once, and never unbind.
34 * Introduced because Linux libc-5.4.33's YP interface dumps core in
35 * yp_unbind for no particularly good reason.
36 *
37 */
38
39 /*----- Header files ------------------------------------------------------*/
40
41 /* --- ANSI headers --- */
42
43 #include <errno.h>
44 #include <stdio.h>
45 #include <stdlib.h>
46 #include <string.h>
47
48 /* --- Local headers --- */
49
50 #include "config.h"
51 #include "ypstuff.h"
52
53 /*----- Global variables --------------------------------------------------*/
54
55 char *yp_domain;
56 static int ypstuff__tried;
57
58 /*----- Main code ---------------------------------------------------------*/
59
60 #ifdef HAVE_YP
61
62 /* --- @ypstuff_bind@ --- *
63 *
64 * Arguments: ---
65 *
66 * Returns: ---
67 *
68 * Use: Attempts to bind to a YP server, just once. If it fails,
69 * @yp_domain@ will be null; otherwise it's a pointer to the
70 * default YP domain name.
71 */
72
73 void ypstuff_bind(void)
74 {
75 char *dom;
76
77 if (ypstuff__tried)
78 return;
79 ypstuff__tried = 1;
80 if (yp_get_default_domain(&dom) || yp_bind(dom))
81 return;
82 yp_domain = dom;
83 }
84
85 #endif
86
87 /*----- That's all, folks -------------------------------------------------*/