groups: use uloop_timeout_remaining64
[project/omcproxy.git] / src / proxy.h
1 /*
2 * Copyright 2015 Steven Barth <steven at midlink.org>
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * 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 #pragma once
19
20 #include <stdint.h>
21 #include <stdbool.h>
22 #include <netinet/in.h>
23
24 enum proxy_flags {
25 // minimum scope to proxy (use only one, includes higher scopes)
26 PROXY_REALMLOCAL = 3,
27 PROXY_ADMINLOCAL = 4,
28 PROXY_SITELOCAL = 5,
29 PROXY_ORGLOCAL = 8,
30 PROXY_GLOBAL = 0xe,
31
32 // proxy may be flushed (from static config source)
33 PROXY_FLUSHABLE = 1 << 4,
34
35 // internal values
36 _PROXY_UNUSED = 1 << 5,
37 _PROXY_SCOPEMASK = 0xf,
38 };
39
40
41 int proxy_set(int uplink, const int downlinks[], size_t downlinks_cnt, enum proxy_flags flags);
42
43
44 void proxy_update(bool all);
45 void proxy_flush(void);