nis-util
1.0.D108
|
00001 // 00002 // nis-util - NIS Administration Utilities 00003 // Copyright (C) 2001, 2008, 2009, 2011, 2012 Peter Miller 00004 // 00005 // This program is free software; you can redistribute it and/or modify 00006 // it under the terms of the GNU General Public License as published by 00007 // the Free Software Foundation; either version 2 of the License, or (at 00008 // your option) any later version. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 // General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with this program. If not, see <http://www.gnu.org/licenses/>. 00017 // 00018 00019 #include <libexplain/fclose.h> 00020 #include <libexplain/ferror.h> 00021 #include <libexplain/fflush.h> 00022 #include <libexplain/fopen.h> 00023 00024 #include <lib/space/ethers.h> 00025 #include <lib/output/file.h> 00026 00027 #include <nis-util-ethers/map.h> 00028 00029 00030 void 00031 map_by_name(const rcstring &ifn, const rcstring &ofn) 00032 { 00033 output::pointer ofp = output_file::create(ofn); 00034 space_ethers::pointer ifp = space_ethers::create(ifn); 00035 for (;;) 00036 { 00037 space_ethers::record::pointer rp = ifp->get(); 00038 if (!rp) 00039 break; 00040 if (rp->get_name().empty()) 00041 continue; 00042 ofp->put(rp->get_name()); 00043 ofp->put(' '); 00044 ofp->put(rp->representation()); 00045 ofp->put('\n'); 00046 } 00047 } 00048 00049 00050 void 00051 map_by_address(const rcstring &ifn, const rcstring &ofn) 00052 { 00053 output::pointer ofp = output_file::create(ofn); 00054 space_ethers::pointer ifp = space_ethers::create(ifn); 00055 for (;;) 00056 { 00057 space_ethers::record::pointer rp = ifp->get(); 00058 if (!rp) 00059 break; 00060 ofp->put(rp->get_mac_address()); 00061 ofp->put(' '); 00062 ofp->put(rp->representation()); 00063 ofp->put('\n'); 00064 } 00065 } 00066 00067 00068 // vim: set ts=8 sw=4 et :