1/* OSPF VTY interface. 2 * Copyright (C) 2000 Toshiaki Takada 3 * 4 * This file is part of GNU Zebra. 5 * 6 * GNU Zebra is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License as published by the 8 * Free Software Foundation; either version 2, or (at your option) any 9 * later version. 10 * 11 * GNU Zebra is distributed in the hope that it will be useful, but 12 * WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with GNU Zebra; see the file COPYING. If not, write to the Free 18 * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 19 * 02111-1307, USA. 20 */ 21 22/* Macros. */ 23#define VTY_GET_UINT32(NAME,V,STR) \ 24{ \ 25 char *endptr = NULL; \ 26 (V) = strtoul ((STR), &endptr, 10); \ 27 if (*endptr != '\0' || ((V) == ULONG_MAX && errno == ERANGE)) \ 28 { \ 29 vty_out (vty, "%% Invalid %s value%s", NAME, VTY_NEWLINE); \ 30 return CMD_WARNING; \ 31 } \ 32} 33 34#define VTY_GET_IPV4_ADDRESS(NAME,V,STR) \ 35{ \ 36 int retv; \ 37 retv = inet_aton ((STR), &(V)); \ 38 if (!retv) \ 39 { \ 40 vty_out (vty, "%% Invalid %s value%s", NAME, VTY_NEWLINE); \ 41 return CMD_WARNING; \ 42 } \ 43} 44 45#define VTY_GET_IPV4_PREFIX(NAME,V,STR) \ 46{ \ 47 int retv; \ 48 retv = str2prefix_ipv4 ((STR), &(V)); \ 49 if (retv <= 0) \ 50 { \ 51 vty_out (vty, "%% Invalid %s value%s", NAME, VTY_NEWLINE); \ 52 return CMD_WARNING; \ 53 } \ 54} 55 56#define VTY_GET_OSPF_AREA_ID(V,F,STR) \ 57{ \ 58 int retv; \ 59 retv = ospf_str2area_id ((STR), &(V), &(F)); \ 60 if (retv < 0) \ 61 { \ 62 vty_out (vty, "%% Invalid OSPF area ID%s", VTY_NEWLINE); \ 63 return CMD_WARNING; \ 64 } \ 65} 66 67#define VTY_GET_OSPF_AREA_ID_NO_BB(NAME,V,F,STR) \ 68{ \ 69 int retv; \ 70 retv = ospf_str2area_id ((STR), &(V), &(F)); \ 71 if (retv < 0) \ 72 { \ 73 vty_out (vty, "%% Invalid OSPF area ID%s", VTY_NEWLINE); \ 74 return CMD_WARNING; \ 75 } \ 76 if (OSPF_IS_AREA_ID_BACKBONE ((V))) \ 77 { \ 78 vty_out (vty, "%% You can't configure %s to backbone%s", \ 79 NAME, VTY_NEWLINE); \ 80 } \ 81} 82 83/* Prototypes. */ 84void ospf_vty_init (); 85void ospf_vty_show_init (); 86