mirror of
https://git.savannah.nongnu.org/git/lwip.git
synced 2025-08-03 21:14:40 +08:00
SNMP: use MEMCPY() instead of ocstrncpy() and objectidncpy()
Signed-off-by: Freddie Chopin <freddie.chopin@gmail.com>
This commit is contained in:
parent
e432014a88
commit
7a77917df6
@ -51,6 +51,8 @@
|
|||||||
#include "lwip/sys.h"
|
#include "lwip/sys.h"
|
||||||
#include "netif/etharp.h"
|
#include "netif/etharp.h"
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IANA assigned enterprise ID for lwIP is 26381
|
* IANA assigned enterprise ID for lwIP is 26381
|
||||||
* @see http://www.iana.org/assignments/enterprise-numbers
|
* @see http://www.iana.org/assignments/enterprise-numbers
|
||||||
@ -893,40 +895,6 @@ static u32_t snmpinpkts = 0,
|
|||||||
snmpouttraps = 0;
|
snmpouttraps = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* prototypes of the following functions are in lwip/src/include/lwip/snmp.h */
|
|
||||||
/**
|
|
||||||
* Copy octet string.
|
|
||||||
*
|
|
||||||
* @param dst points to destination
|
|
||||||
* @param src points to source
|
|
||||||
* @param n number of octets to copy.
|
|
||||||
*/
|
|
||||||
static void ocstrncpy(u8_t *dst, const u8_t *src, u16_t n)
|
|
||||||
{
|
|
||||||
u16_t i = n;
|
|
||||||
while (i > 0) {
|
|
||||||
i--;
|
|
||||||
*dst++ = *src++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Copy object identifier (s32_t) array.
|
|
||||||
*
|
|
||||||
* @param dst points to destination
|
|
||||||
* @param src points to source
|
|
||||||
* @param n number of sub identifiers to copy.
|
|
||||||
*/
|
|
||||||
void objectidncpy(s32_t *dst, const s32_t *src, u8_t n)
|
|
||||||
{
|
|
||||||
u8_t i = n;
|
|
||||||
while(i > 0) {
|
|
||||||
i--;
|
|
||||||
*dst++ = *src++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes sysDescr pointers.
|
* Initializes sysDescr pointers.
|
||||||
*
|
*
|
||||||
@ -2204,10 +2172,10 @@ system_get_value(struct obj_def *od, u16_t len, void *value)
|
|||||||
switch (id)
|
switch (id)
|
||||||
{
|
{
|
||||||
case 1: /* sysDescr */
|
case 1: /* sysDescr */
|
||||||
ocstrncpy((u8_t*)value, sysdescr_ptr, len);
|
MEMCPY(value, sysdescr_ptr, len);
|
||||||
break;
|
break;
|
||||||
case 2: /* sysObjectID */
|
case 2: /* sysObjectID */
|
||||||
objectidncpy((s32_t*)value, (s32_t*)sysobjid.id, (u8_t)(len / sizeof(s32_t)));
|
MEMCPY(value, sysobjid.id, len);
|
||||||
break;
|
break;
|
||||||
case 3: /* sysUpTime */
|
case 3: /* sysUpTime */
|
||||||
{
|
{
|
||||||
@ -2215,13 +2183,13 @@ system_get_value(struct obj_def *od, u16_t len, void *value)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 4: /* sysContact */
|
case 4: /* sysContact */
|
||||||
ocstrncpy((u8_t*)value, syscontact_ptr, len);
|
MEMCPY(value, syscontact_ptr, len);
|
||||||
break;
|
break;
|
||||||
case 5: /* sysName */
|
case 5: /* sysName */
|
||||||
ocstrncpy((u8_t*)value, sysname_ptr, len);
|
MEMCPY(value, sysname_ptr, len);
|
||||||
break;
|
break;
|
||||||
case 6: /* sysLocation */
|
case 6: /* sysLocation */
|
||||||
ocstrncpy((u8_t*)value, syslocation_ptr, len);
|
MEMCPY(value, syslocation_ptr, len);
|
||||||
break;
|
break;
|
||||||
case 7: /* sysServices */
|
case 7: /* sysServices */
|
||||||
{
|
{
|
||||||
@ -2279,15 +2247,15 @@ system_set_value(struct obj_def *od, u16_t len, void *value)
|
|||||||
switch (id)
|
switch (id)
|
||||||
{
|
{
|
||||||
case 4: /* sysContact */
|
case 4: /* sysContact */
|
||||||
ocstrncpy(syscontact_ptr, (u8_t*)value, len);
|
MEMCPY(syscontact_ptr, value, len);
|
||||||
*syscontact_len_ptr = (u8_t)len;
|
*syscontact_len_ptr = (u8_t)len;
|
||||||
break;
|
break;
|
||||||
case 5: /* sysName */
|
case 5: /* sysName */
|
||||||
ocstrncpy(sysname_ptr, (u8_t*)value, len);
|
MEMCPY(sysname_ptr, value, len);
|
||||||
*sysname_len_ptr = (u8_t)len;
|
*sysname_len_ptr = (u8_t)len;
|
||||||
break;
|
break;
|
||||||
case 6: /* sysLocation */
|
case 6: /* sysLocation */
|
||||||
ocstrncpy(syslocation_ptr, (u8_t*)value, len);
|
MEMCPY(syslocation_ptr, value, len);
|
||||||
*syslocation_len_ptr = (u8_t)len;
|
*syslocation_len_ptr = (u8_t)len;
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
@ -2475,7 +2443,7 @@ ifentry_get_value(struct obj_def *od, u16_t len, void *value)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2: /* ifDescr */
|
case 2: /* ifDescr */
|
||||||
ocstrncpy((u8_t*)value, (u8_t*)netif->name, len);
|
MEMCPY(value, netif->name, len);
|
||||||
break;
|
break;
|
||||||
case 3: /* ifType */
|
case 3: /* ifType */
|
||||||
{
|
{
|
||||||
@ -2496,7 +2464,7 @@ ifentry_get_value(struct obj_def *od, u16_t len, void *value)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 6: /* ifPhysAddress */
|
case 6: /* ifPhysAddress */
|
||||||
ocstrncpy((u8_t*)value, netif->hwaddr, len);
|
MEMCPY(value, netif->hwaddr, len);
|
||||||
break;
|
break;
|
||||||
case 7: /* ifAdminStatus */
|
case 7: /* ifAdminStatus */
|
||||||
{
|
{
|
||||||
@ -2608,7 +2576,7 @@ ifentry_get_value(struct obj_def *od, u16_t len, void *value)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 22: /* ifSpecific */
|
case 22: /* ifSpecific */
|
||||||
objectidncpy((s32_t*)value, (s32_t*)ifspecific.id, (u8_t)(len / sizeof(s32_t)));
|
MEMCPY(value, ifspecific.id, len);
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -3352,7 +3320,7 @@ ip_rteentry_get_value(struct obj_def *od, u16_t len, void *value)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 13: /* ipRouteInfo */
|
case 13: /* ipRouteInfo */
|
||||||
objectidncpy((s32_t*)value, (s32_t*)iprouteinfo.id, (u8_t)(len / sizeof(s32_t)));
|
MEMCPY(value, iprouteinfo.id, len);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user