fix version macros name
[m6w6/ext-pq] / src / php_pq_module.c
1 /*
2 +--------------------------------------------------------------------+
3 | PECL :: pq |
4 +--------------------------------------------------------------------+
5 | Redistribution and use in source and binary forms, with or without |
6 | modification, are permitted provided that the conditions mentioned |
7 | in the accompanying LICENSE file are met. |
8 +--------------------------------------------------------------------+
9 | Copyright (c) 2013, Michael Wallner <mike@php.net> |
10 +--------------------------------------------------------------------+
11 */
12
13 #ifdef HAVE_CONFIG_H
14 # include "config.h"
15 #endif
16
17
18 #include <php.h>
19 #include <ext/standard/info.h>
20
21 #include <libpq-fe.h>
22
23 /*
24 #include <Zend/zend_interfaces.h>
25 #include <Zend/zend_exceptions.h>
26 #include <ext/spl/spl_array.h>
27 #include <ext/spl/spl_exceptions.h>
28 #include <ext/raphf/php_raphf.h>
29
30 #include <libpq-events.h>
31 #include <libpq/libpq-fs.h>
32 #include <fnmatch.h>
33 */
34
35 #include "php_pq.h"
36 #include "php_pq_misc.h"
37 #include "php_pqcancel.h"
38 #include "php_pqconn.h"
39 #include "php_pqcopy.h"
40 #include "php_pqexc.h"
41 #include "php_pqlob.h"
42 #include "php_pqres.h"
43 #include "php_pqstm.h"
44 #include "php_pqtxn.h"
45 #include "php_pqtypes.h"
46
47 #define PHP_MINIT_CALL(i) do { \
48 if (SUCCESS != PHP_MINIT(i)(type, module_number TSRMLS_CC)) { \
49 return FAILURE; \
50 } \
51 } while(0)
52
53 static PHP_MINIT_FUNCTION(pq)
54 {
55 PHP_MINIT_CALL(pq_misc);
56 PHP_MINIT_CALL(pqexc);
57
58 PHP_MINIT_CALL(pqconn);
59 PHP_MINIT_CALL(pqcancel);
60 PHP_MINIT_CALL(pqtypes);
61
62 PHP_MINIT_CALL(pqres);
63 PHP_MINIT_CALL(pqstm);
64 PHP_MINIT_CALL(pqtxn);
65
66 PHP_MINIT_CALL(pqcopy);
67 PHP_MINIT_CALL(pqlob);
68
69 return php_persistent_handle_provide(ZEND_STRL("pq\\Connection"), php_pqconn_get_resource_factory_ops(), NULL, NULL TSRMLS_CC);
70 }
71
72 #define PHP_MSHUT_CALL(i) do { \
73 if (SUCCESS != PHP_MSHUTDOWN(i)(type, module_number TSRMLS_CC)) { \
74 return FAILURE; \
75 } \
76 } while(0)
77
78 static PHP_MSHUTDOWN_FUNCTION(pq)
79 {
80 php_persistent_handle_cleanup(ZEND_STRL("pq\\Connection"), NULL, 0 TSRMLS_CC);
81
82 PHP_MSHUT_CALL(pqlob);
83 PHP_MSHUT_CALL(pqcopy);
84 PHP_MSHUT_CALL(pqtxn);
85 PHP_MSHUT_CALL(pqstm);
86 PHP_MSHUT_CALL(pqres);
87 PHP_MSHUT_CALL(pqtypes);
88 PHP_MSHUT_CALL(pqcancel);
89 PHP_MSHUT_CALL(pqconn);
90
91 return SUCCESS;
92 }
93
94 static PHP_MINFO_FUNCTION(pq)
95 {
96 #ifdef HAVE_PQLIBVERSION
97 int libpq_v;
98 #endif
99 char libpq_version[10] = "pre-9.1";
100
101 php_info_print_table_start();
102 php_info_print_table_header(2, "PQ Support", "enabled");
103 php_info_print_table_row(2, "Extension Version", PHP_PQ_VERSION);
104 php_info_print_table_end();
105
106 php_info_print_table_start();
107 php_info_print_table_header(2, "Used Library", "Version");
108 #ifdef HAVE_PQLIBVERSION
109 libpq_v = PQlibVersion();
110 slprintf(libpq_version, sizeof(libpq_version), "%d.%d.%d", libpq_v/10000%100, libpq_v/100%100, libpq_v%100);
111 #endif
112 php_info_print_table_row(2, "libpq", libpq_version);
113 php_info_print_table_end();
114 }
115
116 const zend_function_entry pq_functions[] = {
117 {0}
118 };
119
120 static zend_module_dep pq_module_deps[] = {
121 ZEND_MOD_REQUIRED("raphf")
122 ZEND_MOD_REQUIRED("spl")
123 ZEND_MOD_END
124 };
125
126 zend_module_entry pq_module_entry = {
127 STANDARD_MODULE_HEADER_EX,
128 NULL,
129 pq_module_deps,
130 "pq",
131 pq_functions,
132 PHP_MINIT(pq),
133 PHP_MSHUTDOWN(pq),
134 NULL,/*PHP_RINIT(pq),*/
135 NULL,/*PHP_RSHUTDOWN(pq),*/
136 PHP_MINFO(pq),
137 PHP_PQ_VERSION,
138 STANDARD_MODULE_PROPERTIES
139 };
140
141 #ifdef COMPILE_DL_PQ
142 ZEND_GET_MODULE(pq)
143 #endif
144
145
146 /*
147 * Local variables:
148 * tab-width: 4
149 * c-basic-offset: 4
150 * End:
151 * vim600: noet sw=4 ts=4 fdm=marker
152 * vim<600: noet sw=4 ts=4
153 */