From: Geoff Thorpe Date: Sun, 8 Oct 2000 22:32:57 +0000 (+0000) Subject: Time to get rid of some rather silly code duplication - some DSO_ctrl() X-Git-Tag: OpenSSL_0_9_6~1^2~6 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=5b0a0544f2a7e4cc0666aea72fc45da2f17473a4;hp=a0ec9cf6d55ac372922046367ad0128e1abcd0df 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. --- diff --git a/crypto/dso/dso_lib.c b/crypto/dso/dso_lib.c index acd166697e..fc3d76034a 100644 --- a/crypto/dso/dso_lib.c +++ b/crypto/dso/dso_lib.c @@ -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); 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)) { DSOerr(DSO_F_DSO_CTRL,DSO_R_UNSUPPORTED);