| ############################################################# -*- c -*- |
| ## generic include for XXX. Do not use directly. |
| ## |
| ## $Id$ |
| ######################################################################## |
| @if $m2c_mark_boundary == 1@ |
| /** START code generated by $RCSfile$ $Revision$ */ |
| @end@ |
| ######################################################################## |
| ## |
| /* |
| * TODO:231:M: |-> copy $node data. |
| * TODO:231:M: | |-> get address type from your context pointer. |
| */ |
| int addressType = -1; |
| size_t actual_size = 0; |
| |
| return MFD_SKIP; /* TODO:235:M: |-> Remove SKIP once you've set $node data */ |
| |
| switch (addressType) { |
| case INETADDRESSTYPE_UNKNOWN: |
| /* |
| * An unknown address type. This value MUST be used if the value |
| * of the InetAddress object is a zero-length string. It may also be |
| * used to indicate an IP address which is not in one of the formats |
| * defined below. |
| */ |
| actual_size = ${m2c_ctx_rhs}; |
| break; |
| |
| case INETADDRESSTYPE_IPV4: |
| /* |
| * Represents an IPv4 network address: |
| * octets contents encoding |
| * 1-4 IPv4 address network-byte order |
| */ |
| actual_size = 4; |
| break; |
| |
| case INETADDRESSTYPE_IPV6: |
| /* |
| * Represents an IPv6 network address: |
| * |
| * octets contents encoding |
| * 1-16 IPv6 address network-byte order |
| */ |
| actual_size = 16; |
| break; |
| |
| case INETADDRESSTYPE_IPV4Z: |
| /* |
| * Represents a non-global IPv4 network address together |
| * with its zone index: |
| * |
| * octets contents encoding |
| * 1-4 IPv4 address network-byte order |
| * 5-8 zone index network-byte order |
| */ |
| actual_size = 8; |
| break; |
| |
| case INETADDRESSTYPE_IPV6Z: |
| /* |
| * Represents a non-global IPv6 network address together |
| * with its zone index: |
| * |
| * octets contents encoding |
| * 1-16 IPv6 address network-byte order |
| * 17-20 zone index network-byte order |
| */ |
| actual_size = 20; |
| break; |
| |
| case INETADDRESSTYPE_DNS: |
| /* |
| * Represents a DNS domain name. The name SHOULD be fully |
| * qualified whenever possible. |
| */ |
| actual_size = ${m2c_ctx_rhs}; |
| break; |
| |
| default: |
| snmp_log(LOG_ERR, "unknown InetAddressType %d for $node\n", |
| addressType); |
| return SNMP_ERR_GENERR; |
| } |
| |
| if ( actual_size > ${m2c_ctx_lhs} ) { |
| snmp_log(LOG_ERR, "actual size %d too big for $node\n", |
| addressType); |
| return SNMP_ERR_GENERR; |
| } |
| |
| memcpy( ${m2c_ctx_lh}, ${m2c_ctx_rh}, actual_size); |
| ${m2c_ctx_lhs} = actual_size; |
| ## |
| ######################################################################## |
| @if $m2c_mark_boundary == 1@ |
| /** END code generated by $RCSfile$ $Revision$ */ |
| @end@ |