author | mahmood.ali@oracle.com <mahmood.ali@oracle.com> |
Tue, 01 Apr 2014 11:11:03 -0700 | |
branch | s11-update |
changeset 3037 | ef46824e0e76 |
parent 2805 | 4888f6212f94 |
permissions | -rw-r--r-- |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
1 |
/* |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
2 |
* CDDL HEADER START |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
3 |
* |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
4 |
* The contents of this file are subject to the terms of the |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
5 |
* Common Development and Distribution License (the "License"). |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
6 |
* You may not use this file except in compliance with the License. |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
7 |
* |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
8 |
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
9 |
* or http://www.opensolaris.org/os/licensing. |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
10 |
* See the License for the specific language governing permissions |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
11 |
* and limitations under the License. |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
12 |
* |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
13 |
* When distributing Covered Code, include this CDDL HEADER in each |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
14 |
* file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
15 |
* If applicable, add the following below this CDDL HEADER, with the |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
16 |
* fields enclosed by brackets "[]" replaced with your own identifying |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
17 |
* information: Portions Copyright [yyyy] [name of copyright owner] |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
18 |
* |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
19 |
* CDDL HEADER END |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
20 |
*/ |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
21 |
|
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
22 |
/* |
2805
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
23 |
* Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
24 |
*/ |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
25 |
|
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
26 |
/* |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
27 |
* Unfortunately, the behavior this module has inherited is not one |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
28 |
* of "get me information about file X or directory Y", but "tell me |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
29 |
* what calling 'new File(X)' would do in Java". This includes |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
30 |
* nonsense like manufacturing correct fake data for nonexistent |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
31 |
* files. |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
32 |
* |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
33 |
* This sorely needs to be ripped out and replaced with a sane |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
34 |
* api. |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
35 |
*/ |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
36 |
|
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
37 |
#include <sys/stat.h> |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
38 |
#include <sys/types.h> |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
39 |
#include <string.h> |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
40 |
#include <stdio.h> |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
41 |
#include <stdlib.h> |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
42 |
#include <unistd.h> |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
43 |
#include <time.h> |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
44 |
#include <dirent.h> |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
45 |
#include <libgen.h> |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
46 |
#include <limits.h> |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
47 |
|
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
48 |
#include <rad/adr.h> |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
49 |
#include <rad/rad_modapi.h> |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
50 |
|
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
51 |
#include "api_file.h" |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
52 |
|
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
53 |
static adr_data_t * |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
54 |
empty_file(adr_data_t *data, const char *apath, const char *cpath) |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
55 |
{ |
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
56 |
adr_struct_set(data, "absolutePath", |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
57 |
adr_data_new_string(apath, LT_COPY)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
58 |
adr_struct_set(data, "canonicalPath", |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
59 |
adr_data_new_string(cpath, LT_COPY)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
60 |
adr_struct_set(data, "canonical", adr_data_new_boolean(B_TRUE)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
61 |
adr_struct_set(data, "baseName", adr_data_new_string("", LT_COPY)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
62 |
adr_struct_set(data, "exists", adr_data_new_boolean(B_FALSE)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
63 |
adr_struct_set(data, "readable", adr_data_new_boolean(B_FALSE)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
64 |
adr_struct_set(data, "writable", adr_data_new_boolean(B_FALSE)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
65 |
adr_struct_set(data, "hidden", adr_data_new_boolean(B_FALSE)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
66 |
adr_struct_set(data, "directory", adr_data_new_boolean(B_FALSE)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
67 |
adr_struct_set(data, "file", adr_data_new_boolean(B_FALSE)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
68 |
adr_struct_set(data, "lastModified", adr_data_new_time(0, 0)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
69 |
adr_struct_set(data, "length", adr_data_new_long(0)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
70 |
adr_struct_set(data, "freeSpace", adr_data_new_long(0)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
71 |
adr_struct_set(data, "totalSpace", adr_data_new_long(0)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
72 |
adr_struct_set(data, "usableSpace", adr_data_new_long(0)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
73 |
return (adr_data_purify(data)); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
74 |
} |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
75 |
|
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
76 |
static adr_data_t * |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
77 |
read_file(const char *path, const char *file) |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
78 |
{ |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
79 |
struct stat64 st; |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
80 |
char apath[PATH_MAX] = ""; |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
81 |
char cpath[PATH_MAX] = ""; |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
82 |
const char *name = file != NULL ? file : path; |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
83 |
|
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
84 |
adr_data_t *data = adr_data_new_struct(&t__FileSnapshot); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
85 |
adr_struct_set(data, "path", adr_data_new_string(name, LT_COPY)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
86 |
adr_struct_set(data, "absolute", adr_data_new_boolean(name[0] == '/')); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
87 |
|
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
88 |
if (path[0] != '/') { |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
89 |
if (getcwd(apath, PATH_MAX) == NULL) { |
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
90 |
adr_data_free(data); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
91 |
return (NULL); |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
92 |
} |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
93 |
if (apath[1] != '\0') |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
94 |
(void) strlcat(apath, "/", PATH_MAX); |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
95 |
(void) strlcat(apath, path, PATH_MAX); |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
96 |
} else { |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
97 |
(void) strlcpy(apath, path, PATH_MAX); |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
98 |
} |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
99 |
|
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
100 |
if (resolvepath(apath, cpath, PATH_MAX) == -1 || |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
101 |
stat64(path, &st) == -1) |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
102 |
return (empty_file(data, apath, apath)); |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
103 |
|
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
104 |
adr_struct_set(data, "absolutePath", |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
105 |
adr_data_new_string(apath, LT_COPY)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
106 |
adr_struct_set(data, "canonicalPath", |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
107 |
adr_data_new_string(cpath, LT_COPY)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
108 |
adr_struct_set(data, "canonical", |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
109 |
adr_data_new_boolean(strcmp(apath, cpath) == 0)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
110 |
adr_struct_set(data, "baseName", |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
111 |
adr_data_new_string(basename(apath), LT_COPY)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
112 |
adr_struct_set(data, "exists", adr_data_new_boolean(B_TRUE)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
113 |
adr_struct_set(data, "readable", |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
114 |
adr_data_new_boolean(access(path, R_OK) == 0)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
115 |
adr_struct_set(data, "writable", |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
116 |
adr_data_new_boolean(access(path, W_OK) == 0)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
117 |
adr_struct_set(data, "hidden", adr_data_new_boolean(B_FALSE)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
118 |
adr_struct_set(data, "directory", |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
119 |
adr_data_new_boolean(S_ISDIR(st.st_mode))); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
120 |
adr_struct_set(data, "file", adr_data_new_boolean(S_ISREG(st.st_mode))); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
121 |
adr_struct_set(data, "lastModified", adr_data_new_time_ts(&st.st_mtim)); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
122 |
/* XXX: 64-bitify */ |
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
123 |
adr_struct_set(data, "length", adr_data_new_long(st.st_size)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
124 |
adr_struct_set(data, "freeSpace", adr_data_new_long(0)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
125 |
adr_struct_set(data, "totalSpace", adr_data_new_long(0)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
126 |
adr_struct_set(data, "usableSpace", adr_data_new_long(0)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
127 |
return (adr_data_purify(data)); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
128 |
} |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
129 |
|
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
130 |
/* ARGSUSED */ |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
131 |
conerr_t |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
132 |
interface_FileBrowser_read_roots(rad_instance_t *inst, adr_attribute_t *attr, |
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
133 |
adr_data_t **data, adr_data_t **error) |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
134 |
{ |
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
135 |
adr_data_t *result = adr_data_new_array(&t_array__FileSnapshot, 1); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
136 |
(void) adr_array_add(result, read_file("/", NULL)); |
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
137 |
*data = adr_data_purify(result); |
2805
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
138 |
return (CE_OK); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
139 |
} |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
140 |
|
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
141 |
/* ARGSUSED */ |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
142 |
conerr_t |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
143 |
interface_FileBrowser_invoke_getFile(rad_instance_t *inst, adr_method_t *meth, |
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
144 |
adr_data_t **ret, adr_data_t **args, int count, adr_data_t **error) |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
145 |
{ |
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
146 |
*ret = read_file(adr_data_to_string(args[0]), NULL); |
2805
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
147 |
return (CE_OK); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
148 |
} |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
149 |
|
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
150 |
/* ARGSUSED */ |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
151 |
conerr_t |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
152 |
interface_FileBrowser_invoke_getFiles(rad_instance_t *inst, adr_method_t *meth, |
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
153 |
adr_data_t **ret, adr_data_t **args, int count, adr_data_t **error) |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
154 |
{ |
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
155 |
const char *path = adr_data_to_string(args[0]); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
156 |
DIR *d = opendir(path); |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
157 |
struct dirent *ent; |
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
158 |
adr_data_t *result; |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
159 |
|
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
160 |
if (d == NULL) |
2805
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
161 |
return (CE_OBJECT); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
162 |
|
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
163 |
result = adr_data_new_array(&t_array__FileSnapshot, 1); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
164 |
while ((ent = readdir(d)) != NULL) { |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
165 |
char buf[PATH_MAX]; |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
166 |
if (strcmp(ent->d_name, ".") == 0 || |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
167 |
strcmp(ent->d_name, "..") == 0) |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
168 |
continue; |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
169 |
int len = strlen(path); |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
170 |
while (len > 0 && path[len - 1] == '/') |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
171 |
len--; |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
172 |
(void) snprintf(buf, PATH_MAX, "%.*s/%s", len, path, |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
173 |
ent->d_name); |
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
174 |
adr_data_t *file = read_file(buf, NULL); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
175 |
if (file != NULL) |
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
176 |
(void) adr_array_add(result, file); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
177 |
} |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
178 |
(void) closedir(d); |
901
19b502ccabc8
7179786 libadr rename impacts various modules in the userland consolidation
Gary Pennington <gary.pennington@oracle.com>
parents:
827
diff
changeset
|
179 |
*ret = adr_data_purify(result); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
180 |
|
2805
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
181 |
return (CE_OK); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
182 |
} |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
183 |
|
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
184 |
int |
2805
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
185 |
_rad_init(void) |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
186 |
{ |
2805
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
187 |
adr_name_t *aname = adr_name_vcreate( |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
188 |
MOD_DOMAIN, 1, "type", "FileBrowser"); |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
189 |
conerr_t cerr = rad_cont_insert_singleton(rad_container, aname, |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
190 |
&modinfo, &interface_FileBrowser_svr); |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
191 |
adr_name_rele(aname); |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
192 |
if (cerr != CE_OK) { |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
193 |
rad_log(RL_ERROR, "(mod_files) failed to insert FileBrowser"); |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
194 |
return (-1); |
2805
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
195 |
} |
827
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
196 |
|
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
197 |
return (0); |
0944d8c0158b
7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents:
diff
changeset
|
198 |
} |
2805
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
199 |
|
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
200 |
/* |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
201 |
* _rad_fini is called by the RAD daemon when the module is unloaded. Any |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
202 |
* module finalisation is completed here. |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
203 |
*/ |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
204 |
/*ARGSUSED*/ |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
205 |
void |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
206 |
_rad_fini(void *unused) |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
207 |
{ |
4888f6212f94
17510631 Backport 16984138 to 11.2 - vp components must change to match RAD2 enhancements
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
901
diff
changeset
|
208 |
} |