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 
ndmjobfhdb_add_file(struct ndmlog * ixlog,int tagc,char * raw_name,ndmp9_file_stat * fstat)43 int ndmjobfhdb_add_file(struct ndmlog* ixlog,
44                         int tagc,
45                         char* raw_name,
46                         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 
ndmjobfhdb_add_dir(struct ndmlog * ixlog,int tagc,char * raw_name,ndmp9_u_quad dir_node,ndmp9_u_quad node)64 int ndmjobfhdb_add_dir(struct ndmlog* ixlog,
65                        int tagc,
66                        char* raw_name,
67                        ndmp9_u_quad dir_node,
68                        ndmp9_u_quad node)
69 {
70   char prefix[8];
71   char namebuf[NDMOS_CONST_PATH_MAX];
72 
73   strcpy(prefix, "DHd");
74   prefix[0] = tagc;
75 
76   ndmcstr_from_str(raw_name, namebuf, sizeof namebuf);
77 
78   ndmlogf(ixlog, prefix, 0, "%llu %s UNIX %llu", dir_node, namebuf, node);
79 
80   return 0;
81 }
82 
ndmjobfhdb_add_node(struct ndmlog * ixlog,int tagc,ndmp9_u_quad node,ndmp9_file_stat * fstat)83 int ndmjobfhdb_add_node(struct ndmlog* ixlog,
84                         int tagc,
85                         ndmp9_u_quad node,
86                         ndmp9_file_stat* fstat)
87 {
88   char prefix[8];
89   char statbuf[100];
90 
91   strcpy(prefix, "DHn");
92   prefix[0] = tagc;
93 
94   ndm_fstat_to_str(fstat, statbuf);
95 
96   ndmlogf(ixlog, prefix, 0, "%llu UNIX %s", node, statbuf);
97 
98   return 0;
99 }
100 
ndmjobfhdb_add_dirnode_root(struct ndmlog * ixlog,int tagc,ndmp9_u_quad root_node)101 int ndmjobfhdb_add_dirnode_root(struct ndmlog* ixlog,
102                                 int tagc,
103                                 ndmp9_u_quad root_node)
104 {
105   char prefix[8];
106 
107   strcpy(prefix, "DHr");
108   prefix[0] = tagc;
109 
110   ndmlogf(ixlog, prefix, 0, "%llu", root_node);
111 
112   return 0;
113 }
114