## Index

Download smartall.zip (Zipped archive)
  http://www.fourmilab.ch/smartall/smartall.ziphttp://www.fourmilab.ch/smartall/smartall.zip Download smartall.ziphttp://www.fourmilab.ch/smartall/smartall.zip (Zipped
-csignature
  Options
-dinput_text
  Options
Acknowledgements
  Acknowledgements
Adding a New Test
  Adding a New Test
Additional Error information
  Additional Error information
all-non-root-tape-tests
  Other Tests
all-root-tests
  Other Tests
all-tape-and-file-tests
  Other Tests
all_non-root-tests
  Other Tests
Alloc() Function
  The `alloc()` Function
ALSO
  SEE
    See Also
API Changes
  Bnet
    Bnet API Changes
API Implimentation
  TLS
    TLS API Implementation
Archive
  Download smartall.zip Zipped
    http://www.fourmilab.ch/smartall/smartall.ziphttp://www.fourmilab.ch/smartall/smartall.zip Download smartall.ziphttp://www.fourmilab.ch/smartall/smartall.zip (Zipped
  Download md5.zip Zipped
    Download md5.ziphttp://www.fourmilab.ch/md5/md5.zip (Zipped archive)
Assignment
  Copyright
    Copyright Assignment - Fiduciary
Attributes
  Unix File
    Unix File Attributes
Attribution-ShareAlike 4.0
  Creative Commons Attribution-ShareAlike 4.0
Authentication Negotiation
  Authentication Negotiation
Avoid if Possible
  Avoid if Possible
Backup
  Commands Received from the Director for a
    Commands Received from the
Bacula
  Building the Test
    Building the Test Bacula
  Developing
    Developing Bacula
Bacula Copyright, Trademark, and Licenses
  Bacula Copyright, Trademark, and
Bacula Developer Notes
  Bacula Developer Notes
Bacula Memory Management
  Bacula Memory Management
Bacula Porting Notes
  Bacula Porting Notes
Bacula Regression Testing
  Bacula Regression Testing
Bacula Source File Structure
  Bacula Source File Structure
Becoming a Server
  Becoming a Server
Begin Session Label
  Definitions
Block
  Definitions
Block Header
  Definitions | Block Header
Blocking State
  Socket
    Manipulating
      Manipulating Socket Blocking State
Bnet and Threads
  bnet and Threads
Bnet API Changes
  Bnet API Changes
Bnet_close
  bnet_close
Bnet_fsend
  bnet_fsend
Bnet_open
  bnet_open
Bnet_recv
  bnet_recv
Bnet_send
  bnet_send
Bnet_sig
  bnet_sig
Bnet_strerror
  bnet_strerror
Bugs
  Bugs
Bugs Database
  Bugs Database
Building the Test Bacula
  Building the Test Bacula
Catalog
  Internal Bacula
    Internal Bacula Catalog
Catalog Services
  Catalog Services
CC-BY-SA
  CC-BY-SA
Classes
  Message
    Message Classes
Code
  When Implementing Incomplete
    When Implementing Incomplete Code
Command and Control Information
  Command and Control Information
Command Line Message Digest Utility
  Command Line Message Digest
Commands Received from the Director for a Backup
  Commands Received from the
Commands Received from the Director for a Restore
  Commands Received from the
Connections
  Manipulating TLS
    Manipulating TLS Connections
Contexts
  Manipulating TLS
    Manipulating TLS Contexts
Contributions
  Contributions
Conventions
  Higher Level
    Higher Level Conventions
Copying
  Copying | Copying
Copyright Assignment
  Copyright Assignment - Fiduciary
Copyrights
  Copyrights
Cycle
  Developement
    The Development Cycle
Daemon
  Director Services
    Director Services Daemon
  File Services
    File Services Daemon
  Protocol Used Between the Director and the File
    The Protocol Used Between
  Protocol Used Between the Director and the Storage
    The Protocol Used Between
  Save Protocol Between the File Daemon and the Storage
    The Save Protocol Between
Daemon Protocol
  Daemon Protocol
Data Information
  Data Information
Data Record
  Definitions
Database
  Bugs
    Bugs Database
Database Table Design
  Database Table Design
Database Tables
  Database Tables
DataSize
  Record Header
Debug Messages
  Debug Messages
Debugger
  Running a Test Under
  Using a
    Using a Debugger
Debugging
  Debugging
Definition
  MySQL Table
    MySQL Table Definition
Definitions
  Definitions
Description
  Description
Design
  Database Table
    Database Table Design
  Storage Daemon
    Storage Daemon Design
Details
  SMARTALLOC
    SMARTALLOC Details
Detection
  Smart Memory Allocation With Orphaned Buffer
    Smart Memory Allocation
Developement Cycle
  The Development Cycle
Developing Bacula
  Developing Bacula
Difficult
  GUI Interface is
    GUI Interface is Difficult
Directives
  TLS Configuration
    New Configuration Directives
Director Services Daemon
  Director Services Daemon
Directory Structure
  Directory Structure
Disabled
  When SMARTALLOC is
    When SMARTALLOC is Disabled
Disclaimer
  Disclaimer
Do Not Use
  Do Not Use
Do Use Whenever Possible
  Do Use Whenever Possible
Domain
  Public
    Public Domain
Don'ts
  Don'ts
Download md5.zip (Zipped archive)
  Download md5.ziphttp://www.fourmilab.ch/md5/md5.zip (Zipped archive)
Dynamically Allocated Memory
  Dynamically Allocated Memory
End Session Label
  Definitions
Error Messages
  Error Messages
Exit Status
  Exit Status
Extended-Attributes
  Unix File Attributes
Fails
  If a Test
    If a Test Fails
Feature Requests
  The Development Cycle
Fiduciary License Agreement
  Fiduciary License Agreement
File Services Daemon
  File Services Daemon
File-Attributes
  Unix File Attributes
FileIndex
  Definitions | Record Header | Unix File Attributes
Filename
  Unix File Attributes
Filenames and Maximum Filename Length
  Filenames and Maximum Filename
Files
  Header
    Header Files
  Special
    Special Files
Files
  Files
Format
  Old Depreciated Tape
    Old Depreciated Tape Format
  Overall
    Overall Format
  Overall Storage
    Overall Storage Format
  Storage Daemon File Output
    Storage Daemon File Output
  Storage Media Output
    Storage Media Output Format
  Volume Label
    Volume Label Format
Function
  alloc
    The `alloc()` Function
General
  General | General | General
General
  General | General | General | General
General Daemon Protocol
  General Daemon Protocol
Git
  Bacula Git Usage | Bacula Git repositories
  Repo
    Bacula Git Usage
Git Usage
  Git Usage
GPL
  GPL
GUI Interface is Difficult
  GUI Interface is Difficult
Hack
  Invitation to the
    Invitation to the Hack
Hand
  Running the Tests by
    Running the Tests by
Header
  Block
    Block Header
  Record
    Record Header
  Version 2 Record
    Version 2 Record Header
  Version BB02 Block
    Version BB02 Block Header
Header Files
  Header Files
Higher Level Conventions
  Higher Level Conventions
If a Test Fails
  If a Test Fails
Implementing a Bacula GUI Interface
  Implementing a GUI Interface
Indenting Standards
  Indenting Standards
Information
  Additional Error
    Additional Error information
  Command and Control
    Command and Control Information
  Data
    Data Information
Initialization and Cleanup
  Library
    Library Initialization and Cleanup
Installing and Configuring MySQL
  Installing and Configuring MySQL
Installing and Configuring PostgreSQL
  Installing and Configuring PostgreSQL
Installing and Configuring SQLite
  Installing and Configuring SQLite
Installing SMARTALLOC
  Installing SMARTALLOC
Interface
  Implementing a Bacula GUI
    Implementing a GUI Interface
Internal Bacula Catalog
  Internal Bacula Catalog
Introduction
  SD Design
    SD Design Introduction
  TLS
    Introduction to TLS
Invitation to the Hack
  Invitation to the Hack
Job
  Sequence of Creation of Records for a Save
    Sequence of Creation of
Job Messages
  Job Messages
JobId
  Definitions
Label
  Session
    Session Label
Leaks
  Memory
    Memory Leaks
Learning Git
  Learning Git
Length
  Filenames and Maximum Filename
    Filenames and Maximum Filename
LGPL
  LGPL
Libraries
  Living with
    Living with Libraries
Library Initialization and Cleanup
  Library Initialization and Cleanup
License
  Attribution-ShareAlike 4.0
    Creative Commons Attribution-ShareAlike 4.0
Licenses
  Bacula Copyright Trademark
    Bacula Copyright, Trademark, and
Link
  Unix File Attributes
Living with Libraries
  Living with Libraries
Low Level Network Protocol
  Low Level Network Protocol
Management
  Bacula Memory
    Bacula Memory Management
Manipulating Socket Blocking State
  Manipulating Socket Blocking State
Memory
  Dynamically Allocated
    Dynamically Allocated Memory
  Pooled and Non-pooled
    Pooled and Non-pooled Memory
  Statically Allocated
    Statically Allocated Memory
Memory Leaks
  Memory Leaks
Memory Messages
  Memory Messages
Message Classes
  Message Classes
Messages
  Debug
    Debug Messages
  Error
    Error Messages
  Job
    Job Messages | Queued Job Messages
  Memory
    Memory Messages
Minimal Code in Console Program
  Minimal Code in Console
MySQL
  Installing and Configuring
    Installing and Configuring MySQL
MySQL Table Definition
  MySQL Table Definition
Name
  Name
Negotiating a TLS Connection
  Negotiating a TLS Connection
Negotiation
  TLS Authentication
    Authentication Negotiation
Notes
  Bacula Developer
    Bacula Developer Notes
  Bacula Porting
    Bacula Porting Notes
Old Depreciated Tape Format
  Old Depreciated Tape Format
Options
  Options
Other Tests
  Other Tests
Outline
  SD Development
    SD Development Outline
Overall Format
  Overall Format
Overall Storage Format
  Overall Storage Format
Overlays and Underhandedness
  Overlays and Underhandedness
Parameters
  Setting the Configuration
    Setting the Configuration Parameters
Patches
  Patches
Patches for Released Versions
  Patches for Released Versions
Platform Requirements
  Requirements to become a
Platform Support
  Platform Support
Pooled and Non-pooled Memory
  Pooled and Non-pooled Memory
Porting
  Steps to Take for
    Steps to Take for
Porting Requirements
  Porting Requirements
Possible
  Avoid if
    Avoid if Possible
  Do Use Whenever
    Do Use Whenever Possible
PostgreSQL
  Installing and Configuring
    Installing and Configuring PostgreSQL
Program
  Minimal Code in Console
    Minimal Code in Console
  Test and Demonstration
    Test and Demonstration Program
Programming Standards
  Programming Standards
Protocol
  Daemon
    Daemon Protocol
  General Daemon
    General Daemon Protocol
  Low Level Network
    Low Level Network Protocol
  TCP/IP Network
    TCP/IP Network Protocol
Protocol Used Between the Director and the File Daemon
  The Protocol Used Between
Protocol Used Between the Director and the Storage Daemon
  The Protocol Used Between
Public Domain
  Public Domain
Queued Job Messages
  Queued Job Messages
Record
  Definitions
Record Header
  Definitions | Record Header
Regression
  Running the Disk Only
    Running the Disk Only
Requests
  SD Append
    SD Append Requests
  SD Read
    SD Read Requests
Requirements
  Platform
    Requirements to become a
  Porting
    Porting Requirements
Restore
  Commands Received from the Director for a
    Commands Received from the
Running a Single Test
  Running a Single Test
Running the Disk Only Regression
  Running the Disk Only
Running the Regression Script
  Running the Regression Script
Running the Tests by Hand
  Running the Tests by
Save Protocol Between the File Daemon and the Storage Daemon
  The Save Protocol Between
Script
  Running the Regression
    Running the Regression Script
SD Append Requests
  SD Append Requests
SD Connections and Sessions
  SD Connections and Sessions
SD Data Structures
  SD Data Structures
SD Design Introduction
  SD Design Introduction
SD Development Outline
  SD Development Outline
SD Read Requests
  SD Read Requests
See Also
  See Also
Sequence of Creation of Records for a Save Job
  Sequence of Creation of
Serialization
  Serialization
Server
  Becoming a
    Becoming a Server
Services
  Catalog
    Catalog Services
Session
  Definitions
Session Label
  Session Label
Sessions
  SD Connections and
    SD Connections and Sessions
Setting the Configuration Parameters
  Setting the Configuration Parameters
Setting up Regession Testing
  Setting up Regession Testing
Setting up your SQL engine
  Setting up your SQL
Smart Memory Allocation With Orphaned Buffer Detection
  Smart Memory Allocation
SMARTALLOC
  Installing
    Installing SMARTALLOC
  Squelching a
    Squelching a SMARTALLOC
SMARTALLOC Details
  SMARTALLOC Details
Socket Blocking State
  Manipulating
    Manipulating Socket Blocking State
SPAN class
  SD Append Requests | SD Append Requests | SD Append Requests | SD Append Requests | SD Append Requests | SD Read Requests | SD Read Requests | SD Read Requests
Special Files
  Special Files
SQLite
  Installing and Configuring
    Installing and Configuring SQLite
Squelching a SMARTALLOC
  Squelching a SMARTALLOC
Standards
  Indenting
    Indenting Standards
  Programming
    Programming Standards
Statically Allocated Memory
  Statically Allocated Memory
Status
  Exit
    Exit Status
Steps to Take for Porting
  Steps to Take for
Storage Daemon Design
  Storage Daemon Design
Storage Daemon File Output Format
  Storage Daemon File Output
Storage Media Output Format
  Storage Media Output Format
Stream
  Definitions | Record Header
Structure
  Bacula Source File
    Bacula Source File Structure
  Directory
    Directory Structure
Submissions and Projects
  Bacula Code Submissions and
Support
  Platform
    Platform Support
Synopsis
  Synopsis
Tabbing
  Tabbing
Tables
  Database
    Database Tables
TCP/IP Network Protocol
  TCP/IP Network Protocol
Test
  Adding a New
    Adding a New Test
  Testing a Binary Installation
    Testing a Binary Installation
  Writing a Regression
    Writing a Regression Test
Test and Demonstration Program
  Test and Demonstration Program
Testing
  Bacula Regression
    Bacula Regression Testing
Tests
  Other
    Other Tests
Threads
  bnet and
    bnet and Threads
TLS
  TLS
TLS API Implimentation
  TLS API Implementation
TLS Configuration Directives
  New Configuration Directives
TLS Connection
  Negotiating
    Negotiating a TLS Connection
TLS Connection Manipulation
  Manipulating TLS Connections
TLS Context Manipulation
  Manipulating TLS Contexts
TLS Introduction
  Introduction to TLS
TLS Post-Connection Verification
  Performing Post-Connection Verification
Trademark
  Trademark
Type
  Unix File Attributes
Underhandedness
  Overlays and
    Overlays and Underhandedness
Unix File Attributes
  Unix File Attributes
Use
  Do Not
    Do Not Use
Using a Debugger
  Using a Debugger
Utility
  Command Line Message Digest
    Command Line Message Digest
Verification
  TLS Post-Connection
    Performing Post-Connection Verification
Version 2 Record Header
  Version 2 Record Header
Version BB02 Block Header
  Version BB02 Block Header
VolSessionId
  Definitions | Record Header
VolSessionTime
  Definitions | Record Header
Volume Label
  Definitions
Volume Label Format
  Volume Label Format
When Implementing Incomplete Code
  When Implementing Incomplete Code
When SMARTALLOC is Disabled
  When SMARTALLOC is Disabled
Writing a Regression Test
  Writing a Regression Test