summaryrefslogtreecommitdiff
path: root/include/net-snmp/library/snmpUnixDomain.h
blob: 91e7f63c91f8c71202b27116a96d1dceb1e3ff6b (plain)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#ifndef _SNMPUNIXDOMAIN_H
#define _SNMPUNIXDOMAIN_H

#ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN

#if defined(cygwin) || defined(mingw32) || defined(mingw32msvc)
    config_error(Unix domain protocol support unavailable for this platform)
#endif

#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#if HAVE_SYS_UN_H
#include <sys/un.h>
#endif

#include <net-snmp/library/snmp_transport.h>

config_require(SocketBase)

#ifdef __cplusplus
extern          "C" {
#endif

/*
 * The SNMP over local socket transport domain is identified by
 * transportDomainLocal as defined in RFC 3419.
 */

#define TRANSPORT_DOMAIN_LOCAL	1,3,6,1,2,1,100,1,13
NETSNMP_IMPORT oid netsnmp_UnixDomain[];

netsnmp_transport *netsnmp_unix_transport(struct sockaddr_un *addr,
                                          int local);
void netsnmp_unix_agent_config_tokens_register(void);
void netsnmp_unix_parse_security(const char *token, char *param);
int netsnmp_unix_getSecName(void *opaque, int olength,
                            const char *community,
                            size_t community_len, const char **secName,
                            const char **contextName);


/*
 * "Constructor" for transport domain object.  
 */

void            netsnmp_unix_ctor(void);

/*
 * Support functions
 */
void            netsnmp_unix_create_path_with_mode(int mode);
void            netsnmp_unix_dont_create_path(void);

#ifdef __cplusplus
}
#endif
#else

#define netsnmp_unix_create_path_with_mode(x)
#define netsnmp_unix_dont_create_path()

#endif                          /*NETSNMP_TRANSPORT_UNIX_DOMAIN */

#endif/*_SNMPUNIXDOMAIN_H*/