Update copyright dates
[src/app-framework-binder.git] / src / afb-cred.h
1 /*
2  * Copyright (C) 2015-2020 "IoT.bzh"
3  * Author: José Bollo <jose.bollo@iot.bzh>
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *   http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 #pragma once
19
20 #include <sys/types.h>
21
22 struct afb_context;
23
24 struct afb_cred
25 {
26         int refcount;
27         uid_t uid;
28         gid_t gid;
29         pid_t pid;
30         const char *user;
31         const char *label;
32         const char *id;
33         const char *exported;
34 };
35
36 extern struct afb_cred *afb_cred_current();
37 extern struct afb_cred *afb_cred_create(uid_t uid, gid_t gid, pid_t pid, const char *label);
38 extern struct afb_cred *afb_cred_create_for_socket(int fd);
39 extern struct afb_cred *afb_cred_addref(struct afb_cred *cred);
40 extern void afb_cred_unref(struct afb_cred *cred);
41
42 extern const char *afb_cred_export(struct afb_cred *cred);
43 extern struct afb_cred *afb_cred_import(const char *string);