

				
					
							- Bacula Developer Notes
							
- Bacula Git Usage
							
- Bacula FD Plugin API
									- Normal vs Command vs Options Plugins
- Loading Plugins
- loadPlugin
- Plugin Entry Points
											- newPlugin(bpContext *ctx)
- freePlugin(bpContext *ctx)
- getPluginValue(bpContext *ctx, pVariable var, void *value)
- setPluginValue(bpContext *ctx, pVariable var, void *value)
- handlePluginEvent(bpContext *ctx, bEvent *event, void *value)
- startBackupFile(bpContext *ctx, struct save_pkt *sp)
- endBackupFile(bpContext *ctx)
- startRestoreFile(bpContext *ctx, const char *cmd)
- createFile(bpContext *ctx, struct restore_pkt *rp)
- setFileAttributes(bpContext *ctx, struct restore_pkt *rp)
- endRestoreFile(bpContext *ctx)
- pluginIO(bpContext *ctx, struct io_pkt *io)
- bool checkFile(bpContext *ctx, char *fname)
 
- Bacula Plugin Entrypoints
											- bRC registerBaculaEvents(bpContext *ctx, ...)
- bRC getBaculaValue(bpContext *ctx, bVariable var, void *value)
- bRC setBaculaValue(bpContext *ctx, bVariable var, void *value)
- bRC JobMessage(bpContext *ctx, const char *file, int line, int type, utime_t mtime, const char *fmt, ...)
- bRC DebugMessage(bpContext *ctx, const char *file, int line, int level, const char *fmt, ...)
- void baculaMalloc(bpContext *ctx, const char *file, int line, size_t size)
- void baculaFree(bpContext *ctx, const char *file, int line, void *mem)
 
- Building Bacula Plugins
- Advanced Restore Options
- Bacula Auth Plugin Documentation
									
 
- Platform Support
							
- Daemon Protocol
							
- Director Services Daemon
- File Services Daemon
							
- Storage Daemon Design
							
- Catalog Services
							
- Storage Media Output Format
							
- Bacula Porting Notes
							
- Implementing a GUI Interface
							
- TLS
							
- Bacula Regression Testing
							
- Bacula MD5 Algorithm
							
- Bacula Memory Management
							
- TCP/IP Network Protocol
							
- Smart Memory Allocation
							
- Acronyms
- Index
 
				
					
						
						
							-  Download smartall.zip (Zipped archive) 
- Download smartall.zip (Zipped archive)
- -csignature 
- Options
- -dinput_text 
- Options
- GUI Interface is Difficult
- GUI Interface is Difficult
- Bacula
- 
								
									- Building the Test
- Building the Test Bacula
- Developing
- Developing Bacula
 
- Bacula Developer Notes
- Bacula Developer Notes
- Bacula Regression Testing
- Bacula Regression Testing
- Bacula Source File Structure
- Bacula Source File Structure
- MySQL
- 
								
									- Installing and Configuring
- Installing and Configuring MySQL
 
- PostgreSQL
- 
								
									- Installing and Configuring
- Installing and Configuring PostgreSQL
 
- 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 
- Download smartall.zip (Zipped archive)
- Download md5.zip Zipped 
- Download md5.zip (Zipped archive)
 
- Assignment
- 
								
									- Copyright
- Copyright Assignment - Fiduciary
 
- Attributes
- 
								
									- Unix File
- Unix File Attributes
 
- Authentication Negotiation
- Authentication Negotiation
- Avoid if Possible
- Avoid if Possible
- Backup
- 
								
									- Commands Received from the Director for a 
- Commands Received from the
 
- Bacula Memory Management
- Bacula Memory Management
- Bacula Porting Notes
- Bacula Porting Notes
- 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
- 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
- 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
 
- Do Not Use
- Do Not Use
- Do Use Whenever Possible
- Do Use Whenever Possible
- Don'ts
- Don'ts
- Download md5.zip (Zipped archive) 
- Download 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
- 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
- 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 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
 
- Libraries
- 
								
									- Living with 
- Living with Libraries
 
- Library Initialization and Cleanup
- Library Initialization and Cleanup
- 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
- Memory
- Memory Messages
- Queued Job
- Queued Job Messages
 
- Minimal Code in Console Program
- Minimal Code in Console
- 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
 
- 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
- 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
- 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
- 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