Next:
List of Figures
Up:
Developer's Guide
Previous:
Developer's Guide
Index
Contents
List of Figures
List of Tables
Bacula Developer Notes
Contributions
Patches
Copyrights
Copyright Assignment -- Fiduciary License Agreement
The Development Cycle
Bacula Code Submissions and Projects
Patches for Released Versions
SVN Usage
Subversion Resources
Developing Bacula
Debugging
Using a Debugger
Memory Leaks
Special Files
When Implementing Incomplete Code
Bacula Source File Structure
Header Files
Programming Standards
Do Not Use
Avoid if Possible
Do Use Whenever Possible
Indenting Standards
Tabbing
Don'ts
Message Classes
Debug Messages
Error Messages
Job Messages
Queued Job Messages
Memory Messages
Bugs Database
Platform Support
General
Requirements to become a Supported Platform
Daemon Protocol
General
Low Level Network Protocol
General Daemon Protocol
The Protocol Used Between the Director and the Storage Daemon
The Protocol Used Between the Director and the File Daemon
The Save Protocol Between the File Daemon and the Storage Daemon
Command and Control Information
Data Information
Director Services Daemon
File Services Daemon
Commands Received from the Director for a Backup
Commands Received from the Director for a Restore
Storage Daemon Design
SD Design Introduction
SD Development Outline
SD Connections and Sessions
SD Append Requests
SD Read Requests
SD Data Structures
Catalog Services
General
Filenames and Maximum Filename Length
Installing and Configuring MySQL
Installing and Configuring PostgreSQL
Installing and Configuring SQLite
Internal Bacula Catalog
Database Table Design
Sequence of Creation of Records for a Save Job
Database Tables
MySQL Table Definition
Storage Media Output Format
General
Definitions
Storage Daemon File Output Format
Overall Format
Serialization
Block Header
Record Header
Version BB02 Block Header
Version 2 Record Header
Volume Label Format
Session Label
Overall Storage Format
Unix File Attributes
Old Depreciated Tape Format
Bacula Porting Notes
Porting Requirements
Steps to Take for Porting
Implementing a GUI Interface
General
Minimal Code in Console Program
GUI Interface is Difficult
TLS
Introduction to TLS
New Configuration Directives
TLS API Implementation
Library Initialization and Cleanup
Manipulating TLS Contexts
Performing Post-Connection Verification
Manipulating TLS Connections
Bnet API Changes
Negotiating a TLS Connection
Manipulating Socket Blocking State
Authentication Negotiation
Bacula Regression Testing
General
Running the Regression Script
Setting the Configuration Parameters
Building the Test Bacula
Setting up your SQL engine
Running the Disk Only Regression
Other Tests
If a Test Fails
Testing your distro
Running a Single Test
Writing a Regression Test
Running the Tests by Hand
Directory Structure
Adding a New Test
Running a Test Under The Debugger
Bacula MD5 Algorithm
Command Line Message Digest Utility
Name
Synopsis
Description
Options
Files
Bugs
Download md5.zip (Zipped archive)
See Also
Exit Status
Copying
Acknowledgements
Bacula Memory Management
General
Statically Allocated Memory
Dynamically Allocated Memory
Pooled and Non-pooled Memory
TCP/IP Network Protocol
General
bnet and Threads
bnet_open
bnet_send
bnet_fsend
Additional Error information
bnet_recv
bnet_sig
bnet_strerror
bnet_close
Becoming a Server
Higher Level Conventions
Smart Memory Allocation
Installing SMARTALLOC
Squelching a SMARTALLOC
Living with Libraries
SMARTALLOC Details
When SMARTALLOC is Disabled
The alloc() Function
Overlays and Underhandedness
Test and Demonstration Program
Invitation to the Hack
Download smartall.zip (Zipped archive)
Copying
GNU Free Documentation License
General Index
About this document ...
Kern Sibbald 2009-04-07