/* Forward referenced subroutines */
static void scan_types(LEX *lc, MSGS *msg, int dest, char *where, char *cmd);
static const char *get_default_configdir();
-static bool find_config_file(const char *config_file, char *full_path);
+static bool find_config_file(const char *config_file, char *full_path, int max_path);
/* Common Resource definitions */
RES_ITEM *items = NULL;
int level = 0;
- char *full_path = (char *)alloca(MAX_PATH);
+ char *full_path = (char *)alloca(MAX_PATH + 1);
- if (find_config_file(cf, full_path)) {
+ if (find_config_file(cf, full_path, MAX_PATH +1)) {
cf = full_path;
}
/* We can assume the file is UTF-8 as we have seen a UTF-8 BOM */
break;
} else if (token == T_UTF16_BOM) {
- scan_err0(lc, _("Currently we cannot handle UTF-16 source files. Please convert to UTF-16\n"));
+ scan_err0(lc, _("Currently we cannot handle UTF-16 source files. "
+ "Please convert the conf file to UTF-8\n"));
return 0;
} else if (token != T_IDENTIFIER) {
scan_err1(lc, _("Expected a Resource name identifier, got: %s"), lc->str);
}
bool
-find_config_file(const char *config_file, char *full_path)
+find_config_file(const char *config_file, char *full_path, int max_path)
{
if (first_path_separator(config_file) != NULL) {
return false;
}
const char *config_dir = get_default_configdir();
- size_t dir_length = strlen(config_dir);
- size_t file_length = strlen(config_file);
+ int dir_length = strlen(config_dir);
+ int file_length = strlen(config_file);
- if ((dir_length + 1 + file_length + 1) > MAX_PATH) {
+ if ((dir_length + 1 + file_length + 1) > max_path) {
return false;
}
if (wlen != block->buf_len) {
uint32_t blen; /* current buffer length */
- Dmsg2(200, "binbuf=%d buf_len=%d\n", block->binbuf, block->buf_len);
+ Dmsg2(250, "binbuf=%d buf_len=%d\n", block->binbuf, block->buf_len);
blen = wlen;
/* Adjust write size to min/max for tapes only */
{
bool ok;
DEVICE *dev = dcr->dev;
- Dmsg0(200, "Enter read_block_from_device\n");
+ Dmsg0(250, "Enter read_block_from_device\n");
dev->r_dlock();
ok = read_block_from_dev(dcr, check_block_numbers);
dev->dunlock();
- Dmsg0(200, "Leave read_block_from_device\n");
+ Dmsg0(250, "Leave read_block_from_device\n");
return ok;
}
return false;
}
looping = 0;
- Dmsg1(200, "Full read in read_block_from_device() len=%d\n",
+ Dmsg1(250, "Full read in read_block_from_device() len=%d\n",
block->buf_len);
reread:
if (looping > 1) {
if (stat < 0) {
berrno be;
dev->clrerror(-1);
- Dmsg1(200, "Read device got: ERR=%s\n", be.bstrerror());
+ Dmsg1(250, "Read device got: ERR=%s\n", be.bstrerror());
block->read_len = 0;
Mmsg5(dev->errmsg, _("Read error on fd=%d at file:blk %u:%u on device %s. ERR=%s.\n"),
dev->fd(), dev->file, dev->block_num, dev->print_name(), be.bstrerror());
}
return false;
}
- Dmsg3(200, "Read device got %d bytes at %u:%u\n", stat,
+ Dmsg3(250, "Read device got %d bytes at %u:%u\n", stat,
dev->file, dev->block_num);
if (stat == 0) { /* Got EOF ! */
dev->block_num = 0;
Pmsg1(000, "%s", dev->errmsg);
/* Attempt to reposition to re-read the block */
if (dev->is_tape()) {
- Dmsg0(200, "BSR for reread; block too big for buffer.\n");
+ Dmsg0(250, "BSR for reread; block too big for buffer.\n");
if (!dev->bsr(1)) {
Jmsg(jcr, M_ERROR, 0, "%s", dev->bstrerror());
block->read_len = 0;
return false;
}
} else {
- Dmsg0(200, "Seek to beginning of block for reread.\n");
+ Dmsg0(250, "Seek to beginning of block for reread.\n");
boffset_t pos = dev->lseek(dcr, (boffset_t)0, SEEK_CUR); /* get curr pos */
pos -= block->read_len;
dev->lseek(dcr, pos, SEEK_SET);
* lseek(). One to get the position, then the second to do an
* absolute positioning -- so much for efficiency. KES Sep 02.
*/
- Dmsg0(200, "At end of read block\n");
+ Dmsg0(250, "At end of read block\n");
if (block->read_len > block->block_len && !dev->is_tape()) {
char ed1[50];
boffset_t pos = dev->lseek(dcr, (boffset_t)0, SEEK_CUR); /* get curr pos */
- Dmsg1(200, "Current lseek pos=%s\n", edit_int64(pos, ed1));
+ Dmsg1(250, "Current lseek pos=%s\n", edit_int64(pos, ed1));
pos -= (block->read_len - block->block_len);
dev->lseek(dcr, pos, SEEK_SET);
- Dmsg3(200, "Did lseek pos=%s blk_size=%d rdlen=%d\n",
+ Dmsg3(250, "Did lseek pos=%s blk_size=%d rdlen=%d\n",
edit_int64(pos, ed1), block->block_len,
block->read_len);
dev->file_addr = pos;
dev->file_size = pos;
}
- Dmsg2(200, "Exit read_block read_len=%d block_len=%d\n",
+ Dmsg2(250, "Exit read_block read_len=%d block_len=%d\n",
block->read_len, block->block_len);
block->block_read = true;
return true;
BSR *root_bsr = new_bsr();
BSR *bsr = root_bsr;
- Dmsg1(200, "Enter parse_bsf %s\n", fname);
+ Dmsg1(300, "Enter parse_bsf %s\n", fname);
if ((lc = lex_open_file(lc, fname, s_err)) == NULL) {
berrno be;
Emsg2(M_ERROR_TERM, 0, _("Cannot open bootstrap file %s: %s\n"),
}
lc->caller_ctx = (void *)jcr;
while ((token=lex_get_token(lc, T_ALL)) != T_EOF) {
- Dmsg1(200, "parse got token=%s\n", lex_tok_to_str(token));
+ Dmsg1(300, "parse got token=%s\n", lex_tok_to_str(token));
if (token == T_EOL) {
continue;
}
for (i=0; items[i].name; i++) {
if (strcasecmp(items[i].name, lc->str) == 0) {
token = lex_get_token(lc, T_ALL);
- Dmsg1 (200, "in T_IDENT got token=%s\n", lex_tok_to_str(token));
+ Dmsg1 (300, "in T_IDENT got token=%s\n", lex_tok_to_str(token));
if (token != T_EQUALS) {
scan_err1(lc, "expected an equals, got: %s", lc->str);
bsr = NULL;
break;
}
- Dmsg1(200, "calling handler for %s\n", items[i].name);
+ Dmsg1(300, "calling handler for %s\n", items[i].name);
/* Call item handler */
bsr = items[i].handler(lc, bsr);
i = -1;
}
}
if (i >= 0) {
- Dmsg1(200, "Keyword = %s\n", lc->str);
+ Dmsg1(300, "Keyword = %s\n", lc->str);
scan_err1(lc, "Keyword %s not found", lc->str);
bsr = NULL;
break;
}
}
lc = lex_close_file(lc);
- Dmsg0(200, "Leave parse_bsf()\n");
+ Dmsg0(300, "Leave parse_bsf()\n");
if (!bsr) {
free_bsr(root_bsr);
root_bsr = NULL;