Author: aschnell
Date: Thu May 14 16:58:31 2009
New Revision: 57184
URL: http://svn.opensuse.org/viewcvs/yast?rev=57184&view=rev
Log:
- moved option filtering to separate function and rewrote it
Modified:
trunk/storage/libstorage/src/NfsCo.cc
trunk/storage/libstorage/src/NfsCo.h
Modified: trunk/storage/libstorage/src/NfsCo.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/NfsCo.cc?rev=57184&r1=57183&r2=57184&view=diff
==============================================================================
--- trunk/storage/libstorage/src/NfsCo.cc (original)
+++ trunk/storage/libstorage/src/NfsCo.cc Thu May 14 16:58:31 2009
@@ -118,27 +118,44 @@
return( 0 );
}
+
+ list<string>
+ NfsCo::filterOpts(const list<string>& opts)
+ {
+ const char* ign_opt[] = { "hard", "rw", "v3", "v2", "lock" };
+ const char* ign_opt_start[] = { "proto=", "addr=", "vers=" };
+
+ list<string> ret = opts;
+
+ for (size_t i = 0; i < lengthof(ign_opt); ++i)
+ ret.remove(ign_opt[i]);
+
+ for (size_t i = 0; i < lengthof(ign_opt_start); ++i)
+ ret.remove_if(string_starts_with(ign_opt_start[i]));
+
+ return ret;
+ }
+
+
void
NfsCo::getNfsData( ProcMounts& mounts )
{
- y2mil( "begin fstab:" << getStorage()->getFstab() );
- list<FstabEntry> l = getStorage()->getFstab()->getEntries();
- for( list<FstabEntry>::const_iterator i=l.begin(); i!=l.end(); ++i )
+ const list<FstabEntry> l1 = getStorage()->getFstab()->getEntries();
+ for (list<FstabEntry>::const_iterator i = l1.begin(); i != l1.end(); ++i)
{
if( i->fs == "nfs" )
{
Nfs *n = new Nfs( *this, i->device );
n->setMount( i->mount );
- string op = boost::join(i->opts, "," );
- if( op != "defaults" )
- n->setFstabOption( op );
+ string opt = boost::join(i->opts, ",");
+ if (opt != "defaults")
+ n->setFstabOption(opt);
addToList( n );
}
}
- l = mounts.getEntries();
- const char * ign_opt[] = { "hard", "rw", "v3", "v2", "lock" };
- const char * ign_beg[] = { "proto=", "addr=", "vers=" };
- for( list<FstabEntry>::iterator i=l.begin(); i!=l.end(); ++i )
+
+ const list<FstabEntry> l2 = mounts.getEntries();
+ for (list<FstabEntry>::const_iterator i = l2.begin(); i != l2.end(); ++i)
{
if( i->fs == "nfs" )
{
@@ -151,36 +168,17 @@
else
{
n = new Nfs( *this, i->device );
- list<string>::iterator si = i->opts.begin();
- unsigned pos = 0;
- while( si!=i->opts.end() )
- {
- pos=0;
- while( pos