chiark / gitweb /
New interface to YP server. Only bind once, and never unbind.
[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 -------------------------------------------------*/