]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/snmp.c
zebra: Allow ns delete to happen after under/over flow checks
[mirror_frr.git] / lib / snmp.c
index 1cbd41c72089b4727fc5a0eb8f1c1102870817f1..f11d9dc8cfde81fbea6b52092b282a8ab5883bf5 100644 (file)
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with GNU Zebra; see the file COPYING.  If not, write to the Free
- * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.  
+ * You should have received a copy of the GNU General Public License along
+ * with this program; see the file COPYING; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 #include <zebra.h>
 
 #define min(A,B) ((A) < (B) ? (A) : (B))
 
-int
-oid_compare (const oid *o1, int o1_len, const oid *o2, int o2_len)
+int oid_compare(const oid *o1, int o1_len, const oid *o2, int o2_len)
 {
-  int i;
-
-  for (i = 0; i < min (o1_len, o2_len); i++)
-    {
-      if (o1[i] < o2[i])
-       return -1;
-      else if (o1[i] > o2[i])
-       return 1;
-    }
-  if (o1_len < o2_len)
-    return -1;
-  if (o1_len > o2_len)
-    return 1;
-
-  return 0;
+       int i;
+
+       for (i = 0; i < min(o1_len, o2_len); i++) {
+               if (o1[i] < o2[i])
+                       return -1;
+               else if (o1[i] > o2[i])
+                       return 1;
+       }
+       if (o1_len < o2_len)
+               return -1;
+       if (o1_len > o2_len)
+               return 1;
+
+       return 0;
 }
 
-void *
-oid_copy (void *dest, const void *src, size_t size)
+void *oid_copy(void *dest, const void *src, size_t size)
 {
-  return memcpy (dest, src, size * sizeof (oid));
+       return memcpy(dest, src, size * sizeof(oid));
 }
 
-void
-oid2in_addr (oid oid[], int len, struct in_addr *addr)
+void oid2in_addr(oid oid[], int len, struct in_addr *addr)
 {
-  int i;
-  u_char *pnt;
-  
-  if (len == 0)
-    return;
+       int i;
+       uint8_t *pnt;
 
-  pnt = (u_char *) addr;
+       if (len == 0)
+               return;
 
-  for (i = 0; i < len; i++)
-    *pnt++ = oid[i];
+       pnt = (uint8_t *)addr;
+
+       for (i = 0; i < len; i++)
+               *pnt++ = oid[i];
 }
 
-void
-oid_copy_addr (oid oid[], struct in_addr *addr, int len)
+void oid_copy_addr(oid oid[], struct in_addr *addr, int len)
 {
-  int i;
-  u_char *pnt;
-  
-  if (len == 0)
-    return;
+       int i;
+       uint8_t *pnt;
+
+       if (len == 0)
+               return;
 
-  pnt = (u_char *) addr;
+       pnt = (uint8_t *)addr;
 
-  for (i = 0; i < len; i++)
-    oid[i] = *pnt++;
+       for (i = 0; i < len; i++)
+               oid[i] = *pnt++;
 }
 
-int
-smux_header_generic (struct variable *v, oid *name, size_t *length, int exact,
-                    size_t *var_len, WriteMethod **write_method)
+int smux_header_generic(struct variable *v, oid *name, size_t *length,
+                       int exact, size_t *var_len, WriteMethod **write_method)
 {
-  oid fulloid[MAX_OID_LEN];
-  int ret;
+       oid fulloid[MAX_OID_LEN];
+       int ret;
 
-  oid_copy (fulloid, v->name, v->namelen);
-  fulloid[v->namelen] = 0;
-  /* Check against full instance. */
-  ret = oid_compare (name, *length, fulloid, v->namelen + 1);
+       oid_copy(fulloid, v->name, v->namelen);
+       fulloid[v->namelen] = 0;
+       /* Check against full instance. */
+       ret = oid_compare(name, *length, fulloid, v->namelen + 1);
 
-  /* Check single instance. */
-  if ((exact && (ret != 0)) || (!exact && (ret >= 0)))
-       return MATCH_FAILED;
+       /* Check single instance. */
+       if ((exact && (ret != 0)) || (!exact && (ret >= 0)))
+               return MATCH_FAILED;
 
-  /* In case of getnext, fill in full instance. */
-  memcpy (name, fulloid, (v->namelen + 1) * sizeof (oid));
-  *length = v->namelen + 1;
+       /* In case of getnext, fill in full instance. */
+       memcpy(name, fulloid, (v->namelen + 1) * sizeof(oid));
+       *length = v->namelen + 1;
 
-  *write_method = 0;
-  *var_len = sizeof(long);    /* default to 'long' results */
+       *write_method = 0;
+       *var_len = sizeof(long); /* default to 'long' results */
 
-  return MATCH_SUCCEEDED;
+       return MATCH_SUCCEEDED;
 }
 
-int
-smux_header_table (struct variable *v, oid *name, size_t *length, int exact,
-                  size_t *var_len, WriteMethod **write_method)
+int smux_header_table(struct variable *v, oid *name, size_t *length, int exact,
+                     size_t *var_len, WriteMethod **write_method)
 {
-  /* If the requested OID name is less than OID prefix we
-     handle, adjust it to our prefix. */
-  if ((oid_compare (name, *length, v->name, v->namelen)) < 0)
-    {
-      if (exact)
-       return MATCH_FAILED;
-      oid_copy(name, v->name, v->namelen);
-      *length = v->namelen;
-    }
-
-  *write_method = 0;
-  *var_len = sizeof(long);
-
-  return MATCH_SUCCEEDED;
+       /* If the requested OID name is less than OID prefix we
+          handle, adjust it to our prefix. */
+       if ((oid_compare(name, *length, v->name, v->namelen)) < 0) {
+               if (exact)
+                       return MATCH_FAILED;
+               oid_copy(name, v->name, v->namelen);
+               *length = v->namelen;
+       }
+
+       *write_method = 0;
+       *var_len = sizeof(long);
+
+       return MATCH_SUCCEEDED;
 }