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</TD></TR> 36 37<!----------- Arguments ----------> 38<TR><TH VALIGN="TOP" ALIGN=LEFT>ARGUMENTS</TH><TD> 39 <TABLE BORDER="1" CELLSPACING=0> 40 <TR BGCOLOR="#dddddd"><TH>Argument</TH><TH>Description</TH></TR> 41 <TR VALIGN="TOP"><TD>pmajor</TD> 42 <TD>Pointer to an unsigned int variable to store major version number. 43 </TD></TR> 44 <TR VALIGN="TOP"><TD>pminor</TD> 45 <TD>Pointer to an unsigned int variable to store minor version number. 46 </TD></TR> 47 <TR VALIGN="TOP"><TD>ppl</TD> 48 <TD>Pointer to an unsigned int variable to store patch level number. 49 </TD></TR> 50 </TABLE> 51</TD></TR> 52 53<!----------- Return values ----------> 54<TR> 55<TH VALIGN="TOP" ALIGN=LEFT>RETURN VALUES</TH> 56<TD>smfi_version returns MI_SUCCESS.</TD> 57</TR> 58 59</TABLE> 60 61Note: the compile time version of libmilter is available in the macro 62<CODE>SMFI_VERSION</CODE>. 63To extract the major and minor version as well as the current patch level 64from this macro, the macros 65<CODE>SM_LM_VRS_MAJOR(v)</CODE>, 66<CODE>SM_LM_VRS_MINOR(v)</CODE>, and 67<CODE>SM_LM_VRS_PLVL(v)</CODE> 68can be used, respectively. 69A milter can check the 70<CODE>SMFI_VERSION</CODE> 71macro to determine which functions to use 72(at compile time via C preprocessor statements). 73Using this macro and the 74<CODE>smfi_version()</CODE> 75function, 76a milter can determine at runtime whether it has been (dynamically) 77linked against the expected libmilter version. 78Such a function should only compare the major and minor version, 79not the patch level, 80i.e., the libmilter library will be compatible despite 81different patch levels. 82 83 84<HR SIZE="1"> 85<FONT SIZE="-1"> 86Copyright (c) 2006-2008 Proofpoint, Inc. and its suppliers. 87All rights reserved. 88<BR> 89By using this file, you agree to the terms and conditions set 90forth in the LICENSE. 91</FONT> 92</BODY> 93</HTML> 94