*** empty log message ***
[arla.git] / milko / vldb / vldb_locl.h
blobbfcc1e7bd8a927058025585a60b3000877974969
1 /*
2 * Copyright (c) 1995 - 2001 Kungliga Tekniska Högskolan
3 * (Royal Institute of Technology, Stockholm, Sweden).
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
17 * 3. Neither the name of the Institute nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
21 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
34 #ifdef HAVE_CONFIG_H
35 #include <config.h>
36 #endif
38 #include <sys/types.h>
39 #include <sys/socket.h>
40 #include <netinet/in.h>
41 #include <arpa/inet.h>
43 #include <rx/rx.h>
44 #include <rx/rx_null.h>
46 #include <ports.h>
47 #include <ko.h>
49 #ifdef KERBEROS
50 #ifdef HAVE_OPENSSL
51 #include <openssl/des.h>
52 #else
53 #include <des.h>
54 #endif
55 #ifdef HAVE_KRB4
56 #include <krb.h>
57 #endif
58 #ifdef HAVE_KRB5
59 #include <krb5.h>
60 #endif
61 #include <rxkad.h>
62 #endif
64 #include <err.h>
65 #include <assert.h>
66 #include <ctype.h>
68 #ifndef HAVE_UNISTD_H
69 #include <unistd.h>
70 #endif
72 #include <service.h>
73 #include <msecurity.h>
74 #include <netinit.h>
76 #include <agetarg.h>
78 #include <mlog.h>
79 #include <mdebug.h>
80 #include <mdb.h>
82 #include "rx/rxgencon.h"
83 #include "vldb.h"
84 #include "vldb.ss.h"
85 #include "ubik.ss.h"
88 extern int vl_database;
89 extern vital_vlheader vl_header;
91 void vldb_write_header (void);
92 void vldb_read_header (void);
93 int vldb_write_entry(const disk_vlentry *vldb_entry);
94 int vldb_read_entry (const char *name, disk_vlentry *entry);
95 int vldb_delete_entry (const char *name);
96 int vldb_id_to_name (const int32_t volid, char **name);
97 int vldb_write_id (const char *name, const uint32_t volid);
98 int vldb_delete_id (const char *name, const uint32_t volid);
99 void vldb_close(void);
100 void vldb_flush(void);
103 unsigned long vldb_get_id_hash (long id);
104 unsigned long vldb_get_name_hash (const char *name);
105 void vldb_create (char *databaseprefix);
106 void vldb_init (char *databaseprefix);
107 int vldb_print_entry (vldbentry *entry, int long_print);
109 void vldb_entry_to_disk(const struct vldbentry *newentry,
110 struct disk_vlentry *diskentry);
111 void vldb_nentry_to_disk(const struct nvldbentry *entry,
112 struct disk_vlentry *diskentry);
113 void vldb_disk_to_entry(const struct disk_vlentry *diskentry,
114 struct vldbentry *entry);
115 void vldb_disk_to_nentry(const struct disk_vlentry *diskentry,
116 struct nvldbentry *entry);
118 void vldb_free_diskentry(struct disk_vlentry *diskentry);