1 /* Copyright (C) 2007 MySQL AB
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; version 2 of the License.
6
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 GNU General Public License for more details.
11
12 You should have received a copy of the GNU General Public License
13 along with this program; if not, write to the Free Software
14 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */
15
16 #include <my_check_opt.h>
17
18 /* almost every standalone maria program will need it */
_mi_report_crashed(void * file,const char * message,const char * sfile,uint sline)19 void _mi_report_crashed(void *file __attribute__((unused)),
20 const char *message __attribute__((unused)),
21 const char *sfile __attribute__((unused)),
22 uint sline __attribute__((unused)))
23 {
24 }
25
no_key(unsigned int not_used)26 static unsigned int no_key(unsigned int not_used __attribute__((unused)))
27 {
28 return ENCRYPTION_KEY_VERSION_INVALID;
29 }
30
31 struct encryption_service_st encryption_handler=
32 {
33 no_key, 0, 0, 0, 0, 0, 0
34 };
35
encryption_scheme_encrypt(const unsigned char * src,unsigned int slen,unsigned char * dst,unsigned int * dlen,struct st_encryption_scheme * scheme,unsigned int key_version,unsigned int i32_1,unsigned int i32_2,unsigned long long i64)36 int encryption_scheme_encrypt(const unsigned char* src __attribute__((unused)),
37 unsigned int slen __attribute__((unused)),
38 unsigned char* dst __attribute__((unused)),
39 unsigned int* dlen __attribute__((unused)),
40 struct st_encryption_scheme *scheme __attribute__((unused)),
41 unsigned int key_version __attribute__((unused)),
42 unsigned int i32_1 __attribute__((unused)),
43 unsigned int i32_2 __attribute__((unused)),
44 unsigned long long i64 __attribute__((unused)))
45 {
46 return -1;
47 }
48
49
encryption_scheme_decrypt(const unsigned char * src,unsigned int slen,unsigned char * dst,unsigned int * dlen,struct st_encryption_scheme * scheme,unsigned int key_version,unsigned int i32_1,unsigned int i32_2,unsigned long long i64)50 int encryption_scheme_decrypt(const unsigned char* src __attribute__((unused)),
51 unsigned int slen __attribute__((unused)),
52 unsigned char* dst __attribute__((unused)),
53 unsigned int* dlen __attribute__((unused)),
54 struct st_encryption_scheme *scheme __attribute__((unused)),
55 unsigned int key_version __attribute__((unused)),
56 unsigned int i32_1 __attribute__((unused)),
57 unsigned int i32_2 __attribute__((unused)),
58 unsigned long long i64 __attribute__((unused)))
59 {
60 return -1;
61 }
62
63 /* only those that included myisamchk.h may need and can use the below */
64 #ifdef _myisamchk_h
65 /*
66 All standalone programs which need to use functions from ma_check.c
67 (like maria_repair()) must define their version of _ma_killed_ptr()
68 and _ma_check_print_info|warning|error(). Indeed, linking with ma_check.o
69 brings in the dependencies of ma_check.o which are definitions of the above
70 functions; if the program does not define them then the ones of
71 ha_maria.o are used i.e. ha_maria.o is linked into the program, and this
72 brings dependencies of ha_maria.o on mysqld.o into the program's linking
73 which thus fails, as the program is not linked with mysqld.o.
74 This file contains the versions of these functions used by maria_chk and
75 maria_read_log.
76 */
77
78 /*
79 Check if check/repair operation was killed by a signal
80 */
81
_ma_killed_ptr(HA_CHECK * param)82 int _ma_killed_ptr(HA_CHECK *param __attribute__((unused)))
83 {
84 return 0;
85 }
86
87
_ma_report_progress(HA_CHECK * param,ulonglong progress,ulonglong max_progress)88 void _ma_report_progress(HA_CHECK *param __attribute__((unused)),
89 ulonglong progress __attribute__((unused)),
90 ulonglong max_progress __attribute__((unused)))
91 {
92 }
93
94 /* print warnings and errors */
95 /* VARARGS */
96
_ma_check_print_info(HA_CHECK * param,const char * fmt,...)97 void _ma_check_print_info(HA_CHECK *param __attribute__((unused)),
98 const char *fmt,...)
99 {
100 va_list args;
101 DBUG_ENTER("_ma_check_print_info");
102 DBUG_PRINT("enter", ("format: %s", fmt));
103
104 va_start(args,fmt);
105 vfprintf(stdout, fmt, args);
106 fputc('\n',stdout);
107 va_end(args);
108 DBUG_VOID_RETURN;
109 }
110
111 /* VARARGS */
112
_ma_check_print_warning(HA_CHECK * param,const char * fmt,...)113 void _ma_check_print_warning(HA_CHECK *param, const char *fmt,...)
114 {
115 va_list args;
116 DBUG_ENTER("_ma_check_print_warning");
117 DBUG_PRINT("enter", ("format: %s", fmt));
118
119 fflush(stdout);
120 if (!param->warning_printed && !param->error_printed)
121 {
122 if (param->testflag & T_SILENT)
123 fprintf(stderr,"%s: Aria file %s\n",my_progname_short,
124 param->isam_file_name);
125 param->out_flag|= O_DATA_LOST;
126 }
127 param->warning_printed++;
128 va_start(args,fmt);
129 fprintf(stderr,"%s: warning: ",my_progname_short);
130 vfprintf(stderr, fmt, args);
131 fputc('\n',stderr);
132 fflush(stderr);
133 va_end(args);
134 DBUG_VOID_RETURN;
135 }
136
137 /* VARARGS */
138
_ma_check_print_error(HA_CHECK * param,const char * fmt,...)139 void _ma_check_print_error(HA_CHECK *param, const char *fmt,...)
140 {
141 va_list args;
142 DBUG_ENTER("_ma_check_print_error");
143 DBUG_PRINT("enter", ("format: %s", fmt));
144
145 fflush(stdout);
146 if (!param->warning_printed && !param->error_printed)
147 {
148 if (param->testflag & T_SILENT)
149 fprintf(stderr,"%s: Aria file %s\n",my_progname_short,param->isam_file_name);
150 param->out_flag|= O_DATA_LOST;
151 }
152 param->error_printed++;
153 va_start(args,fmt);
154 fprintf(stderr,"%s: error: ",my_progname_short);
155 vfprintf(stderr, fmt, args);
156 fputc('\n',stderr);
157 fflush(stderr);
158 va_end(args);
159 DBUG_VOID_RETURN;
160 }
161
162 #endif
163
164