<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <!--Converted with LaTeX2HTML 2008 (1.71) original version by: Nikos Drakos, CBLU, University of Leeds * revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan * with significant contributions from: Jens Lippmann, Marek Rouchal, Martin Wilck and others --> <HTML> <HEAD> <TITLE>Developer's Guide</TITLE> <META NAME="description" CONTENT="Developer's Guide"> <META NAME="keywords" CONTENT="developers"> <META NAME="resource-type" CONTENT="document"> <META NAME="distribution" CONTENT="global"> <META NAME="Generator" CONTENT="LaTeX2HTML v2008"> <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"> <LINK REL="STYLESHEET" HREF="developers.css"> <LINK REL="next" HREF="Contents.html"> </HEAD> <BODY > <!--Navigation Panel--> <A NAME="tex2html5" HREF="Contents.html"> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png"> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev_g.png"> <A NAME="tex2html1" HREF="Contents.html"> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <A NAME="tex2html3" HREF="GNU_Free_Documentation_Lice.html"> <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> <BR> <B> Next:</B> <A NAME="tex2html6" HREF="Contents.html">Contents</A> <B> <A NAME="tex2html2" HREF="Contents.html">Contents</A></B> <B> <A NAME="tex2html4" HREF="GNU_Free_Documentation_Lice.html">Index</A></B> <BR> <BR> <!--End of Navigation Panel--> <P> <P> <P> <P> <H1 ALIGN="CENTER"><IMG WIDTH="455" HEIGHT="99" ALIGN="BOTTOM" BORDER="0" SRC="img2.png" ALT="\includegraphics{bacula-logo.eps}"> <BR><P><P> <BR> <FONT SIZE="+4">Bacula<!-- MATH $^{\normalsize\textregistered }$ --> <IMG WIDTH="23" HEIGHT="22" ALIGN="BOTTOM" BORDER="0" SRC="img1.png" ALT="$^{\normalsize\textregistered }$"> <FONT SIZE="+4">Developer's Guide </FONT></FONT> <DIV ALIGN="CENTER"><FONT SIZE="+4"><FONT SIZE="+4"><FONT SIZE="+1">It comes in the night and sucks the essence from your computers. </FONT></FONT></FONT></DIV><FONT SIZE="+4"></FONT></H1> <DIV> <P ALIGN="CENTER"><STRONG>Kern Sibbald</STRONG></P> <P ALIGN="CENTER"><STRONG> <BR> <BR> <BR> <BR> <BR> <BR> <BR> June 14, 2010 <BR> This manual documents Bacula version 5.0.2 (24 February 2010) <BR> <BR> <BR> Copyright © 1999-2010, Free Software Foundation Europe e.V. <BR> Bacula <IMG WIDTH="19" HEIGHT="25" ALIGN="MIDDLE" BORDER="0" SRC="img3.png" ALT="\textregistered"> is a registered trademark of Kern Sibbald. <BR> <BR> <BR> Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". </STRONG></P> </DIV> <P> <BR><HR> <!--Table of Child-Links--> <A NAME="CHILD_LINKS"></A> <UL> <LI><A NAME="tex2html7" HREF="Contents.html">Contents</A> <LI><A NAME="tex2html8" HREF="Bacula_Developer_Notes.html">Bacula Developer Notes</A> <UL> <LI><A NAME="tex2html9" HREF="Bacula_Developer_Notes.html#SECTION00201000000000000000">Contributions</A> <LI><A NAME="tex2html10" HREF="Bacula_Developer_Notes.html#SECTION00202000000000000000">Patches</A> <LI><A NAME="tex2html11" HREF="Bacula_Developer_Notes.html#SECTION00203000000000000000">Copyrights</A> <LI><A NAME="tex2html12" HREF="Bacula_Developer_Notes.html#SECTION00204000000000000000">Copyright Assignment - Fiduciary License Agreement</A> <LI><A NAME="tex2html13" HREF="Development_Cycle.html">The Development Cycle</A> <LI><A NAME="tex2html14" HREF="Bacula_Code_Submissions_Pro.html">Bacula Code Submissions and Projects</A> <LI><A NAME="tex2html15" HREF="Patches_Released_Versions.html">Patches for Released Versions</A> <LI><A NAME="tex2html16" HREF="Developing_Bacula.html">Developing Bacula</A> <UL> <LI><A NAME="tex2html17" HREF="Developing_Bacula.html#SECTION00241000000000000000">Debugging</A> <LI><A NAME="tex2html18" HREF="Developing_Bacula.html#SECTION00242000000000000000">Using a Debugger</A> <LI><A NAME="tex2html19" HREF="Developing_Bacula.html#SECTION00243000000000000000">Memory Leaks</A> <LI><A NAME="tex2html20" HREF="Developing_Bacula.html#SECTION00244000000000000000">Special Files</A> <LI><A NAME="tex2html21" HREF="Developing_Bacula.html#SECTION00245000000000000000">When Implementing Incomplete Code</A> <LI><A NAME="tex2html22" HREF="Developing_Bacula.html#SECTION00246000000000000000">Bacula Source File Structure</A> <LI><A NAME="tex2html23" HREF="Developing_Bacula.html#SECTION00247000000000000000">Header Files</A> <LI><A NAME="tex2html24" HREF="Developing_Bacula.html#SECTION00248000000000000000">Programming Standards</A> <LI><A NAME="tex2html25" HREF="Developing_Bacula.html#SECTION00249000000000000000">Do Not Use</A> <LI><A NAME="tex2html26" HREF="Developing_Bacula.html#SECTION002410000000000000000">Avoid if Possible</A> <LI><A NAME="tex2html27" HREF="Developing_Bacula.html#SECTION002411000000000000000">Do Use Whenever Possible</A> <LI><A NAME="tex2html28" HREF="Developing_Bacula.html#SECTION002412000000000000000">Indenting Standards</A> <LI><A NAME="tex2html29" HREF="Developing_Bacula.html#SECTION002413000000000000000">Tabbing</A> <LI><A NAME="tex2html30" HREF="Developing_Bacula.html#SECTION002414000000000000000">Don'ts</A> <LI><A NAME="tex2html31" HREF="Developing_Bacula.html#SECTION002415000000000000000">Message Classes</A> <LI><A NAME="tex2html32" HREF="Developing_Bacula.html#SECTION002416000000000000000">Debug Messages</A> <LI><A NAME="tex2html33" HREF="Developing_Bacula.html#SECTION002417000000000000000">Error Messages</A> <LI><A NAME="tex2html34" HREF="Developing_Bacula.html#SECTION002418000000000000000">Job Messages</A> <LI><A NAME="tex2html35" HREF="Developing_Bacula.html#SECTION002419000000000000000">Queued Job Messages</A> <LI><A NAME="tex2html36" HREF="Developing_Bacula.html#SECTION002420000000000000000">Memory Messages</A> <LI><A NAME="tex2html37" HREF="Developing_Bacula.html#SECTION002421000000000000000">Bugs Database</A> </UL> </UL> <BR> <LI><A NAME="tex2html38" HREF="Bacula_Git_Usage.html">Bacula Git Usage</A> <UL> <LI><A NAME="tex2html39" HREF="Bacula_Git_repositories.html">Bacula Git repositories</A> <LI><A NAME="tex2html40" HREF="Git_Usage.html">Git Usage</A> <UL> <LI><A NAME="tex2html41" HREF="Git_Usage.html#SECTION00321000000000000000">Learning Git</A> </UL> <LI><A NAME="tex2html42" HREF="Step_Step_Modifying_Bacula.html">Step by Step Modifying Bacula Code</A> <UL> <LI><A NAME="tex2html43" HREF="Step_Step_Modifying_Bacula.html#SECTION00331000000000000000">More Details</A> </UL> <LI><A NAME="tex2html44" HREF="Forcing_Changes.html">Forcing Changes</A> </UL> <BR> <LI><A NAME="tex2html45" HREF="Bacula_FD_Plugin_API.html">Bacula FD Plugin API</A> <UL> <LI><A NAME="tex2html46" HREF="Normal_vs_Command_Plugins.html">Normal vs Command Plugins</A> <LI><A NAME="tex2html47" HREF="Loading_Plugins.html">Loading Plugins</A> <LI><A NAME="tex2html48" HREF="loadPlugin.html">loadPlugin</A> <LI><A NAME="tex2html49" HREF="Plugin_Entry_Points.html">Plugin Entry Points</A> <UL> <LI><A NAME="tex2html50" HREF="Plugin_Entry_Points.html#SECTION00441000000000000000">newPlugin(bpContext *ctx)</A> <LI><A NAME="tex2html51" HREF="Plugin_Entry_Points.html#SECTION00442000000000000000">freePlugin(bpContext *ctx)</A> <LI><A NAME="tex2html52" HREF="Plugin_Entry_Points.html#SECTION00443000000000000000">getPluginValue(bpContext *ctx, pVariable var, void *value)</A> <LI><A NAME="tex2html53" HREF="Plugin_Entry_Points.html#SECTION00444000000000000000">setPluginValue(bpContext *ctx, pVariable var, void *value)</A> <LI><A NAME="tex2html54" HREF="Plugin_Entry_Points.html#SECTION00445000000000000000">handlePluginEvent(bpContext *ctx, bEvent *event, void *value)</A> <LI><A NAME="tex2html55" HREF="Plugin_Entry_Points.html#SECTION00446000000000000000">startBackupFile(bpContext *ctx, struct save_pkt *sp)</A> <LI><A NAME="tex2html56" HREF="Plugin_Entry_Points.html#SECTION00447000000000000000">endBackupFile(bpContext *ctx)</A> <LI><A NAME="tex2html57" HREF="Plugin_Entry_Points.html#SECTION00448000000000000000">startRestoreFile(bpContext *ctx, const char *cmd)</A> <LI><A NAME="tex2html58" HREF="Plugin_Entry_Points.html#SECTION00449000000000000000">createFile(bpContext *ctx, struct restore_pkt *rp)</A> <LI><A NAME="tex2html59" HREF="Plugin_Entry_Points.html#SECTION004410000000000000000">setFileAttributes(bpContext *ctx, struct restore_pkt *rp)</A> <LI><A NAME="tex2html60" HREF="Plugin_Entry_Points.html#SECTION004411000000000000000">endRestoreFile(bpContext *ctx)</A> <LI><A NAME="tex2html61" HREF="Plugin_Entry_Points.html#SECTION004412000000000000000">pluginIO(bpContext *ctx, struct io_pkt *io)</A> <LI><A NAME="tex2html62" HREF="Plugin_Entry_Points.html#SECTION004413000000000000000">bool checkFile(bpContext *ctx, char *fname)</A> </UL> <LI><A NAME="tex2html63" HREF="Bacula_Plugin_Entrypoints.html">Bacula Plugin Entrypoints</A> <UL> <LI><A NAME="tex2html64" HREF="Bacula_Plugin_Entrypoints.html#SECTION00451000000000000000">bRC registerBaculaEvents(bpContext *ctx, ...)</A> <LI><A NAME="tex2html65" HREF="Bacula_Plugin_Entrypoints.html#SECTION00452000000000000000">bRC getBaculaValue(bpContext *ctx, bVariable var, void *value)</A> <LI><A NAME="tex2html66" HREF="Bacula_Plugin_Entrypoints.html#SECTION00453000000000000000">bRC setBaculaValue(bpContext *ctx, bVariable var, void *value)</A> <LI><A NAME="tex2html67" HREF="Bacula_Plugin_Entrypoints.html#SECTION00454000000000000000">bRC JobMessage(bpContext *ctx, const char *file, int line, int type, utime_t mtime, const char *fmt, ...)</A> <LI><A NAME="tex2html68" HREF="Bacula_Plugin_Entrypoints.html#SECTION00455000000000000000">bRC DebugMessage(bpContext *ctx, const char *file, int line, int level, const char *fmt, ...)</A> <LI><A NAME="tex2html69" HREF="Bacula_Plugin_Entrypoints.html#SECTION00456000000000000000">void baculaMalloc(bpContext *ctx, const char *file, int line, size_t size)</A> <LI><A NAME="tex2html70" HREF="Bacula_Plugin_Entrypoints.html#SECTION00457000000000000000">void baculaFree(bpContext *ctx, const char *file, int line, void *mem)</A> </UL> <LI><A NAME="tex2html71" HREF="Building_Bacula_Plugins.html">Building Bacula Plugins</A> </UL> <BR> <LI><A NAME="tex2html72" HREF="Platform_Support.html">Platform Support</A> <UL> <LI><A NAME="tex2html73" HREF="General.html">General</A> <LI><A NAME="tex2html74" HREF="Requirements_become_Support.html">Requirements to become a Supported Platform</A> </UL> <BR> <LI><A NAME="tex2html75" HREF="Daemon_Protocol.html">Daemon Protocol</A> <UL> <LI><A NAME="tex2html76" HREF="General.html">General</A> <LI><A NAME="tex2html77" HREF="Low_Level_Network_Protocol.html">Low Level Network Protocol</A> <LI><A NAME="tex2html78" HREF="General_Daemon_Protocol.html">General Daemon Protocol</A> <LI><A NAME="tex2html79" HREF="Protocol_Used_Between_Direc.html">The Protocol Used Between the Director and the Storage Daemon</A> <LI><A NAME="tex2html80" HREF="Protocol_Used_Between_Direc.html#SECTION00650000000000000000">The Protocol Used Between the Director and the File Daemon</A> <LI><A NAME="tex2html81" HREF="Save_Protocol_Between_File.html">The Save Protocol Between the File Daemon and the Storage Daemon</A> <UL> <LI><A NAME="tex2html82" HREF="Save_Protocol_Between_File.html#SECTION00661000000000000000">Command and Control Information</A> <LI><A NAME="tex2html83" HREF="Save_Protocol_Between_File.html#SECTION00662000000000000000">Data Information</A> </UL> </UL> <BR> <LI><A NAME="tex2html84" HREF="Director_Services_Daemon.html">Director Services Daemon</A> <LI><A NAME="tex2html85" HREF="File_Services_Daemon.html">File Services Daemon</A> <UL> <LI><A NAME="tex2html86" HREF="Commands_Received_from_Dire.html">Commands Received from the Director for a Backup</A> <LI><A NAME="tex2html87" HREF="Commands_Received_from_Dire.html#SECTION00820000000000000000">Commands Received from the Director for a Restore</A> </UL> <BR> <LI><A NAME="tex2html88" HREF="Storage_Daemon_Design.html">Storage Daemon Design</A> <UL> <LI><A NAME="tex2html89" HREF="SD_Design_Introduction.html">SD Design Introduction</A> <LI><A NAME="tex2html90" HREF="SD_Development_Outline.html">SD Development Outline</A> <LI><A NAME="tex2html91" HREF="SD_Connections_Sessions.html">SD Connections and Sessions</A> <UL> <LI><A NAME="tex2html92" HREF="SD_Connections_Sessions.html#SECTION00931000000000000000">SD Append Requests</A> <LI><A NAME="tex2html93" HREF="SD_Connections_Sessions.html#SECTION00932000000000000000">SD Read Requests</A> </UL> <LI><A NAME="tex2html94" HREF="SD_Data_Structures.html">SD Data Structures</A> </UL> <BR> <LI><A NAME="tex2html95" HREF="Catalog_Services.html">Catalog Services</A> <UL> <LI><A NAME="tex2html96" HREF="General.html">General</A> <UL> <LI><A NAME="tex2html97" HREF="General.html#SECTION001011000000000000000">Filenames and Maximum Filename Length</A> <LI><A NAME="tex2html98" HREF="General.html#SECTION001012000000000000000">Installing and Configuring MySQL</A> <LI><A NAME="tex2html99" HREF="General.html#SECTION001013000000000000000">Installing and Configuring PostgreSQL</A> <LI><A NAME="tex2html100" HREF="General.html#SECTION001014000000000000000">Installing and Configuring SQLite</A> <LI><A NAME="tex2html101" HREF="General.html#SECTION001015000000000000000">Internal Bacula Catalog</A> <LI><A NAME="tex2html102" HREF="General.html#SECTION001016000000000000000">Database Table Design</A> </UL> <LI><A NAME="tex2html103" HREF="Sequence_Creation_Records_S.html">Sequence of Creation of Records for a Save Job</A> <LI><A NAME="tex2html104" HREF="Database_Tables.html">Database Tables</A> <UL> <LI><A NAME="tex2html105" HREF="Database_Tables.html#SECTION001031000000000000000">MySQL Table Definition</A> </UL> </UL> <BR> <LI><A NAME="tex2html106" HREF="Storage_Media_Output_Format.html">Storage Media Output Format</A> <UL> <LI><A NAME="tex2html107" HREF="General.html">General</A> <LI><A NAME="tex2html108" HREF="Definitions.html">Definitions</A> <LI><A NAME="tex2html109" HREF="Storage_Daemon_File_Output.html">Storage Daemon File Output Format</A> <LI><A NAME="tex2html110" HREF="Overall_Format.html">Overall Format</A> <LI><A NAME="tex2html111" HREF="Serialization.html">Serialization</A> <LI><A NAME="tex2html112" HREF="Block_Header.html">Block Header</A> <LI><A NAME="tex2html113" HREF="Record_Header.html">Record Header</A> <LI><A NAME="tex2html114" HREF="Version_BB02_Block_Header.html">Version BB02 Block Header</A> <LI><A NAME="tex2html115" HREF="Version_2_Record_Header.html">Version 2 Record Header</A> <LI><A NAME="tex2html116" HREF="Volume_Label_Format.html">Volume Label Format</A> <LI><A NAME="tex2html117" HREF="Session_Label.html">Session Label</A> <LI><A NAME="tex2html118" HREF="Overall_Storage_Format.html">Overall Storage Format</A> <LI><A NAME="tex2html119" HREF="Unix_File_Attributes.html">Unix File Attributes</A> <LI><A NAME="tex2html120" HREF="Old_Depreciated_Tape_Format.html">Old Depreciated Tape Format</A> </UL> <BR> <LI><A NAME="tex2html121" HREF="Bacula_Porting_Notes.html">Bacula Porting Notes</A> <UL> <LI><A NAME="tex2html122" HREF="Porting_Requirements.html">Porting Requirements</A> <LI><A NAME="tex2html123" HREF="Steps_Take_Porting.html">Steps to Take for Porting</A> </UL> <BR> <LI><A NAME="tex2html124" HREF="Implementing_GUI_Interface.html">Implementing a GUI Interface</A> <UL> <LI><A NAME="tex2html125" HREF="General.html">General</A> <UL> <LI><A NAME="tex2html126" HREF="General.html#SECTION001311000000000000000">Minimal Code in Console Program</A> <LI><A NAME="tex2html127" HREF="General.html#SECTION001312000000000000000">GUI Interface is Difficult</A> </UL> <LI><A NAME="tex2html128" HREF="Bvfs_API.html">Bvfs API</A> </UL> <BR> <LI><A NAME="tex2html129" HREF="TLS.html">TLS</A> <UL> <LI><A NAME="tex2html130" HREF="Introduction_TLS.html">Introduction to TLS</A> <LI><A NAME="tex2html131" HREF="New_Configuration_Directive.html">New Configuration Directives</A> <LI><A NAME="tex2html132" HREF="TLS_API_Implementation.html">TLS API Implementation</A> <UL> <LI><A NAME="tex2html133" HREF="TLS_API_Implementation.html#SECTION001431000000000000000">Library Initialization and Cleanup</A> <LI><A NAME="tex2html134" HREF="TLS_API_Implementation.html#SECTION001432000000000000000">Manipulating TLS Contexts</A> <LI><A NAME="tex2html135" HREF="TLS_API_Implementation.html#SECTION001433000000000000000">Performing Post-Connection Verification</A> <LI><A NAME="tex2html136" HREF="TLS_API_Implementation.html#SECTION001434000000000000000">Manipulating TLS Connections</A> </UL> <LI><A NAME="tex2html137" HREF="Bnet_API_Changes.html">Bnet API Changes</A> <UL> <LI><A NAME="tex2html138" HREF="Bnet_API_Changes.html#SECTION001441000000000000000">Negotiating a TLS Connection</A> <LI><A NAME="tex2html139" HREF="Bnet_API_Changes.html#SECTION001442000000000000000">Manipulating Socket Blocking State</A> </UL> <LI><A NAME="tex2html140" HREF="Authentication_Negotiation.html">Authentication Negotiation</A> </UL> <BR> <LI><A NAME="tex2html141" HREF="Bacula_Regression_Testing.html">Bacula Regression Testing</A> <UL> <LI><A NAME="tex2html142" HREF="Setting_up_Regession_Testin.html">Setting up Regession Testing</A> <LI><A NAME="tex2html143" HREF="Running_Regression_Script.html">Running the Regression Script</A> <UL> <LI><A NAME="tex2html144" HREF="Running_Regression_Script.html#SECTION001521000000000000000">Setting the Configuration Parameters</A> <LI><A NAME="tex2html145" HREF="Running_Regression_Script.html#SECTION001522000000000000000">Building the Test Bacula</A> <LI><A NAME="tex2html146" HREF="Running_Regression_Script.html#SECTION001523000000000000000">Setting up your SQL engine</A> <LI><A NAME="tex2html147" HREF="Running_Regression_Script.html#SECTION001524000000000000000">Running the Disk Only Regression</A> <LI><A NAME="tex2html148" HREF="Running_Regression_Script.html#SECTION001525000000000000000">Other Tests</A> <LI><A NAME="tex2html149" HREF="Running_Regression_Script.html#SECTION001526000000000000000">If a Test Fails</A> </UL> <LI><A NAME="tex2html150" HREF="Testing_Binary_Installation.html">Testing a Binary Installation</A> <LI><A NAME="tex2html151" HREF="Running_Single_Test.html">Running a Single Test</A> <LI><A NAME="tex2html152" HREF="Writing_Regression_Test.html">Writing a Regression Test</A> <UL> <LI><A NAME="tex2html153" HREF="Writing_Regression_Test.html#SECTION001551000000000000000">Running the Tests by Hand</A> <LI><A NAME="tex2html154" HREF="Writing_Regression_Test.html#SECTION001552000000000000000">Directory Structure</A> <LI><A NAME="tex2html155" HREF="Writing_Regression_Test.html#SECTION001553000000000000000">Adding a New Test</A> <LI><A NAME="tex2html156" HREF="Writing_Regression_Test.html#SECTION001554000000000000000">Running a Test Under The Debugger</A> </UL> </UL> <BR> <LI><A NAME="tex2html157" HREF="Bacula_MD5_Algorithm.html">Bacula MD5 Algorithm</A> <UL> <LI><A NAME="tex2html158" HREF="Command_Line_Message_Digest.html">Command Line Message Digest Utility </A> <UL> <LI><A NAME="tex2html159" HREF="Command_Line_Message_Digest.html#SECTION001611000000000000000">Name</A> <LI><A NAME="tex2html160" HREF="Command_Line_Message_Digest.html#SECTION001612000000000000000">Synopsis</A> <LI><A NAME="tex2html161" HREF="Command_Line_Message_Digest.html#SECTION001613000000000000000">Description</A> <LI><A NAME="tex2html162" HREF="Command_Line_Message_Digest.html#SECTION001614000000000000000">Options</A> <LI><A NAME="tex2html163" HREF="Command_Line_Message_Digest.html#SECTION001615000000000000000">Files</A> <LI><A NAME="tex2html164" HREF="Command_Line_Message_Digest.html#SECTION001616000000000000000">Bugs</A> </UL> <LI><A NAME="tex2html165" HREF="Download_md5_ziphttp_www_fo.html">Download md5.ziphttp://www.fourmilab.ch/md5/md5.zip (Zipped archive)</A> <UL> <LI><A NAME="tex2html166" HREF="Download_md5_ziphttp_www_fo.html#SECTION001621000000000000000">See Also</A> <LI><A NAME="tex2html167" HREF="Download_md5_ziphttp_www_fo.html#SECTION001622000000000000000">Exit Status</A> <LI><A NAME="tex2html168" HREF="Download_md5_ziphttp_www_fo.html#SECTION001623000000000000000">Copying</A> <LI><A NAME="tex2html169" HREF="Download_md5_ziphttp_www_fo.html#SECTION001624000000000000000">Acknowledgements</A> </UL> </UL> <BR> <LI><A NAME="tex2html170" HREF="Bacula_Memory_Management.html">Bacula Memory Management</A> <UL> <LI><A NAME="tex2html171" HREF="General.html">General</A> <UL> <LI><A NAME="tex2html172" HREF="General.html#SECTION001711000000000000000">Statically Allocated Memory</A> <LI><A NAME="tex2html173" HREF="General.html#SECTION001712000000000000000">Dynamically Allocated Memory</A> <LI><A NAME="tex2html174" HREF="General.html#SECTION001713000000000000000">Pooled and Non-pooled Memory</A> </UL> </UL> <BR> <LI><A NAME="tex2html175" HREF="TCP_IP_Network_Protocol.html">TCP/IP Network Protocol</A> <UL> <LI><A NAME="tex2html176" HREF="General.html">General</A> <LI><A NAME="tex2html177" HREF="bnet_Threads.html">bnet and Threads</A> <LI><A NAME="tex2html178" HREF="bnet_open.html">bnet_open</A> <LI><A NAME="tex2html179" HREF="bnet_send.html">bnet_send</A> <LI><A NAME="tex2html180" HREF="bnet_fsend.html">bnet_fsend</A> <LI><A NAME="tex2html181" HREF="Additional_Error_informatio.html">Additional Error information</A> <LI><A NAME="tex2html182" HREF="bnet_recv.html">bnet_recv</A> <LI><A NAME="tex2html183" HREF="bnet_sig.html">bnet_sig</A> <LI><A NAME="tex2html184" HREF="bnet_strerror.html">bnet_strerror</A> <LI><A NAME="tex2html185" HREF="bnet_close.html">bnet_close</A> <LI><A NAME="tex2html186" HREF="Becoming_Server.html">Becoming a Server</A> <LI><A NAME="tex2html187" HREF="Higher_Level_Conventions.html">Higher Level Conventions</A> </UL> <BR> <LI><A NAME="tex2html188" HREF="Smart_Memory_Allocation.html">Smart Memory Allocation</A> <UL> <LI><A NAME="tex2html189" HREF="Smart_Memory_Allocation.html#SECTION001901000000000000000">Installing SMARTALLOC</A> <LI><A NAME="tex2html190" HREF="Smart_Memory_Allocation.html#SECTION001902000000000000000">Squelching a SMARTALLOC</A> <LI><A NAME="tex2html191" HREF="Smart_Memory_Allocation.html#SECTION001903000000000000000">Living with Libraries</A> <LI><A NAME="tex2html192" HREF="Smart_Memory_Allocation.html#SECTION001904000000000000000">SMARTALLOC Details</A> <LI><A NAME="tex2html193" HREF="Smart_Memory_Allocation.html#SECTION001905000000000000000">When SMARTALLOC is Disabled</A> <LI><A NAME="tex2html194" HREF="Smart_Memory_Allocation.html#SECTION001906000000000000000">The <TT>alloc()</TT> Function</A> <LI><A NAME="tex2html195" HREF="Smart_Memory_Allocation.html#SECTION001907000000000000000">Overlays and Underhandedness</A> <LI><A NAME="tex2html196" HREF="Smart_Memory_Allocation.html#SECTION001908000000000000000">Test and Demonstration Program</A> <LI><A NAME="tex2html197" HREF="Smart_Memory_Allocation.html#SECTION001909000000000000000">Invitation to the Hack</A> <LI><A NAME="tex2html198" HREF="http_www_fourmilab_ch_smart.html">http://www.fourmilab.ch/smartall/smartall.zip Download smartall.ziphttp://www.fourmilab.ch/smartall/smartall.zip (Zipped archive)</A> <UL> <LI><A NAME="tex2html199" HREF="http_www_fourmilab_ch_smart.html#SECTION001911000000000000000">Copying</A> </UL> </UL> <BR> <LI><A NAME="tex2html200" HREF="GNU_Free_Documentation_Lice.html">GNU Free Documentation License</A> <LI><A NAME="tex2html201" HREF="Director_Index.html">File Daemon Index</A> <LI><A NAME="tex2html202" HREF="About_this_document.html">About this document ...</A> </UL> <!--End of Table of Child-Links--> <BR><HR> <ADDRESS> 2010-06-14 </ADDRESS> </BODY> </HTML>