File: rewrite.h

package info (click to toggle)
radsecproxy 1.11.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,420 kB
  • sloc: ansic: 12,097; sh: 1,963; makefile: 84
file content (42 lines) | stat: -rw-r--r-- 1,319 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/* Copyright (c) 2019, SWITCH */
/* See LICENSE for licensing information. */

#ifndef _REWRITE_H
#define _REWRITE_H

#include "list.h"
#include "radmsg.h"
#include <regex.h>

struct modattr {
    uint8_t t;
    uint32_t vendor;
    char *replacement;
    regex_t *regex;
};

struct rewrite {
    uint8_t whitelist_mode;
    uint8_t *removeattrs;        /*NULL terminated*/
    uint32_t *removevendorattrs; /*NULL terminated*/
    struct list *addattrs;       /*struct tlv*/
    struct list *modattrs;       /*struct modattr*/
    struct list *modvattrs;      /*struct modattr*/
    struct list *supattrs;       /*struct tlv*/
};

void addrewrite(char *value, uint8_t whitelist_mode, char **rmattrs, char **rmvattrs, char **addattrs,
                char **addvattrs, char **modattrs, char **modvattrs, char **supattrs, char **supvattrs);
int dorewrite(struct radmsg *msg, struct rewrite *rewrite);
struct modattr *extractmodattr(char *nameval);
struct rewrite *getrewrite(char *alt1, char *alt2);

int dorewritemodattr(struct tlv *attr, struct modattr *modattr);
void dorewriterm(struct radmsg *msg, uint8_t *rmattrs, uint32_t *rmvattrs, int inverted);
int addvendorattr(struct radmsg *msg, uint32_t vendor, struct tlv *attr);

#endif /*_REWRITE_H*/

/* Local Variables: */
/* c-file-style: "stroustrup" */
/* End: */