1 /* 2 * Refer-To, Referred-By Header Field Name Parsing Macros 3 * 4 * Copyright (C) 2005 Juha Heinanen 5 * 6 * This file is part of Kamailio, a free SIP server. 7 * 8 * Kamailio is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version 12 * 13 * Kamailio is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 */ 22 23 /*! \file 24 * \brief Parser :: Refer-To, Referred-By Header Field Name Parsing Macros 25 * 26 * \ingroup parser 27 */ 28 29 30 #ifndef CASE_REFE_H 31 #define CASE_REFE_H 32 33 #define REFERRED_BY_CASE \ 34 switch(LOWER_DWORD(val)) { \ 35 case __by1_: \ 36 hdr->type = HDR_REFERREDBY_T; \ 37 hdr->name.len = 11; \ 38 return (p + 4); \ 39 case __by2_: \ 40 hdr->type = HDR_REFERREDBY_T; \ 41 p += 4; \ 42 goto dc_end; \ 43 } 44 45 #define r_to_CASE \ 46 switch(LOWER_DWORD(val)) { \ 47 case _r_to_: \ 48 hdr->type = HDR_REFER_TO_T; \ 49 p += 4; \ 50 goto dc_end; \ 51 \ 52 case _rred_: \ 53 p += 4; \ 54 val = READ(p); \ 55 REFERRED_BY_CASE; \ 56 goto other; \ 57 } 58 59 #define refe_CASE \ 60 p += 4; \ 61 val = READ(p); \ 62 r_to_CASE; \ 63 goto other; 64 65 66 #endif /* CASE_REFE_H */ 67