nis-util  1.0.D108
nis-util-ethers/map.cc
Go to the documentation of this file.
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 :