Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(325)

Side by Side Diff: c/user.c

Issue 2842333002: Updated netty-tcnative to version 2.0.0.Final (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « c/thread.c ('k') | java/io/netty/internal/tcnative/Buffer.java » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /* Licensed to the Apache Software Foundation (ASF) under one or more
2 * contributor license agreements. See the NOTICE file distributed with
3 * this work for additional information regarding copyright ownership.
4 * The ASF licenses this file to You under the Apache License, Version 2.0
5 * (the "License"); you may not use this file except in compliance with
6 * the License. You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 /*
18 *
19 * @author Mladen Turk
20 * @version $Id: user.c 1442587 2013-02-05 13:49:48Z rjung $
21 */
22
23 #include "tcn.h"
24 #include "apr_user.h"
25 #include "apr_network_io.h"
26
27 TCN_IMPLEMENT_CALL(jlong, User, uidCurrent)(TCN_STDARGS, jlong pool)
28 {
29 apr_pool_t *p = J2P(pool, apr_pool_t *);
30 apr_uid_t uid;
31 apr_gid_t gid;
32
33 UNREFERENCED(o);
34 TCN_THROW_IF_ERR(apr_uid_current(&uid, &gid, p), uid);
35
36 cleanup:
37 return (jlong)uid;
38 }
39
40 TCN_IMPLEMENT_CALL(jlong, User, gidCurrent)(TCN_STDARGS, jlong pool)
41 {
42 apr_pool_t *p = J2P(pool, apr_pool_t *);
43 apr_uid_t uid;
44 apr_gid_t gid;
45
46 UNREFERENCED(o);
47 TCN_THROW_IF_ERR(apr_uid_current(&uid, &gid, p), gid);
48
49 cleanup:
50 return (jlong)gid;
51 }
52
53 TCN_IMPLEMENT_CALL(jlong, User, uid)(TCN_STDARGS, jstring uname, jlong pool)
54 {
55 apr_pool_t *p = J2P(pool, apr_pool_t *);
56 apr_uid_t uid;
57 apr_gid_t gid;
58 TCN_ALLOC_CSTRING(uname);
59
60 UNREFERENCED(o);
61 TCN_THROW_IF_ERR(apr_uid_get(&uid, &gid, J2S(uname), p), uid);
62
63 cleanup:
64 TCN_FREE_CSTRING(uname);
65 return (jlong)uid;
66 }
67
68 TCN_IMPLEMENT_CALL(jlong, User, usergid)(TCN_STDARGS, jstring uname,
69 jlong pool)
70 {
71 apr_pool_t *p = J2P(pool, apr_pool_t *);
72 apr_uid_t uid;
73 apr_gid_t gid;
74 TCN_ALLOC_CSTRING(uname);
75
76 UNREFERENCED(o);
77 TCN_THROW_IF_ERR(apr_uid_get(&uid, &gid, J2S(uname), p), gid);
78
79 cleanup:
80 TCN_FREE_CSTRING(uname);
81 return (jlong)gid;
82 }
83
84 TCN_IMPLEMENT_CALL(jlong, User, gid)(TCN_STDARGS, jstring gname, jlong pool)
85 {
86 apr_pool_t *p = J2P(pool, apr_pool_t *);
87 apr_gid_t gid;
88 TCN_ALLOC_CSTRING(gname);
89
90 UNREFERENCED(o);
91 TCN_THROW_IF_ERR( apr_gid_get(&gid, J2S(gname), p), gid);
92
93 cleanup:
94 TCN_FREE_CSTRING(gname);
95 return (jlong)gid;
96 }
97
98 TCN_IMPLEMENT_CALL(jstring, User, username)(TCN_STDARGS, jlong userid, jlong poo l)
99 {
100 apr_pool_t *p = J2P(pool, apr_pool_t *);
101 apr_uid_t uid = (apr_uid_t)userid;
102 char *uname = NULL;
103
104 UNREFERENCED(o);
105 TCN_THROW_IF_ERR(apr_uid_name_get(&uname, uid, p), uname);
106
107 cleanup:
108 if (uname)
109 return AJP_TO_JSTRING(uname);
110 else
111 return NULL;
112 }
113
114 TCN_IMPLEMENT_CALL(jstring, User, groupname)(TCN_STDARGS, jlong grpid, jlong poo l)
115 {
116 apr_pool_t *p = J2P(pool, apr_pool_t *);
117 apr_gid_t gid = (apr_uid_t)grpid;
118 char *gname = NULL;
119
120 UNREFERENCED(o);
121 TCN_THROW_IF_ERR(apr_gid_name_get(&gname, gid, p), gname);
122
123 cleanup:
124 if (gname)
125 return AJP_TO_JSTRING(gname);
126 else
127 return NULL;
128 }
129
130 TCN_IMPLEMENT_CALL(jint, User,uidcompare)(TCN_STDARGS, jlong left, jlong right)
131 {
132
133 UNREFERENCED_STDARGS;
134 return (int)apr_uid_compare((apr_uid_t)left,
135 (apr_uid_t)right);
136 }
137
138 TCN_IMPLEMENT_CALL(jint, User,gidcompare)(TCN_STDARGS, jlong left, jlong right)
139 {
140
141 UNREFERENCED_STDARGS;
142 return (int)apr_gid_compare((apr_gid_t)left,
143 (apr_gid_t)right);
144 }
145
146 TCN_IMPLEMENT_CALL(jstring, User, homepath)(TCN_STDARGS, jstring uname, jlong po ol)
147 {
148 apr_pool_t *p = J2P(pool, apr_pool_t *);
149 char *dirname = NULL;
150 TCN_ALLOC_CSTRING(uname);
151
152 UNREFERENCED(o);
153 TCN_THROW_IF_ERR(apr_uid_homepath_get(&dirname, J2S(uname),
154 p), dirname);
155
156 cleanup:
157 TCN_FREE_CSTRING(uname);
158 if (dirname)
159 return AJP_TO_JSTRING(dirname);
160 else
161 return NULL;
162 }
163
OLDNEW
« no previous file with comments | « c/thread.c ('k') | java/io/netty/internal/tcnative/Buffer.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698