1 /*
2  * Copyright (c) 2001,2002
3  *	Traakan, Inc., Los Altos, CA
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  * 1. Redistributions of source code must retain the above copyright
10  *    notice unmodified, this list of conditions, and the following
11  *    disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26  * SUCH DAMAGE.
27  */
28 
29 /*
30  * Project:  NDMJOB
31  * Ident:    $Id: $
32  *
33  * Description: FileIndex database handling functions.
34  *              Implemented as callbacks from the generic framework.
35  *              Original code extracted from ndml_fhdb.c
36  *
37  */
38 
39 
40 #include "ndmlib.h"
41 
42 
43 
44 int
ndmjobfhdb_add_file(struct ndmlog * ixlog,int tagc,char * raw_name,ndmp9_file_stat * fstat)45 ndmjobfhdb_add_file (struct ndmlog *ixlog, int tagc,
46   char *raw_name, ndmp9_file_stat *fstat)
47 {
48 	char		prefix[8];
49 	char		statbuf[100];
50 	char		namebuf[NDMOS_CONST_PATH_MAX];
51 
52 	strcpy (prefix, "DHf");
53 	prefix[0] = tagc;
54 
55 	ndm_fstat_to_str (fstat, statbuf);
56 
57 	ndmcstr_from_str (raw_name, namebuf, sizeof namebuf);
58 
59 	ndmlogf (ixlog, prefix, 0, "%s UNIX %s", namebuf, statbuf);
60 
61 	return 0;
62 }
63 
64 int
ndmjobfhdb_add_dir(struct ndmlog * ixlog,int tagc,char * raw_name,ndmp9_u_quad dir_node,ndmp9_u_quad node)65 ndmjobfhdb_add_dir (struct ndmlog *ixlog, int tagc,
66   char *raw_name, ndmp9_u_quad dir_node, ndmp9_u_quad node)
67 {
68 	char		prefix[8];
69 	char		namebuf[NDMOS_CONST_PATH_MAX];
70 
71 	strcpy (prefix, "DHd");
72 	prefix[0] = tagc;
73 
74 	ndmcstr_from_str (raw_name, namebuf, sizeof namebuf);
75 
76 	ndmlogf (ixlog, prefix, 0, "%llu %s UNIX %llu",
77 		dir_node, namebuf, node);
78 
79 	return 0;
80 }
81 
82 int
ndmjobfhdb_add_node(struct ndmlog * ixlog,int tagc,ndmp9_u_quad node,ndmp9_file_stat * fstat)83 ndmjobfhdb_add_node (struct ndmlog *ixlog, int tagc,
84   ndmp9_u_quad node, ndmp9_file_stat *fstat)
85 {
86 	char		prefix[8];
87 	char		statbuf[100];
88 
89 	strcpy (prefix, "DHn");
90 	prefix[0] = tagc;
91 
92 	ndm_fstat_to_str (fstat, statbuf);
93 
94 	ndmlogf (ixlog, prefix, 0, "%llu UNIX %s", node, statbuf);
95 
96 	return 0;
97 }
98 
99 int
ndmjobfhdb_add_dirnode_root(struct ndmlog * ixlog,int tagc,ndmp9_u_quad root_node)100 ndmjobfhdb_add_dirnode_root (struct ndmlog *ixlog, int tagc,
101   ndmp9_u_quad root_node)
102 {
103 	char		prefix[8];
104 
105 	strcpy (prefix, "DHr");
106 	prefix[0] = tagc;
107 
108 	ndmlogf (ixlog, prefix, 0, "%llu", root_node);
109 
110 	return 0;
111 }
112