%PDF-1.4 % 1 0 obj << /S /GoTo /D (chapter.1) >> endobj 4 0 obj (Bacula Developer Notes) endobj 5 0 obj << /S /GoTo /D (section*.2) >> endobj 8 0 obj (Bacula Developer Notes) endobj 9 0 obj << /S /GoTo /D (subsection.1.0.1) >> endobj 12 0 obj (Contributions) endobj 13 0 obj << /S /GoTo /D (subsection.1.0.2) >> endobj 16 0 obj (Patches) endobj 17 0 obj << /S /GoTo /D (subsection.1.0.3) >> endobj 20 0 obj (Copyrights) endobj 21 0 obj << /S /GoTo /D (subsection.1.0.4) >> endobj 24 0 obj (Copyright Assignment \205 Fiduciary License Agreement) endobj 25 0 obj << /S /GoTo /D (section.1.1) >> endobj 28 0 obj (The Development Cycle) endobj 29 0 obj << /S /GoTo /D (section.1.2) >> endobj 32 0 obj (Bacula Code Submissions and Projects) endobj 33 0 obj << /S /GoTo /D (section*.3) >> endobj 36 0 obj (Code Submissions and Projects) endobj 37 0 obj << /S /GoTo /D (section.1.3) >> endobj 40 0 obj (Patches for Released Versions) endobj 41 0 obj << /S /GoTo /D (section*.4) >> endobj 44 0 obj (Patches for Released Versions) endobj 45 0 obj << /S /GoTo /D (section.1.4) >> endobj 48 0 obj (Developing Bacula) endobj 49 0 obj << /S /GoTo /D (subsection.1.4.1) >> endobj 52 0 obj (Debugging) endobj 53 0 obj << /S /GoTo /D (subsection.1.4.2) >> endobj 56 0 obj (Using a Debugger) endobj 57 0 obj << /S /GoTo /D (subsection.1.4.3) >> endobj 60 0 obj (Memory Leaks) endobj 61 0 obj << /S /GoTo /D (subsection.1.4.4) >> endobj 64 0 obj (Special Files) endobj 65 0 obj << /S /GoTo /D (subsection.1.4.5) >> endobj 68 0 obj (When Implementing Incomplete Code) endobj 69 0 obj << /S /GoTo /D (subsection.1.4.6) >> endobj 72 0 obj (Bacula Source File Structure) endobj 73 0 obj << /S /GoTo /D (subsection.1.4.7) >> endobj 76 0 obj (Header Files) endobj 77 0 obj << /S /GoTo /D (subsection.1.4.8) >> endobj 80 0 obj (Programming Standards) endobj 81 0 obj << /S /GoTo /D (subsection.1.4.9) >> endobj 84 0 obj (Do Not Use) endobj 85 0 obj << /S /GoTo /D (subsection.1.4.10) >> endobj 88 0 obj (Avoid if Possible) endobj 89 0 obj << /S /GoTo /D (subsection.1.4.11) >> endobj 92 0 obj (Do Use Whenever Possible) endobj 93 0 obj << /S /GoTo /D (subsection.1.4.12) >> endobj 96 0 obj (Indenting Standards) endobj 97 0 obj << /S /GoTo /D (subsection.1.4.13) >> endobj 100 0 obj (Tabbing) endobj 101 0 obj << /S /GoTo /D (subsection.1.4.14) >> endobj 104 0 obj (Don'ts) endobj 105 0 obj << /S /GoTo /D (subsection.1.4.15) >> endobj 108 0 obj (Message Classes) endobj 109 0 obj << /S /GoTo /D (subsection.1.4.16) >> endobj 112 0 obj (Debug Messages) endobj 113 0 obj << /S /GoTo /D (subsection.1.4.17) >> endobj 116 0 obj (Error Messages) endobj 117 0 obj << /S /GoTo /D (subsection.1.4.18) >> endobj 120 0 obj (Job Messages) endobj 121 0 obj << /S /GoTo /D (subsection.1.4.19) >> endobj 124 0 obj (Queued Job Messages) endobj 125 0 obj << /S /GoTo /D (subsection.1.4.20) >> endobj 128 0 obj (Memory Messages) endobj 129 0 obj << /S /GoTo /D (subsection.1.4.21) >> endobj 132 0 obj (Bugs Database) endobj 133 0 obj << /S /GoTo /D (chapter.2) >> endobj 136 0 obj (Bacula Git Usage) endobj 137 0 obj << /S /GoTo /D (section*.5) >> endobj 140 0 obj (Bacula Bit Usage) endobj 141 0 obj << /S /GoTo /D (section.2.1) >> endobj 144 0 obj (Bacula Git repositories) endobj 145 0 obj << /S /GoTo /D (section*.6) >> endobj 148 0 obj (Git repositories) endobj 149 0 obj << /S /GoTo /D (section.2.2) >> endobj 152 0 obj (Git Usage) endobj 153 0 obj << /S /GoTo /D (section*.7) >> endobj 156 0 obj (Git Usage) endobj 157 0 obj << /S /GoTo /D (subsection.2.2.1) >> endobj 160 0 obj (Learning Git) endobj 161 0 obj << /S /GoTo /D (section.2.3) >> endobj 164 0 obj (Step by Step Modifying Bacula Code) endobj 165 0 obj << /S /GoTo /D (subsection.2.3.1) >> endobj 168 0 obj (More Details) endobj 169 0 obj << /S /GoTo /D (section.2.4) >> endobj 172 0 obj (Forcing Changes) endobj 173 0 obj << /S /GoTo /D (chapter.3) >> endobj 176 0 obj (Bacula FD Plugin API) endobj 177 0 obj << /S /GoTo /D (section.3.1) >> endobj 180 0 obj (Normal vs Command vs Options Plugins) endobj 181 0 obj << /S /GoTo /D (section.3.2) >> endobj 184 0 obj (Loading Plugins) endobj 185 0 obj << /S /GoTo /D (section.3.3) >> endobj 188 0 obj (loadPlugin) endobj 189 0 obj << /S /GoTo /D (section.3.4) >> endobj 192 0 obj (Plugin Entry Points) endobj 193 0 obj << /S /GoTo /D (subsection.3.4.1) >> endobj 196 0 obj (newPlugin\(bpContext *ctx\)) endobj 197 0 obj << /S /GoTo /D (subsection.3.4.2) >> endobj 200 0 obj (freePlugin\(bpContext *ctx\)) endobj 201 0 obj << /S /GoTo /D (subsection.3.4.3) >> endobj 204 0 obj (getPluginValue\(bpContext *ctx, pVariable var, void *value\)) endobj 205 0 obj << /S /GoTo /D (subsection.3.4.4) >> endobj 208 0 obj (setPluginValue\(bpContext *ctx, pVariable var, void *value\)) endobj 209 0 obj << /S /GoTo /D (subsection.3.4.5) >> endobj 212 0 obj (handlePluginEvent\(bpContext *ctx, bEvent *event, void *value\)) endobj 213 0 obj << /S /GoTo /D (subsection.3.4.6) >> endobj 216 0 obj (startBackupFile\(bpContext *ctx, struct save\137pkt *sp\)) endobj 217 0 obj << /S /GoTo /D (subsection.3.4.7) >> endobj 220 0 obj (endBackupFile\(bpContext *ctx\)) endobj 221 0 obj << /S /GoTo /D (subsection.3.4.8) >> endobj 224 0 obj (startRestoreFile\(bpContext *ctx, const char *cmd\)) endobj 225 0 obj << /S /GoTo /D (subsection.3.4.9) >> endobj 228 0 obj (createFile\(bpContext *ctx, struct restore\137pkt *rp\)) endobj 229 0 obj << /S /GoTo /D (subsection.3.4.10) >> endobj 232 0 obj (setFileAttributes\(bpContext *ctx, struct restore\137pkt *rp\)) endobj 233 0 obj << /S /GoTo /D (subsection.3.4.11) >> endobj 236 0 obj (endRestoreFile\(bpContext *ctx\)) endobj 237 0 obj << /S /GoTo /D (subsection.3.4.12) >> endobj 240 0 obj (pluginIO\(bpContext *ctx, struct io\137pkt *io\)) endobj 241 0 obj << /S /GoTo /D (subsection.3.4.13) >> endobj 244 0 obj (bool checkFile\(bpContext *ctx, char *fname\)) endobj 245 0 obj << /S /GoTo /D (section.3.5) >> endobj 248 0 obj (Bacula Plugin Entrypoints) endobj 249 0 obj << /S /GoTo /D (subsection.3.5.1) >> endobj 252 0 obj (bRC registerBaculaEvents\(bpContext *ctx, ...\)) endobj 253 0 obj << /S /GoTo /D (subsection.3.5.2) >> endobj 256 0 obj (bRC getBaculaValue\(bpContext *ctx, bVariable var, void *value\)) endobj 257 0 obj << /S /GoTo /D (subsection.3.5.3) >> endobj 260 0 obj (bRC setBaculaValue\(bpContext *ctx, bVariable var, void *value\)) endobj 261 0 obj << /S /GoTo /D (subsection.3.5.4) >> endobj 264 0 obj (bRC JobMessage\(bpContext *ctx, const char *file, int line, int type, utime\137t mtime, const char *fmt, ...\)) endobj 265 0 obj << /S /GoTo /D (subsection.3.5.5) >> endobj 268 0 obj (bRC DebugMessage\(bpContext *ctx, const char *file, int line, int level, const char *fmt, ...\)) endobj 269 0 obj << /S /GoTo /D (subsection.3.5.6) >> endobj 272 0 obj (void baculaMalloc\(bpContext *ctx, const char *file, int line, size\137t size\)) endobj 273 0 obj << /S /GoTo /D (subsection.3.5.7) >> endobj 276 0 obj (void baculaFree\(bpContext *ctx, const char *file, int line, void *mem\)) endobj 277 0 obj << /S /GoTo /D (section.3.6) >> endobj 280 0 obj (Building Bacula Plugins) endobj 281 0 obj << /S /GoTo /D (chapter.4) >> endobj 284 0 obj (Platform Support) endobj 285 0 obj << /S /GoTo /D (section*.8) >> endobj 288 0 obj (Platform Support) endobj 289 0 obj << /S /GoTo /D (section.4.1) >> endobj 292 0 obj (General) endobj 293 0 obj << /S /GoTo /D (section*.9) >> endobj 296 0 obj (General) endobj 297 0 obj << /S /GoTo /D (section.4.2) >> endobj 300 0 obj (Requirements to become a Supported Platform) endobj 301 0 obj << /S /GoTo /D (section*.10) >> endobj 304 0 obj (Platform Requirements) endobj 305 0 obj << /S /GoTo /D (chapter.5) >> endobj 308 0 obj (Daemon Protocol) endobj 309 0 obj << /S /GoTo /D (section.5.1) >> endobj 312 0 obj (General) endobj 313 0 obj << /S /GoTo /D (section*.11) >> endobj 316 0 obj (General) endobj 317 0 obj << /S /GoTo /D (section.5.2) >> endobj 320 0 obj (Low Level Network Protocol) endobj 321 0 obj << /S /GoTo /D (section*.12) >> endobj 324 0 obj (Low Level Network Protocol) endobj 325 0 obj << /S /GoTo /D (section.5.3) >> endobj 328 0 obj (General Daemon Protocol) endobj 329 0 obj << /S /GoTo /D (section*.13) >> endobj 332 0 obj (General Daemon Protocol) endobj 333 0 obj << /S /GoTo /D (section.5.4) >> endobj 336 0 obj (The Protocol Used Between the Director and the Storage Daemon) endobj 337 0 obj << /S /GoTo /D (section*.14) >> endobj 340 0 obj (Protocol Used Between the Director and the Storage Daemon) endobj 341 0 obj << /S /GoTo /D (section.5.5) >> endobj 344 0 obj (The Protocol Used Between the Director and the File Daemon) endobj 345 0 obj << /S /GoTo /D (section*.15) >> endobj 348 0 obj (Protocol Used Between the Director and the File Daemon) endobj 349 0 obj << /S /GoTo /D (section.5.6) >> endobj 352 0 obj (The Save Protocol Between the File Daemon and the Storage Daemon) endobj 353 0 obj << /S /GoTo /D (section*.16) >> endobj 356 0 obj (Save Protocol Between the File Daemon and the Storage Daemon) endobj 357 0 obj << /S /GoTo /D (subsection.5.6.1) >> endobj 360 0 obj (Command and Control Information) endobj 361 0 obj << /S /GoTo /D (subsection.5.6.2) >> endobj 364 0 obj (Data Information) endobj 365 0 obj << /S /GoTo /D (chapter.6) >> endobj 368 0 obj (Director Services Daemon) endobj 369 0 obj << /S /GoTo /D (section*.17) >> endobj 372 0 obj (Director Services Daemon) endobj 373 0 obj << /S /GoTo /D (chapter.7) >> endobj 376 0 obj (File Services Daemon) endobj 377 0 obj << /S /GoTo /D (section*.18) >> endobj 380 0 obj (File Services Daemon) endobj 381 0 obj << /S /GoTo /D (section.7.1) >> endobj 384 0 obj (Commands Received from the Director for a Backup) endobj 385 0 obj << /S /GoTo /D (section*.19) >> endobj 388 0 obj (Commands Received from the Director for a Backup) endobj 389 0 obj << /S /GoTo /D (section.7.2) >> endobj 392 0 obj (Commands Received from the Director for a Restore) endobj 393 0 obj << /S /GoTo /D (section*.20) >> endobj 396 0 obj (Commands Received from the Director for a Restore) endobj 397 0 obj << /S /GoTo /D (chapter.8) >> endobj 400 0 obj (Storage Daemon Design) endobj 401 0 obj << /S /GoTo /D (section*.21) >> endobj 404 0 obj (Storage Daemon Design) endobj 405 0 obj << /S /GoTo /D (section.8.1) >> endobj 408 0 obj (SD Design Introduction) endobj 409 0 obj << /S /GoTo /D (section.8.1) >> endobj 411 0 obj (SD Design Introduction) endobj 412 0 obj << /S /GoTo /D (section.8.2) >> endobj 415 0 obj (SD Development Outline) endobj 416 0 obj << /S /GoTo /D (section.8.2) >> endobj 418 0 obj (SD Development Outline) endobj 419 0 obj << /S /GoTo /D (section.8.3) >> endobj 422 0 obj (SD Connections and Sessions) endobj 423 0 obj << /S /GoTo /D (section.8.3) >> endobj 425 0 obj (SD Connections and Sessions) endobj 426 0 obj << /S /GoTo /D (subsection.8.3.1) >> endobj 429 0 obj (SD Append Requests) endobj 430 0 obj << /S /GoTo /D (subsection.8.3.1) >> endobj 432 0 obj (SD Append Requests) endobj 433 0 obj << /S /GoTo /D (subsection.8.3.2) >> endobj 436 0 obj (SD Read Requests) endobj 437 0 obj << /S /GoTo /D (subsection.8.3.2) >> endobj 439 0 obj (SD Read Requests) endobj 440 0 obj << /S /GoTo /D (section.8.4) >> endobj 443 0 obj (SD Data Structures) endobj 444 0 obj << /S /GoTo /D (section.8.4) >> endobj 446 0 obj (SD Data Structures) endobj 447 0 obj << /S /GoTo /D (chapter.9) >> endobj 450 0 obj (Catalog Services) endobj 451 0 obj << /S /GoTo /D (section.9.1) >> endobj 454 0 obj (General) endobj 455 0 obj << /S /GoTo /D (section*.22) >> endobj 458 0 obj (General) endobj 459 0 obj << /S /GoTo /D (subsection.9.1.1) >> endobj 462 0 obj (Filenames and Maximum Filename Length) endobj 463 0 obj << /S /GoTo /D (subsection.9.1.2) >> endobj 466 0 obj (Installing and Configuring MySQL) endobj 467 0 obj << /S /GoTo /D (subsection.9.1.3) >> endobj 470 0 obj (Installing and Configuring PostgreSQL) endobj 471 0 obj << /S /GoTo /D (subsection.9.1.4) >> endobj 474 0 obj (Installing and Configuring SQLite) endobj 475 0 obj << /S /GoTo /D (subsection.9.1.5) >> endobj 478 0 obj (Internal Bacula Catalog) endobj 479 0 obj << /S /GoTo /D (subsection.9.1.6) >> endobj 482 0 obj (Database Table Design) endobj 483 0 obj << /S /GoTo /D (section.9.2) >> endobj 486 0 obj (Sequence of Creation of Records for a Save Job) endobj 487 0 obj << /S /GoTo /D (section*.23) >> endobj 490 0 obj (Sequence of Creation of Records for a Save Job) endobj 491 0 obj << /S /GoTo /D (section.9.3) >> endobj 494 0 obj (Database Tables) endobj 495 0 obj << /S /GoTo /D (section*.24) >> endobj 498 0 obj (Database Tables) endobj 499 0 obj << /S /GoTo /D (subsection.9.3.1) >> endobj 502 0 obj (MySQL Table Definition) endobj 503 0 obj << /S /GoTo /D (chapter.10) >> endobj 506 0 obj (Storage Media Output Format) endobj 507 0 obj << /S /GoTo /D (section*.25) >> endobj 510 0 obj (Storage Media Output Format) endobj 511 0 obj << /S /GoTo /D (section.10.1) >> endobj 514 0 obj (General) endobj 515 0 obj << /S /GoTo /D (section*.26) >> endobj 518 0 obj (General) endobj 519 0 obj << /S /GoTo /D (section.10.2) >> endobj 522 0 obj (Definitions) endobj 523 0 obj << /S /GoTo /D (section*.27) >> endobj 526 0 obj (Definitions) endobj 527 0 obj << /S /GoTo /D (section.10.3) >> endobj 530 0 obj (Storage Daemon File Output Format) endobj 531 0 obj << /S /GoTo /D (section*.28) >> endobj 534 0 obj (Storage Daemon File Output Format) endobj 535 0 obj << /S /GoTo /D (section.10.4) >> endobj 538 0 obj (Overall Format) endobj 539 0 obj << /S /GoTo /D (section*.29) >> endobj 542 0 obj (Overall Format) endobj 543 0 obj << /S /GoTo /D (section.10.5) >> endobj 546 0 obj (Serialization) endobj 547 0 obj << /S /GoTo /D (section*.30) >> endobj 550 0 obj (Serialization) endobj 551 0 obj << /S /GoTo /D (section.10.6) >> endobj 554 0 obj (Block Header) endobj 555 0 obj << /S /GoTo /D (section*.31) >> endobj 558 0 obj (Block Header) endobj 559 0 obj << /S /GoTo /D (section.10.7) >> endobj 562 0 obj (Record Header) endobj 563 0 obj << /S /GoTo /D (section*.32) >> endobj 566 0 obj (Record Header) endobj 567 0 obj << /S /GoTo /D (section.10.8) >> endobj 570 0 obj (Version BB02 Block Header) endobj 571 0 obj << /S /GoTo /D (section*.33) >> endobj 574 0 obj (Version BB02 Block Header) endobj 575 0 obj << /S /GoTo /D (section.10.9) >> endobj 578 0 obj (Version 2 Record Header) endobj 579 0 obj << /S /GoTo /D (section*.34) >> endobj 582 0 obj (Version 2 Record Header) endobj 583 0 obj << /S /GoTo /D (section.10.10) >> endobj 586 0 obj (Volume Label Format) endobj 587 0 obj << /S /GoTo /D (section*.35) >> endobj 590 0 obj (Volume Label Format) endobj 591 0 obj << /S /GoTo /D (section.10.11) >> endobj 594 0 obj (Session Label) endobj 595 0 obj << /S /GoTo /D (section*.36) >> endobj 598 0 obj (Session Label) endobj 599 0 obj << /S /GoTo /D (section.10.12) >> endobj 602 0 obj (Overall Storage Format) endobj 603 0 obj << /S /GoTo /D (section*.37) >> endobj 606 0 obj (Overall Storage Format) endobj 607 0 obj << /S /GoTo /D (section.10.13) >> endobj 610 0 obj (Unix File Attributes) endobj 611 0 obj << /S /GoTo /D (section*.38) >> endobj 614 0 obj (Unix File Attributes) endobj 615 0 obj << /S /GoTo /D (section.10.14) >> endobj 618 0 obj (Old Depreciated Tape Format) endobj 619 0 obj << /S /GoTo /D (section*.39) >> endobj 622 0 obj (Old Depreciated Tape Format) endobj 623 0 obj << /S /GoTo /D (chapter.11) >> endobj 626 0 obj (Bacula Porting Notes) endobj 627 0 obj << /S /GoTo /D (section*.40) >> endobj 630 0 obj (Bacula Porting Notes) endobj 631 0 obj << /S /GoTo /D (section.11.1) >> endobj 634 0 obj (Porting Requirements) endobj 635 0 obj << /S /GoTo /D (section.11.1) >> endobj 637 0 obj (Porting Requirements) endobj 638 0 obj << /S /GoTo /D (section.11.2) >> endobj 641 0 obj (Steps to Take for Porting) endobj 642 0 obj << /S /GoTo /D (section.11.2) >> endobj 644 0 obj (Steps to Take for Porting) endobj 645 0 obj << /S /GoTo /D (chapter*.41) >> endobj 648 0 obj (Implementing a Bacula GUI Interface) endobj 649 0 obj << /S /GoTo /D (section.11.1) >> endobj 651 0 obj (General) endobj 652 0 obj << /S /GoTo /D (section*.42) >> endobj 655 0 obj (General) endobj 656 0 obj << /S /GoTo /D (subsection.11.1.1) >> endobj 659 0 obj (Minimal Code in Console Program) endobj 660 0 obj << /S /GoTo /D (subsection.11.1.2) >> endobj 663 0 obj (GUI Interface is Difficult) endobj 664 0 obj << /S /GoTo /D (section.11.2) >> endobj 666 0 obj (Bvfs API) endobj 667 0 obj << /S /GoTo /D (chapter.12) >> endobj 670 0 obj (TLS) endobj 671 0 obj << /S /GoTo /D (section.12.1) >> endobj 674 0 obj (Introduction to TLS) endobj 675 0 obj << /S /GoTo /D (section.12.1) >> endobj 677 0 obj (TLS Introduction) endobj 678 0 obj << /S /GoTo /D (section.12.2) >> endobj 681 0 obj (New Configuration Directives) endobj 682 0 obj << /S /GoTo /D (section.12.2) >> endobj 684 0 obj (New Configuration Directives) endobj 685 0 obj << /S /GoTo /D (section.12.3) >> endobj 688 0 obj (TLS API Implementation) endobj 689 0 obj << /S /GoTo /D (section.12.3) >> endobj 691 0 obj (TLS API Implementation) endobj 692 0 obj << /S /GoTo /D (subsection.12.3.1) >> endobj 695 0 obj (Library Initialization and Cleanup) endobj 696 0 obj << /S /GoTo /D (subsection.12.3.1) >> endobj 698 0 obj (Library Initialization and Cleanup) endobj 699 0 obj << /S /GoTo /D (subsection.12.3.2) >> endobj 702 0 obj (Manipulating TLS Contexts) endobj 703 0 obj << /S /GoTo /D (subsection.12.3.2) >> endobj 705 0 obj (Manipulating TLS Contexts) endobj 706 0 obj << /S /GoTo /D (subsection.12.3.3) >> endobj 709 0 obj (Performing Post-Connection Verification) endobj 710 0 obj << /S /GoTo /D (subsection.12.3.3) >> endobj 712 0 obj (Performing Post-Connection Verification) endobj 713 0 obj << /S /GoTo /D (subsection.12.3.4) >> endobj 716 0 obj (Manipulating TLS Connections) endobj 717 0 obj << /S /GoTo /D (subsection.12.3.4) >> endobj 719 0 obj (Manipulating TLS Connections) endobj 720 0 obj << /S /GoTo /D (section.12.4) >> endobj 723 0 obj (Bnet API Changes) endobj 724 0 obj << /S /GoTo /D (section.12.4) >> endobj 726 0 obj (Bnet API Changes) endobj 727 0 obj << /S /GoTo /D (subsection.12.4.1) >> endobj 730 0 obj (Negotiating a TLS Connection) endobj 731 0 obj << /S /GoTo /D (subsection.12.4.1) >> endobj 733 0 obj (Negotiating a TLS Connection) endobj 734 0 obj << /S /GoTo /D (subsection.12.4.2) >> endobj 737 0 obj (Manipulating Socket Blocking State) endobj 738 0 obj << /S /GoTo /D (subsection.12.4.2) >> endobj 740 0 obj (Manipulating Socket Blocking State) endobj 741 0 obj << /S /GoTo /D (section.12.5) >> endobj 744 0 obj (Authentication Negotiation) endobj 745 0 obj << /S /GoTo /D (section.12.5) >> endobj 747 0 obj (Authentication Negotiation) endobj 748 0 obj << /S /GoTo /D (chapter.13) >> endobj 751 0 obj (Bacula Regression Testing) endobj 752 0 obj << /S /GoTo /D (section*.52) >> endobj 755 0 obj (Bacula Regression Testing) endobj 756 0 obj << /S /GoTo /D (section.13.1) >> endobj 759 0 obj (Setting up Regession Testing) endobj 760 0 obj << /S /GoTo /D (section.13.1) >> endobj 762 0 obj (Setting up Regression Testing) endobj 763 0 obj << /S /GoTo /D (section.13.2) >> endobj 766 0 obj (Running the Regression Script) endobj 767 0 obj << /S /GoTo /D (section.13.2) >> endobj 769 0 obj (Running the Regression Script) endobj 770 0 obj << /S /GoTo /D (subsection.13.2.1) >> endobj 773 0 obj (Setting the Configuration Parameters) endobj 774 0 obj << /S /GoTo /D (subsection.13.2.1) >> endobj 776 0 obj (Setting the Configuration Parameters) endobj 777 0 obj << /S /GoTo /D (subsection.13.2.2) >> endobj 780 0 obj (Building the Test Bacula) endobj 781 0 obj << /S /GoTo /D (subsection.13.2.2) >> endobj 783 0 obj (Building the Test Bacula) endobj 784 0 obj << /S /GoTo /D (subsection.13.2.3) >> endobj 787 0 obj (Setting up your SQL engine) endobj 788 0 obj << /S /GoTo /D (subsection.13.2.3) >> endobj 790 0 obj (Setting up your SQL engine) endobj 791 0 obj << /S /GoTo /D (subsection.13.2.4) >> endobj 794 0 obj (Running the Disk Only Regression) endobj 795 0 obj << /S /GoTo /D (subsection.13.2.4) >> endobj 797 0 obj (Running the Disk Only Regression) endobj 798 0 obj << /S /GoTo /D (subsection.13.2.5) >> endobj 801 0 obj (Other Tests) endobj 802 0 obj << /S /GoTo /D (subsection.13.2.5) >> endobj 804 0 obj (Other Tests) endobj 805 0 obj << /S /GoTo /D (subsection.13.2.6) >> endobj 808 0 obj (If a Test Fails) endobj 809 0 obj << /S /GoTo /D (subsection.13.2.6) >> endobj 811 0 obj (If a Test Fails) endobj 812 0 obj << /S /GoTo /D (section.13.3) >> endobj 815 0 obj (Testing a Binary Installation) endobj 816 0 obj << /S /GoTo /D (section.13.4) >> endobj 819 0 obj (Running a Single Test) endobj 820 0 obj << /S /GoTo /D (section.13.4) >> endobj 822 0 obj (Running a Single Test) endobj 823 0 obj << /S /GoTo /D (section.13.5) >> endobj 826 0 obj (Writing a Regression Test) endobj 827 0 obj << /S /GoTo /D (section.13.5) >> endobj 829 0 obj (Writing a Regression Test) endobj 830 0 obj << /S /GoTo /D (subsection.13.5.1) >> endobj 833 0 obj (Running the Tests by Hand) endobj 834 0 obj << /S /GoTo /D (subsection.13.5.1) >> endobj 836 0 obj (Running the Tests by Hand) endobj 837 0 obj << /S /GoTo /D (subsection.13.5.2) >> endobj 840 0 obj (Directory Structure) endobj 841 0 obj << /S /GoTo /D (subsection.13.5.2) >> endobj 843 0 obj (Directory Structure) endobj 844 0 obj << /S /GoTo /D (subsection.13.5.3) >> endobj 847 0 obj (Adding a New Test) endobj 848 0 obj << /S /GoTo /D (subsection.13.5.3) >> endobj 850 0 obj (Adding a New Test) endobj 851 0 obj << /S /GoTo /D (subsection.13.5.4) >> endobj 854 0 obj (Running a Test Under The Debugger) endobj 855 0 obj << /S /GoTo /D (subsection.13.5.4) >> endobj 857 0 obj (Running a Test Under The Debugger) endobj 858 0 obj << /S /GoTo /D (chapter.14) >> endobj 861 0 obj (Bacula MD5 Algorithm) endobj 862 0 obj << /S /GoTo /D (section*.53) >> endobj 865 0 obj () endobj 866 0 obj << /S /GoTo /D (section.14.1) >> endobj 869 0 obj (Command Line Message Digest Utility ) endobj 870 0 obj << /S /GoTo /D (section*.54) >> endobj 873 0 obj (Command Line Message Digest Utility) endobj 874 0 obj << /S /GoTo /D (subsection.14.1.1) >> endobj 877 0 obj (Name) endobj 878 0 obj << /S /GoTo /D (subsection.14.1.2) >> endobj 881 0 obj (Synopsis) endobj 882 0 obj << /S /GoTo /D (subsection.14.1.3) >> endobj 885 0 obj (Description) endobj 886 0 obj << /S /GoTo /D (subsection.14.1.4) >> endobj 889 0 obj (Options) endobj 890 0 obj << /S /GoTo /D (subsection.14.1.5) >> endobj 893 0 obj (Files) endobj 894 0 obj << /S /GoTo /D (subsection.14.1.6) >> endobj 897 0 obj (Bugs) endobj 898 0 obj << /S /GoTo /D (section.14.2) >> endobj 901 0 obj ( Download md5.zip \040\(Zipped archive\)) endobj 902 0 obj << /S /GoTo /D (section*.55) >> endobj 905 0 obj (Download md5.zip \(Zipped archive\)) endobj 906 0 obj << /S /GoTo /D (subsection.14.2.1) >> endobj 909 0 obj (See Also) endobj 910 0 obj << /S /GoTo /D (subsection.14.2.2) >> endobj 913 0 obj (Exit Status) endobj 914 0 obj << /S /GoTo /D (subsection.14.2.3) >> endobj 917 0 obj (Copying) endobj 918 0 obj << /S /GoTo /D (subsection.14.2.4) >> endobj 921 0 obj (Acknowledgements) endobj 922 0 obj << /S /GoTo /D (chapter.15) >> endobj 925 0 obj (Bacula Memory Management) endobj 926 0 obj << /S /GoTo /D (section*.56) >> endobj 929 0 obj (Bacula Memory Management) endobj 930 0 obj << /S /GoTo /D (section.15.1) >> endobj 933 0 obj (General) endobj 934 0 obj << /S /GoTo /D (section*.57) >> endobj 937 0 obj (General) endobj 938 0 obj << /S /GoTo /D (subsection.15.1.1) >> endobj 941 0 obj (Statically Allocated Memory) endobj 942 0 obj << /S /GoTo /D (subsection.15.1.2) >> endobj 945 0 obj (Dynamically Allocated Memory) endobj 946 0 obj << /S /GoTo /D (subsection.15.1.3) >> endobj 949 0 obj (Pooled and Non-pooled Memory) endobj 950 0 obj << /S /GoTo /D (chapter.16) >> endobj 953 0 obj (TCP/IP Network Protocol) endobj 954 0 obj << /S /GoTo /D (section*.66) >> endobj 957 0 obj (TCP/IP Network Protocol) endobj 958 0 obj << /S /GoTo /D (section.16.1) >> endobj 961 0 obj (General) endobj 962 0 obj << /S /GoTo /D (section*.67) >> endobj 965 0 obj (General) endobj 966 0 obj << /S /GoTo /D (section.16.2) >> endobj 969 0 obj (bnet and Threads) endobj 970 0 obj << /S /GoTo /D (section*.68) >> endobj 973 0 obj (bnet and Threads) endobj 974 0 obj << /S /GoTo /D (section.16.3) >> endobj 977 0 obj (bnet\137open) endobj 978 0 obj << /S /GoTo /D (section*.69) >> endobj 981 0 obj (bnet\137open) endobj 982 0 obj << /S /GoTo /D (section.16.4) >> endobj 985 0 obj (bnet\137send) endobj 986 0 obj << /S /GoTo /D (section*.70) >> endobj 989 0 obj (bnet\137send) endobj 990 0 obj << /S /GoTo /D (section.16.5) >> endobj 993 0 obj (bnet\137fsend) endobj 994 0 obj << /S /GoTo /D (section*.71) >> endobj 997 0 obj (bnet\137fsend) endobj 998 0 obj << /S /GoTo /D (section.16.6) >> endobj 1001 0 obj (Additional Error information) endobj 1002 0 obj << /S /GoTo /D (section*.72) >> endobj 1005 0 obj (Additional Error information) endobj 1006 0 obj << /S /GoTo /D (section.16.7) >> endobj 1009 0 obj (bnet\137recv) endobj 1010 0 obj << /S /GoTo /D (section*.73) >> endobj 1013 0 obj (bnet\137recv) endobj 1014 0 obj << /S /GoTo /D (section.16.8) >> endobj 1017 0 obj (bnet\137sig) endobj 1018 0 obj << /S /GoTo /D (section*.74) >> endobj 1021 0 obj (bnet\137sig) endobj 1022 0 obj << /S /GoTo /D (section.16.9) >> endobj 1025 0 obj (bnet\137strerror) endobj 1026 0 obj << /S /GoTo /D (section*.75) >> endobj 1029 0 obj (bnet\137strerror) endobj 1030 0 obj << /S /GoTo /D (section.16.10) >> endobj 1033 0 obj (bnet\137close) endobj 1034 0 obj << /S /GoTo /D (section*.76) >> endobj 1037 0 obj (bnet\137close) endobj 1038 0 obj << /S /GoTo /D (section.16.11) >> endobj 1041 0 obj (Becoming a Server) endobj 1042 0 obj << /S /GoTo /D (section*.77) >> endobj 1045 0 obj (Becoming a Server) endobj 1046 0 obj << /S /GoTo /D (section.16.12) >> endobj 1049 0 obj (Higher Level Conventions) endobj 1050 0 obj << /S /GoTo /D (section*.78) >> endobj 1053 0 obj (Higher Level Conventions) endobj 1054 0 obj << /S /GoTo /D (chapter.17) >> endobj 1057 0 obj (Smart Memory Allocation) endobj 1058 0 obj << /S /GoTo /D (section*.79) >> endobj 1061 0 obj (Smart Memory Allocation With Orphaned Buffer Detection) endobj 1062 0 obj << /S /GoTo /D (subsection.17.0.1) >> endobj 1065 0 obj ( Installing SMARTALLOC) endobj 1066 0 obj << /S /GoTo /D (subsection.17.0.1) >> endobj 1068 0 obj (Installing SMARTALLOC) endobj 1069 0 obj << /S /GoTo /D (subsection.17.0.2) >> endobj 1072 0 obj ( Squelching a SMARTALLOC) endobj 1073 0 obj << /S /GoTo /D (subsection.17.0.2) >> endobj 1075 0 obj (Squelching a SMARTALLOC) endobj 1076 0 obj << /S /GoTo /D (subsection.17.0.3) >> endobj 1079 0 obj ( Living with Libraries) endobj 1080 0 obj << /S /GoTo /D (subsection.17.0.3) >> endobj 1082 0 obj (Living with Libraries) endobj 1083 0 obj << /S /GoTo /D (subsection.17.0.4) >> endobj 1086 0 obj ( SMARTALLOC Details) endobj 1087 0 obj << /S /GoTo /D (subsection.17.0.4) >> endobj 1089 0 obj (SMARTALLOC Details) endobj 1090 0 obj << /S /GoTo /D (subsection.17.0.5) >> endobj 1093 0 obj ( When SMARTALLOC is Disabled) endobj 1094 0 obj << /S /GoTo /D (subsection.17.0.5) >> endobj 1096 0 obj (When SMARTALLOC is Disabled) endobj 1097 0 obj << /S /GoTo /D (subsection.17.0.6) >> endobj 1100 0 obj ( The alloc\(\) Function) endobj 1101 0 obj << /S /GoTo /D (subsection.17.0.6) >> endobj 1103 0 obj (alloc\(\) Function) endobj 1104 0 obj << /S /GoTo /D (subsection.17.0.7) >> endobj 1107 0 obj ( Overlays and Underhandedness) endobj 1108 0 obj << /S /GoTo /D (subsection.17.0.7) >> endobj 1110 0 obj (Overlays and Underhandedness) endobj 1111 0 obj << /S /GoTo /D (subsection.17.0.8) >> endobj 1114 0 obj ( Test and Demonstration Program) endobj 1115 0 obj << /S /GoTo /D (subsection.17.0.8) >> endobj 1117 0 obj (Test and Demonstration Program) endobj 1118 0 obj << /S /GoTo /D (subsection.17.0.9) >> endobj 1121 0 obj ( Invitation to the Hack) endobj 1122 0 obj << /S /GoTo /D (subsection.17.0.9) >> endobj 1124 0 obj (Invitation to the Hack) endobj 1125 0 obj << /S /GoTo /D (section.17.1) >> endobj 1128 0 obj ( http://www.fourmilab.ch/smartall/smartall.zip \040Download smartall.zip \040\(Zipped archive\)) endobj 1129 0 obj << /S /GoTo /D (section.17.1) >> endobj 1131 0 obj ( Download smartall.zip \(Zipped archive\)) endobj 1132 0 obj << /S /GoTo /D (subsection.17.1.1) >> endobj 1135 0 obj ( Copying) endobj 1136 0 obj << /S /GoTo /D (subsection.17.1.1) >> endobj 1138 0 obj (Copying) endobj 1139 0 obj << /S /GoTo /D (chapter.18) >> endobj 1142 0 obj (Bacula Copyright, Trademark, and Licenses) endobj 1143 0 obj << /S /GoTo /D (section.18.1) >> endobj 1146 0 obj (CC-BY-SA) endobj 1147 0 obj << /S /GoTo /D (section.18.2) >> endobj 1150 0 obj (GPL) endobj 1151 0 obj << /S /GoTo /D (section.18.3) >> endobj 1154 0 obj (LGPL) endobj 1155 0 obj << /S /GoTo /D (section.18.4) >> endobj 1158 0 obj (Public Domain) endobj 1159 0 obj << /S /GoTo /D (section.18.5) >> endobj 1162 0 obj (Trademark) endobj 1163 0 obj << /S /GoTo /D (section.18.6) >> endobj 1166 0 obj (Fiduciary License Agreement) endobj 1167 0 obj << /S /GoTo /D (section.18.7) >> endobj 1170 0 obj (Disclaimer) endobj 1171 0 obj << /S /GoTo /D (section.18.8) >> endobj 1174 0 obj (Authors) endobj 1175 0 obj << /S /GoTo /D [1176 0 R /Fit] >> endobj 1180 0 obj << /Length 717 /Filter /FlateDecode >> stream xڝTr0BΘG< NR$V(HXmJrÃdO4[{dI(4>O/PIMێ~ Nj餼fьL3Jj",ɯn:=+5ja<`+C,p"g1I|WUpD
PEuMF
,S
*U.кD:˕߷HDt"9HB:z_wZ+0JSJO,U^uT"NɄ*P ?&{GY⭰8znnwnp{7sc\)Mj$285֨%lvT
?nMlS$-;kt̼q[
:jiv.F:qKo66nMϭV
y!.z1}yѤWvP_Ճ;_gw;{B1O˲95ò\rd/u>&ezhIE*Ђ<C-q4
f=cǿ!nL
endstream
endobj
1176 0 obj
<<
/Type /Page
/Contents 1180 0 R
/Resources 1179 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 1188 0 R
/Group 1182 0 R
>>
endobj
1177 0 obj
<<
/Type /XObject
/Subtype /Form
/FormType 1
/PTEX.FileName (../../../images/pdf/borg-coverpage.pdf)
/PTEX.PageNumber 1
/PTEX.InfoDict 1189 0 R
/BBox [0 0 595.275574 841.889771]
/Group 1182 0 R
/Resources <<
/ExtGState <<
/a0 <<
/CA 1
/ca 1
>>
/s8 1190 0 R
/s30 1191 0 R
/s32 1192 0 R
>>/Pattern <<
/p10 1193 0 R
/p11 1194 0 R
/p12 1195 0 R
/p13 1196 0 R
/p14 1197 0 R
/p24 1198 0 R
/p25 1199 0 R
>>/XObject <<
/x6 1200 0 R
/x9 1201 0 R
/x15 1202 0 R
/x16 1203 0 R
/x17 1204 0 R
/x18 1205 0 R
/x19 1206 0 R
/x20 1207 0 R
/x21 1208 0 R
/x22 1209 0 R
/x23 1210 0 R
/x26 1211 0 R
/x27 1212 0 R
/x28 1213 0 R
/x29 1214 0 R
/x31 1215 0 R
/x33 1216 0 R
>>/Font << /f-0-0 1217 0 R>>
>>
/Length 3467
/Filter /FlateDecode
>>
stream
xZKׯȳK0:`bRif-iWtX[CQYxenvAǷͫ}{nO`'{9l=o/b3:|<>;/O#~;^{qZ?bO>\q}OC*%owz,.xz'5]n5qz6ƄaZ_p眜]wzϺ#~.h{$ʏGCc6t>n}7y4Vz.45d}3cx^5[oo6݈i/WCIo
n|E+t{|{07_[{ b%_vyw9Dȁ=x2U_ͫaX1Yd-C1ӯXCrwî??E4Q/W)Q'̅JFlrc"{ ƽbRsqs8l6t̥>2jՋz4!.A{lZ\.Y]#ew`gRv(Kڭ vUvř Y$s W1=C٫芪%@'R;,=ިx 8'_Vn=DF6dbebD=
#+\(fCكL
!%/ARYG ې &~orE#:YLG}
x&>2H5c [&y=0Yug;s/\0oƉOQq}
x~%&qD{b #!Hڻ Mp:O!9r|?t0l
y= 6
0c7^I\m[ 0.-EI7C
"lBJ'hagRXvQ/8
"2
캇q8DǎYLL{j~-|is.l'!>tLg"Lb"0&r [$ܙW$`Rc1V9'Wqgr<3b#O)OxC.״>ޠAJ$¤,3`|7HFY2Xܥo B&ҌWw"fcH:+">ҩaj=i7̢@ЭddjI
Ho|c !a$lD,"396hƉ).HGYC#x5`:6Wڜ5#D0tj@EW7L{Ic
!{ZD>@uJV>Ŷ1Twl ݊eF
A"4;ҺyZ'{ym;h6|LeY@##'|JU1UH&唤Q&FkAeY5V͚oWDjVp
9լbլ^PS
VBǧmԠX;լYxsdbz"s=