Questions about iter check in profile_iterator()
will.fiveash at oracle.com
Wed Jan 14 17:37:18 EST 2015
On Wed, Jan 14, 2015 at 03:45:01PM -0600, Will Fiveash wrote:
> On Mon, Jan 12, 2015 at 10:40:39PM -0500, Greg Hudson wrote:
> > On 01/12/2015 08:13 PM, Will Fiveash wrote:
> > > So in the profile_iterator call to profile_node_iterator() the
> > > &iter->idata arg is iter_p for profile_node_iterator? Seems odd to me.
> > I don't see what is odd about that. iter->idata holds the node iterator
> > state.
> Eh, looking at the code more I see what's going on so nevermind.
And looking more I think that in the public header there should be:
typedef struct prof_iter *prof_iter;
and the profile_iterator declaration:
should instead be:
struct profile_iterator *iter = (struct profile_iterator *) *iter_p;
etc... This would allow the compiler type checking to catch caller
void* iterator = NULL;
profile_iterator (iterator, &realm_name, &dummy_value);
which should be:
profile_iterator (&iterator, &realm_name, &dummy_value);
Those type of calling errors can currently slip by the compiler.
Oracle Solaris Software Engineer
More information about the krbdev