1 /* 2 * Copyright (C) 2010 iptelorg GmbH 3 * 4 * Permission to use, copy, modify, and distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 /** Parser :: Reason Header Name Parsing Macros. 18 * @file 19 * 20 * @ingroup parser 21 */ 22 #ifndef __case_reas_h 23 #define __case_reas_h 24 25 26 #define ON_CASE \ 27 switch(LOWER_DWORD(val)) { \ 28 case _on1_: \ 29 hdr->type = HDR_REASON_T; \ 30 hdr->name.len = 6; \ 31 return (p + 3); \ 32 case _on2_: \ 33 hdr->type = HDR_REASON_T; \ 34 hdr->name.len = 7; \ 35 return (p + 4); \ 36 case _on3_: \ 37 hdr->type = HDR_REASON_T; \ 38 p+=4; \ 39 goto dc_end; \ 40 } \ 41 if ((LOWER_DWORD(val)&0x00ffffff) ==\ 42 (_on1_&0x00ffffff)){ \ 43 hdr->type = HDR_REASON_T; \ 44 hdr->name.len = 6; \ 45 return (p+3); \ 46 } 47 48 49 50 #define reas_CASE \ 51 p += 4; \ 52 val = SAFE_READ(p, end - p); \ 53 ON_CASE; \ 54 goto other; 55 56 57 58 59 #endif /*__case_reas_h*/ 60 61 /* vi: set ts=4 sw=4 tw=79:ai:cindent: */ 62