1 #ifndef NETSNMP_EXTEND_H
2 #define NETSNMP_EXTEND_H
3 
4 config_require( util_funcs/header_simple_table )
5 config_require( utilities/execute )
6 config_add_mib(NET-SNMP-EXTEND-MIB)
7 
8 typedef struct netsnmp_extend_s {
9     char    *token;
10     char    *command;
11     char    *args;
12     char    *input;
13     char    *old_command;
14     char    *old_args;
15     char    *old_input;
16 
17     int      out_len;
18     char    *output;
19     int      numlines;
20     char   **lines;
21     int      result;
22 
23     int      flags;
24     netsnmp_cache     *cache;
25     netsnmp_table_row *row;
26     netsnmp_table_data *dinfo;
27     struct netsnmp_extend_s *next;
28 } netsnmp_extend;
29 
30 void                 init_extend(void);
31 void                 shutdown_extend(void);
32 Netsnmp_Node_Handler handle_nsExtendConfigTable;
33 Netsnmp_Node_Handler handle_nsExtendOutput1Table;
34 Netsnmp_Node_Handler handle_nsExtendOutput2Table;
35 void                 extend_parse_config(const char*, char*);
36 
37 #define COLUMN_EXTCFG_COMMAND	2
38 #define COLUMN_EXTCFG_ARGS	3
39 #define COLUMN_EXTCFG_INPUT	4
40 #define COLUMN_EXTCFG_CACHETIME	5
41 #define COLUMN_EXTCFG_EXECTYPE	6
42 #define COLUMN_EXTCFG_RUNTYPE	7
43 #define COLUMN_EXTCFG_STORAGE	20
44 #define COLUMN_EXTCFG_STATUS	21
45 #define COLUMN_EXTCFG_FIRST_COLUMN	COLUMN_EXTCFG_COMMAND
46 #define COLUMN_EXTCFG_LAST_COLUMN	COLUMN_EXTCFG_STATUS
47 
48 #define COLUMN_EXTOUT1_OUTLEN	0	/* DROPPED */
49 #define COLUMN_EXTOUT1_OUTPUT1	1	/* First Line */
50 #define COLUMN_EXTOUT1_OUTPUT2	2	/* Full Output */
51 #define COLUMN_EXTOUT1_NUMLINES	3
52 #define COLUMN_EXTOUT1_RESULT	4
53 #define COLUMN_EXTOUT1_FIRST_COLUMN	COLUMN_EXTOUT1_OUTPUT1
54 #define COLUMN_EXTOUT1_LAST_COLUMN	COLUMN_EXTOUT1_RESULT
55 
56 #define COLUMN_EXTOUT2_OUTLINE	2
57 #define COLUMN_EXTOUT2_FIRST_COLUMN	COLUMN_EXTOUT2_OUTLINE
58 #define COLUMN_EXTOUT2_LAST_COLUMN	COLUMN_EXTOUT2_OUTLINE
59 
60 #define NS_EXTEND_FLAGS_ACTIVE      0x01
61 #define NS_EXTEND_FLAGS_SHELL       0x02
62 #define NS_EXTEND_FLAGS_WRITEABLE   0x04
63 #define NS_EXTEND_FLAGS_CONFIG      0x08
64 
65 #define NS_EXTEND_ETYPE_EXEC    1
66 #define NS_EXTEND_ETYPE_SHELL   2
67 #define NS_EXTEND_RTYPE_RONLY   1
68 #define NS_EXTEND_RTYPE_RWRITE  2
69 
70 #endif /* NETSNMP_EXTEND_H */
71