diff options
Diffstat (limited to 'ndb/src/cw/cpcd/common.cpp')
-rw-r--r-- | ndb/src/cw/cpcd/common.cpp | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/ndb/src/cw/cpcd/common.cpp b/ndb/src/cw/cpcd/common.cpp deleted file mode 100644 index 53c0e4d5a64..00000000000 --- a/ndb/src/cw/cpcd/common.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright (C) 2003 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; either version 2 of the License, or - (at your option) any later version. - - 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#include <ndb_global.h> - -#include "common.hpp" -#include <logger/Logger.hpp> -#include <pwd.h> - -#include <Properties.hpp> -#include <BaseString.hpp> - -int debug = 0; - -Logger logger; - -int -runas(const char * user){ - if(user == 0 || strlen(user) == 0){ - return 0; - } - struct passwd * pw = getpwnam(user); - if(pw == 0){ - logger.error("Can't find user to %s", user); - return -1; - } - uid_t uid = pw->pw_uid; - gid_t gid = pw->pw_gid; - int res = setgid(gid); - if(res != 0){ - logger.error("Can't change group to %s(%d)", user, gid); - return res; - } - - res = setuid(uid); - if(res != 0){ - logger.error("Can't change user to %s(%d)", user, uid); - } - return res; -} - -int -insert(const char * pair, Properties & p){ - BaseString tmp(pair); - - tmp.trim(" \t\n\r"); - - Vector<BaseString> split; - tmp.split(split, ":=", 2); - - if(split.size() != 2) - return -1; - - p.put(split[0].trim().c_str(), split[1].trim().c_str()); - - return 0; -} - -int -insert_file(FILE * f, class Properties& p, bool break_on_empty){ - if(f == 0) - return -1; - - while(!feof(f)){ - char buf[1024]; - fgets(buf, 1024, f); - BaseString tmp = buf; - - if(tmp.length() > 0 && tmp.c_str()[0] == '#') - continue; - - if(insert(tmp.c_str(), p) != 0 && break_on_empty) - break; - } - - return 0; -} - -int -insert_file(const char * filename, class Properties& p){ - FILE * f = fopen(filename, "r"); - int res = insert_file(f, p); - if(f) fclose(f); - return res; -} |