summaryrefslogtreecommitdiffstats
path: root/storage/maria/ma_check_standalone.h
blob: 9442800a0c783c5bd16ecbb5df514ece61e2b3c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
/* Copyright (C) 2007 MySQL AB

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; version 2 of the License.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */

#include <my_check_opt.h>

/* almost every standalone maria program will need it */
void _mi_report_crashed(void *file __attribute__((unused)),
                        const char *message __attribute__((unused)),
                        const char *sfile __attribute__((unused)),
                        uint sline __attribute__((unused)))
{
}

static unsigned int no_key(unsigned int not_used __attribute__((unused)))
{
  return ENCRYPTION_KEY_VERSION_INVALID;
}

struct encryption_service_st encryption_handler=
{
  no_key, 0, 0, 0, 0, 0, 0
};

int encryption_scheme_encrypt(const unsigned char* src __attribute__((unused)),
                              unsigned int slen __attribute__((unused)),
                              unsigned char* dst __attribute__((unused)),
                              unsigned int* dlen __attribute__((unused)),
                              struct st_encryption_scheme *scheme __attribute__((unused)),
                              unsigned int key_version __attribute__((unused)),
                              unsigned int i32_1 __attribute__((unused)),
                              unsigned int i32_2 __attribute__((unused)),
                              unsigned long long i64 __attribute__((unused)))
{
  return -1;
}


int encryption_scheme_decrypt(const unsigned char* src __attribute__((unused)),
                              unsigned int slen __attribute__((unused)),
                              unsigned char* dst __attribute__((unused)),
                              unsigned int* dlen __attribute__((unused)),
                              struct st_encryption_scheme *scheme __attribute__((unused)),
                              unsigned int key_version __attribute__((unused)),
                              unsigned int i32_1 __attribute__((unused)),
                              unsigned int i32_2 __attribute__((unused)),
                              unsigned long long i64 __attribute__((unused)))
{
  return -1;
}

/* only those that included myisamchk.h may need and can use the below */
#ifdef _myisamchk_h
/*
  All standalone programs which need to use functions from ma_check.c
  (like maria_repair()) must define their version of _ma_killed_ptr()
  and _ma_check_print_info|warning|error(). Indeed, linking with ma_check.o
  brings in the dependencies of ma_check.o which are definitions of the above
  functions; if the program does not define them then the ones of
  ha_maria.o are used i.e. ha_maria.o is linked into the program, and this
  brings dependencies of ha_maria.o on mysqld.o into the program's linking
  which thus fails, as the program is not linked with mysqld.o.
  This file contains the versions of these functions used by maria_chk and
  maria_read_log.
*/

/*
  Check if check/repair operation was killed by a signal
*/

int _ma_killed_ptr(HA_CHECK *param __attribute__((unused)))
{
  return 0;
}


void _ma_report_progress(HA_CHECK *param __attribute__((unused)),
                         ulonglong progress __attribute__((unused)),
                         ulonglong max_progress __attribute__((unused)))
{
}

	/* print warnings and errors */
	/* VARARGS */

void _ma_check_print_info(HA_CHECK *param __attribute__((unused)),
			 const char *fmt,...)
{
  va_list args;
  DBUG_ENTER("_ma_check_print_info");
  DBUG_PRINT("enter", ("format: %s", fmt));

  va_start(args,fmt);
  vfprintf(stdout, fmt, args);
  fputc('\n',stdout);
  va_end(args);
  DBUG_VOID_RETURN;
}

/* VARARGS */

void _ma_check_print_warning(HA_CHECK *param, const char *fmt,...)
{
  va_list args;
  DBUG_ENTER("_ma_check_print_warning");
  DBUG_PRINT("enter", ("format: %s", fmt));

  fflush(stdout);
  if (!param->warning_printed && !param->error_printed)
  {
    if (param->testflag & T_SILENT)
      fprintf(stderr,"%s: Aria file %s\n",my_progname_short,
	      param->isam_file_name);
    param->out_flag|= O_DATA_LOST;
  }
  param->warning_printed++;
  va_start(args,fmt);
  fprintf(stderr,"%s: warning: ",my_progname_short);
  vfprintf(stderr, fmt, args);
  fputc('\n',stderr);
  fflush(stderr);
  va_end(args);
  DBUG_VOID_RETURN;
}

/* VARARGS */

void _ma_check_print_error(HA_CHECK *param, const char *fmt,...)
{
  va_list args;
  DBUG_ENTER("_ma_check_print_error");
  DBUG_PRINT("enter", ("format: %s", fmt));

  fflush(stdout);
  if (!param->warning_printed && !param->error_printed)
  {
    if (param->testflag & T_SILENT)
      fprintf(stderr,"%s: Aria file %s\n",my_progname_short,param->isam_file_name);
    param->out_flag|= O_DATA_LOST;
  }
  param->error_printed++;
  va_start(args,fmt);
  fprintf(stderr,"%s: error: ",my_progname_short);
  vfprintf(stderr, fmt, args);
  fputc('\n',stderr);
  fflush(stderr);
  va_end(args);
  DBUG_VOID_RETURN;
}

#endif