mod_fix.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. /*
  2. * $Id$
  3. *
  4. * Copyright (C) 2008 iptelorg GmbH
  5. *
  6. * Permission to use, copy, modify, and distribute this software for any
  7. * purpose with or without fee is hereby granted, provided that the above
  8. * copyright notice and this permission notice appear in all copies.
  9. *
  10. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  11. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  12. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  13. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  14. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  15. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  16. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  17. */
  18. /**
  19. * @file mod_fix.h
  20. * @brief Generic fixup functions for module function parameter.
  21. * (kamailio compatibility)
  22. */
  23. #ifndef _mod_fix_h_
  24. #define _mod_fix_h_
  25. #include "sr_module.h"
  26. #include "pvar.h"
  27. #define GPARAM_TYPE_INT FPARAM_INT
  28. #define GPARAM_TYPE_STR FPARAM_STR
  29. #define GPARAM_TYPE_PVS FPARAM_PVS
  30. #define GPARAM_TYPE_PVE FPARAM_PVE
  31. /**
  32. * generic parameter that holds a string, an int, a pseudo-variable
  33. * or a ser select, avp, or subst.
  34. *
  35. * Note: used only for compatibility with existing kamailio code,
  36. * please use fparam_t directly in the future.
  37. *
  38. * @see fparam_t
  39. */
  40. /* reuse ser fparam_t */
  41. #define gparam_t fparam_t
  42. typedef gparam_t *gparam_p;
  43. int fixup_get_svalue(struct sip_msg* msg, gparam_p gp, str *val);
  44. /** get a string value out of a fparam_t.
  45. *
  46. * Note: this macro/function is for kamailio compatibility
  47. * (please use get_str_fparam() directly in the future)
  48. *
  49. * @param msg - pointer to the sip message
  50. * @param fp - pointer to the fparam_t
  51. * @param sval - pointer to str, used to store the result
  52. * @return 0 on success, -1 on error
  53. */
  54. #define fixup_get_svalue(msg, fp, sval) get_str_fparam(sval, msg, fp)
  55. /** get an int value out of a fparam_t.
  56. *
  57. * Note: this macro/function is for kamailio compatibility
  58. * (please use get_int_fparam() directly in the future)
  59. *
  60. * @param msg - pointer to the sip message
  61. * @param fp - pointer to the fparam_t
  62. * @param ival - pointer to str, used to store the result
  63. * @return 0 on success, -1 on error
  64. */
  65. #define fixup_get_ivalue(msg, fp, ival) get_int_fparam(ival, msg, fp)
  66. int fixup_str_null(void** param, int param_no);
  67. int fixup_str_str(void** param, int param_no);
  68. int fixup_free_str_null(void** param, int param_no);
  69. int fixup_free_str_str(void** param, int param_no);
  70. int fixup_uint_null(void** param, int param_no);
  71. int fixup_uint_uint(void** param, int param_no);
  72. int fixup_regexp_null(void** param, int param_no);
  73. int fixup_free_regexp_null(void** param, int param_no);
  74. #if 0
  75. int fixup_regexp_none(void** param, int param_no);
  76. int fixup_free_regexp_none(void** param, int param_no);
  77. /* not implemened yet */
  78. int fixup_regexpNL_null(void** param, int param_no);
  79. int fixup_regexpNL_none(void** param, int param_no);
  80. #endif
  81. int fixup_pvar_null(void **param, int param_no);
  82. int fixup_free_pvar_null(void** param, int param_no);
  83. int fixup_pvar_none(void** param, int param_no);
  84. int fixup_free_pvar_none(void** param, int param_no);
  85. int fixup_pvar_pvar(void **param, int param_no);
  86. int fixup_free_pvar_pvar(void** param, int param_no);
  87. int fixup_pvar_str(void** param, int param_no);
  88. int fixup_free_pvar_str(void** param, int param_no);
  89. int fixup_pvar_str_str(void** param, int param_no);
  90. int fixup_free_pvar_str_str(void** param, int param_no);
  91. int fixup_pvar_uint(void** param, int param_no);
  92. int fixup_free_pvar_uint(void** param, int param_no);
  93. int fixup_igp_igp(void** param, int param_no);
  94. int fixup_free_igp_igp(void** param, int param_no);
  95. int fixup_igp_null(void** param, int param_no);
  96. int fixup_free_igp_null(void** param, int param_no);
  97. int fixup_get_ivalue(struct sip_msg* msg, gparam_p gp, int *val);
  98. int fixup_igp_pvar(void** param, int param_no);
  99. int fixup_free_igp_pvar(void** param, int param_no);
  100. int fixup_igp_pvar_pvar(void** param, int param_no);
  101. int fixup_free_igp_pvar_pvar(void** param, int param_no);
  102. int fixup_spve_spve(void** param, int param_no);
  103. int fixup_free_spve_spve(void** param, int param_no);
  104. int fixup_spve_null(void** param, int param_no);
  105. int fixup_free_spve_null(void** param, int param_no);
  106. int fixup_spve_uint(void** param, int param_no);
  107. int fixup_spve_str(void** param, int param_no);
  108. int fixup_free_spve_str(void** param, int param_no);
  109. int fixup_spve_all(void** param, int param_no);
  110. int fixup_igp_all(void** param, int param_no);
  111. int fixup_spve_igp(void** param, int param_no);
  112. int fixup_free_spve_igp(void** param, int param_no);
  113. /** get the corresp. free fixup function.*/
  114. free_fixup_function mod_fix_get_fixup_free(fixup_function f);
  115. #endif