1<HTML> 2<HEAD><TITLE>smfi_version()</TITLE></HEAD> 3<BODY> 4<!-- 5$Id: smfi_version.html,v 1.7 2013-11-22 20:51:39 ca Exp $ 6--> 7<H1>smfi_version()</H1> 8 9<TABLE BORDER="0" CELLSPACING=4 CELLPADDING=4> 10<!---------- Synopsis -----------> 11<TR><TH VALIGN="TOP" ALIGN=LEFT WIDTH=100>SYNOPSIS</TH><TD> 12<PRE> 13#include <libmilter/mfapi.h> 14int smfi_version( 15 unsigned int *pmajor, 16 unsigned int *pminor, 17 unsigned int *ppl 18); 19</PRE> 20Get the (runtime) version of libmilter. 21</TD></TR> 22 23<!----------- Description ----------> 24<TR><TH VALIGN="TOP" ALIGN=LEFT>DESCRIPTION</TH><TD> 25<TABLE BORDER="1" CELLSPACING=1 CELLPADDING=4> 26<TR ALIGN="LEFT" VALIGN=TOP> 27<TH WIDTH="80">Called When</TH> 28<TD>smfi_version may be called at any time.</TD> 29</TR> 30<TR ALIGN="LEFT" VALIGN=TOP> 31<TH WIDTH="80">Effects</TH> 32<TD>None.</TD> 33</TR> 34</TABLE> 35 36<!----------- Arguments ----------> 37<TR><TH VALIGN="TOP" ALIGN=LEFT>ARGUMENTS</TH><TD> 38 <TABLE BORDER="1" CELLSPACING=0> 39 <TR BGCOLOR="#dddddd"><TH>Argument</TH><TH>Description</TH></TR> 40 <TR VALIGN="TOP"><TD>pmajor</TD> 41 <TD>Pointer to an unsigned int variable to store major version number. 42 </TD></TR> 43 <TR VALIGN="TOP"><TD>pminor</TD> 44 <TD>Pointer to an unsigned int variable to store minor version number. 45 </TD></TR> 46 <TR VALIGN="TOP"><TD>ppl</TD> 47 <TD>Pointer to an unsigned int variable to store patch level number. 48 </TD></TR> 49 </TABLE> 50</TD></TR> 51 52<!----------- Return values ----------> 53<TR> 54<TH VALIGN="TOP" ALIGN=LEFT>RETURN VALUES</TH> 55<TD>smfi_version returns MI_SUCCESS.</TD> 56</TR> 57 58</TABLE> 59 60Note: the compile time version of libmilter is available in the macro 61<CODE>SMFI_VERSION</CODE>. 62To extract the major and minor version as well as the current patch level 63from this macro, the macros 64<CODE>SM_LM_VRS_MAJOR(v)</CODE>, 65<CODE>SM_LM_VRS_MINOR(v)</CODE>, and 66<CODE>SM_LM_VRS_PLVL(v)</CODE> 67can be used, respectively. 68A milter can check the 69<CODE>SMFI_VERSION</CODE> 70macro to determine which functions to use 71(at compile time via C preprocessor statements). 72Using this macro and the 73<CODE>smfi_version()</CODE> 74function, 75a milter can determine at runtime whether it has been (dynamically) 76linked against the expected libmilter version. 77Such a function should only compare the major and minor version, 78not the patch level, 79i.e., the libmilter library will be compatible despite 80different patch levels. 81 82 83<HR SIZE="1"> 84<FONT SIZE="-1"> 85Copyright (c) 2006-2008 Proofpoint, Inc. and its suppliers. 86All rights reserved. 87<BR> 88By using this file, you agree to the terms and conditions set 89forth in the LICENSE. 90</FONT> 91</BODY> 92</HTML> 93