km_db_mysql.c 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. /*
  2. * $Id$
  3. *
  4. * MySQL module interface
  5. *
  6. * Copyright (C) 2001-2003 FhG Fokus
  7. * Copyright (C) 2008 1&1 Internet AG
  8. *
  9. * This file is part of openser, a free SIP server.
  10. *
  11. * openser is free software; you can redistribute it and/or modify
  12. * it under the terms of the GNU General Public License as published by
  13. * the Free Software Foundation; either version 2 of the License, or
  14. * (at your option) any later version
  15. *
  16. * openser is distributed in the hope that it will be useful,
  17. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. * GNU General Public License for more details.
  20. *
  21. * You should have received a copy of the GNU General Public License
  22. * along with this program; if not, write to the Free Software
  23. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  24. */
  25. /*
  26. * History:
  27. * --------
  28. * 2003-03-11 updated to the new module exports interface (andrei)
  29. * 2003-03-16 flags export parameter added (janakj)
  30. */
  31. #include "../../sr_module.h"
  32. #include "dbase.h"
  33. #include "db_mysql.h"
  34. #include <mysql/mysql.h>
  35. unsigned int db_mysql_ping_interval = 5 * 60; /* Default is 5 minutes */
  36. unsigned int db_mysql_timeout_interval = 2; /* Default is 6 seconds */
  37. unsigned int db_mysql_auto_reconnect = 1; /* Default is enabled */
  38. static int mysql_mod_init(void);
  39. MODULE_VERSION
  40. /*
  41. * MySQL database module interface
  42. */
  43. static cmd_export_t cmds[] = {
  44. {"db_use_table", (cmd_function)db_mysql_use_table, 2, 0, 0, 0},
  45. {"db_init", (cmd_function)db_mysql_init, 1, 0, 0, 0},
  46. {"db_close", (cmd_function)db_mysql_close, 2, 0, 0, 0},
  47. {"db_query", (cmd_function)db_mysql_query, 2, 0, 0, 0},
  48. {"db_fetch_result", (cmd_function)db_mysql_fetch_result, 2, 0, 0, 0},
  49. {"db_raw_query", (cmd_function)db_mysql_raw_query, 2, 0, 0, 0},
  50. {"db_free_result", (cmd_function)db_mysql_free_result, 2, 0, 0, 0},
  51. {"db_insert", (cmd_function)db_mysql_insert, 2, 0, 0, 0},
  52. {"db_delete", (cmd_function)db_mysql_delete, 2, 0, 0, 0},
  53. {"db_update", (cmd_function)db_mysql_update, 2, 0, 0, 0},
  54. {"db_replace", (cmd_function)db_mysql_replace, 2, 0, 0, 0},
  55. {"db_last_inserted_id", (cmd_function)db_last_inserted_id, 1, 0, 0, 0},
  56. {"db_insert_update", (cmd_function)db_insert_update, 2, 0, 0, 0},
  57. {0, 0, 0, 0, 0, 0}
  58. };
  59. /*
  60. * Exported parameters
  61. */
  62. static param_export_t params[] = {
  63. {"ping_interval", INT_PARAM, &db_mysql_ping_interval},
  64. {"timeout_interval", INT_PARAM, &db_mysql_timeout_interval},
  65. {"auto_reconnect", INT_PARAM, &db_mysql_auto_reconnect},
  66. {0, 0, 0}
  67. };
  68. struct module_exports exports = {
  69. "db_mysql",
  70. DEFAULT_DLFLAGS, /* dlopen flags */
  71. cmds,
  72. params, /* module parameters */
  73. 0, /* exported statistics */
  74. 0, /* exported MI functions */
  75. 0, /* exported pseudo-variables */
  76. 0, /* extra processes */
  77. mysql_mod_init, /* module initialization function */
  78. 0, /* response function*/
  79. 0, /* destroy function */
  80. 0 /* per-child init function */
  81. };
  82. static int mysql_mod_init(void)
  83. {
  84. LM_DBG("mysql: MySQL client version is %s\n", mysql_get_client_info());
  85. return 0;
  86. }