agent_2snmp__perl_8c-source.html from net-snmp at Krugle
Show agent_2snmp__perl_8c-source.html syntax highlighted
<!--#set var="section" value="development" -->
<!--#include virtual="/page-top.html" -->
<!-- CONTENT START -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>snmp_perl.c Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor=white bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.11 -->
<center>
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="pages.html">Related Pages</a> </center>
<hr><h1>snmp_perl.c</h1><div class="fragment"><pre>00001 <font class="preprocessor">#include <EXTERN.h></font>
00002 <font class="preprocessor">#include "perl.h"</font>
00003
00004 <font class="preprocessor">#include <net-snmp/net-snmp-config.h></font>
00005 <font class="preprocessor">#include <net-snmp/net-snmp-includes.h></font>
00006 <font class="preprocessor">#include <net-snmp/agent/net-snmp-agent-includes.h></font>
00007
00008 <font class="keyword">static</font> PerlInterpreter *my_perl;
00009
00010 <font class="keywordtype">void</font> boot_DynaLoader (CV* cv);
00011
00012 <font class="keywordtype">void</font>
00013 xs_init(<font class="keywordtype">void</font>)<font class="keyword"></font>
00014 {
00015 <font class="keywordtype">char</font> myfile[] = __FILE__;
00016 <font class="keywordtype">char</font> modulename[] = <font class="stringliteral">"DynaLoader::boot_DynaLoader"</font>;
00017 <font class="comment">/* DynaLoader is a special case */</font>
00018 newXS(modulename, boot_DynaLoader, myfile);
00019 }
00020
00021
00022 <font class="keywordtype">void</font>
00023 do_something_perlish(<font class="keywordtype">char</font> *something)<font class="keyword"></font>
00024 {
00025 DEBUGMSGTL((<font class="stringliteral">"perl"</font>, <font class="stringliteral">"calling perl\n"</font>));
00026 eval_pv(something, TRUE);
00027 DEBUGMSGTL((<font class="stringliteral">"perl"</font>, <font class="stringliteral">"finished calling perl\n"</font>));
00028 }
00029
00030 <font class="keywordtype">void</font> perl_config_handler(<font class="keyword">const</font> <font class="keywordtype">char</font> *token, <font class="keywordtype">char</font> *line)<font class="keyword"> </font>
00031 {
00032 do_something_perlish(line);
00033 }
00034
00035 <font class="keywordtype">void</font>
00036 init_perl(<font class="keywordtype">void</font>)<font class="keyword"> </font>
00037 {
00038 <font class="keyword">const</font> <font class="keywordtype">char</font> *embedargs[] = { <font class="stringliteral">""</font>, <font class="stringliteral">"snmp_perl.pl"</font> };
00039
00040 DEBUGMSGTL((<font class="stringliteral">"perl"</font>, <font class="stringliteral">"initializing perl\n"</font>));
00041 my_perl = perl_alloc();
00042 perl_construct(my_perl);
00043 perl_parse(my_perl, xs_init, 2, (<font class="keywordtype">char</font> **) embedargs, NULL);
00044 perl_run(my_perl);
00045 DEBUGMSGTL((<font class="stringliteral">"perl"</font>, <font class="stringliteral">"done initializing perl\n"</font>));
00046
00047 <font class="comment">/* register config handlers */</font>
00048 snmpd_register_config_handler(<font class="stringliteral">"perl"</font>, perl_config_handler, NULL,
00049 <font class="stringliteral">"PERLCODE"</font>);
00050 }
00051
00052 <font class="keywordtype">void</font>
00053 shutdown_perl(<font class="keywordtype">void</font>)<font class="keyword"> </font>
00054 {
00055 DEBUGMSGTL((<font class="stringliteral">"perl"</font>, <font class="stringliteral">"shutting down perl\n"</font>));
00056 perl_destruct(my_perl);
00057 perl_free(my_perl);
00058 DEBUGMSGTL((<font class="stringliteral">"perl"</font>, <font class="stringliteral">"finished shutting down perl\n"</font>));
00059 }
<!--#include virtual="/sfbutton.html" -->
</pre></div><hr><address><small><!--#include virtual="/sfbutton.html" -->
Thu Feb 7 12:57:13 2002 for net-snmp by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.gif" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.2.11 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
© 1997-2001</small></address>
</body>
</html>
<!--#include virtual="/sfbutton.html" -->
<!-- CONTENT END -->
<!--#include virtual="/page-bottom.html" -->
See more files for this project here