X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fdird%2Fua_query.c;h=4cac6c2ea2e137ff66aed2c98f9458c7935b3331;hb=b8224aab234012c2d127b84eceb160e99dd4a14d;hp=a4e42c7771ddd282b9ea7410aaf92ff908a25fb5;hpb=e0097c86a4fc9507ec8b00ee6189a78998df4cda;p=bacula%2Fbacula diff --git a/bacula/src/dird/ua_query.c b/bacula/src/dird/ua_query.c index a4e42c7771..4cac6c2ea2 100644 --- a/bacula/src/dird/ua_query.c +++ b/bacula/src/dird/ua_query.c @@ -7,19 +7,32 @@ * Version $Id$ */ /* - Copyright (C) 2001-2005 Kern Sibbald + Bacula® - The Network Backup Solution - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - version 2 as ammended with additional clauses defined in the - file LICENSE in the main source directory. + Copyright (C) 2001-2006 Free Software Foundation Europe e.V. - 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 - the file LICENSE for additional details. + The main author of Bacula is Kern Sibbald, with contributions from + many others, a complete list can be found in the file AUTHORS. + This program is Free Software; you can redistribute it and/or + modify it under the terms of version two of the GNU General Public + License as published by the Free Software Foundation plus additions + that are listed in the file 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-1301, USA. + + Bacula® is a registered trademark of John Walker. + The licensor of Bacula is the Free Software Foundation Europe + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. +*/ #include "bacula.h" #include "dird.h" @@ -52,11 +65,11 @@ int querycmd(UAContext *ua, const char *cmd) int nprompt = 0;; char *query_file = director->query_file; - if (!open_db(ua)) { + if (!open_client_db(ua)) { goto bail_out; } - if ((fd=fopen(query_file, "r")) == NULL) { - bsendmsg(ua, "Could not open %s: ERR=%s\n", query_file, + if ((fd=fopen(query_file, "rb")) == NULL) { + bsendmsg(ua, _("Could not open %s: ERR=%s\n"), query_file, strerror(errno)); goto bail_out; } @@ -239,42 +252,39 @@ static POOLMEM *substitute_prompts(UAContext *ua, */ int sqlquerycmd(UAContext *ua, const char *cmd) { - POOLMEM *query = get_pool_memory(PM_MESSAGE); + POOL_MEM query(PM_MESSAGE); int len; const char *msg; - if (!open_db(ua)) { - free_pool_memory(query); + if (!open_client_db(ua)) { return 1; } - *query = 0; + *query.c_str() = 0; bsendmsg(ua, _("Entering SQL query mode.\n" "Terminate each query with a semicolon.\n" "Terminate query mode with a blank line.\n")); - msg = "Enter SQL query: "; + msg = _("Enter SQL query: "); while (get_cmd(ua, msg)) { len = strlen(ua->cmd); Dmsg2(400, "len=%d cmd=%s:\n", len, ua->cmd); if (len == 0) { break; } - query = check_pool_memory_size(query, len + 1); - if (*query != 0) { + if (*query.c_str() != 0) { pm_strcat(query, " "); } pm_strcat(query, ua->cmd); if (ua->cmd[len-1] == ';') { ua->cmd[len-1] = 0; /* zap ; */ /* Submit query */ - db_list_sql_query(ua->jcr, ua->db, query, prtit, ua, 1, HORZ_LIST); - *query = 0; /* start new query */ + db_list_sql_query(ua->jcr, ua->db, query.c_str(), prtit, ua, 1, HORZ_LIST); + *query.c_str() = 0; /* start new query */ msg = _("Enter SQL query: "); } else { msg = _("Add to SQL query: "); } } - free_pool_memory(query); bsendmsg(ua, _("End query mode.\n")); return 1; }