- 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
- Adding a Unittest
- Adding a Unittest
- 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 | Adding a Unittest
- 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