Time to get rid of some rather silly code duplication - some DSO_ctrl()
commands are common to all DSO_METHODs, hence handle them at the top.
This commit is contained in:
parent
a0ec9cf6d5
commit
5b0a0544f2
@ -297,6 +297,22 @@ long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg)
|
|||||||
DSOerr(DSO_F_DSO_CTRL,ERR_R_PASSED_NULL_PARAMETER);
|
DSOerr(DSO_F_DSO_CTRL,ERR_R_PASSED_NULL_PARAMETER);
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
|
/* We should intercept certain generic commands and only pass control
|
||||||
|
* to the method-specific ctrl() function if it's something we don't
|
||||||
|
* handle. */
|
||||||
|
switch(cmd)
|
||||||
|
{
|
||||||
|
case DSO_CTRL_GET_FLAGS:
|
||||||
|
return dso->flags;
|
||||||
|
case DSO_CTRL_SET_FLAGS:
|
||||||
|
dso->flags = (int)larg;
|
||||||
|
return(0);
|
||||||
|
case DSO_CTRL_OR_FLAGS:
|
||||||
|
dso->flags |= (int)larg;
|
||||||
|
return(0);
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
if((dso->meth == NULL) || (dso->meth->dso_ctrl == NULL))
|
if((dso->meth == NULL) || (dso->meth->dso_ctrl == NULL))
|
||||||
{
|
{
|
||||||
DSOerr(DSO_F_DSO_CTRL,DSO_R_UNSUPPORTED);
|
DSOerr(DSO_F_DSO_CTRL,DSO_R_UNSUPPORTED);
|
||||||
|
Loading…
Reference in New Issue
Block a user