\BOOKMARK [0][-]{chapter.1}{Bacula Developer Notes}{}% 1
\BOOKMARK [1][-]{section*.2}{Bacula Developer Notes}{chapter.1}% 2
\BOOKMARK [2][-]{subsection.1.0.1}{Contributions}{chapter.1}% 3
\BOOKMARK [2][-]{subsection.1.0.2}{Patches}{chapter.1}% 4
\BOOKMARK [2][-]{subsection.1.0.3}{Copyrights}{chapter.1}% 5
\BOOKMARK [2][-]{subsection.1.0.4}{Copyright Assignment \205 Fiduciary License Agreement}{chapter.1}% 6
\BOOKMARK [1][-]{section.1.1}{The Development Cycle}{chapter.1}% 7
\BOOKMARK [1][-]{section.1.2}{Bacula Code Submissions and Projects}{chapter.1}% 8
\BOOKMARK [2][-]{section*.3}{Code Submissions and Projects}{section.1.2}% 9
\BOOKMARK [1][-]{section.1.3}{Patches for Released Versions}{chapter.1}% 10
\BOOKMARK [2][-]{section*.4}{Patches for Released Versions}{section.1.3}% 11
\BOOKMARK [1][-]{section.1.4}{Developing Bacula}{chapter.1}% 12
\BOOKMARK [2][-]{subsection.1.4.1}{Debugging}{section.1.4}% 13
\BOOKMARK [2][-]{subsection.1.4.2}{Using a Debugger}{section.1.4}% 14
\BOOKMARK [2][-]{subsection.1.4.3}{Memory Leaks}{section.1.4}% 15
\BOOKMARK [2][-]{subsection.1.4.4}{Special Files}{section.1.4}% 16
\BOOKMARK [2][-]{subsection.1.4.5}{When Implementing Incomplete Code}{section.1.4}% 17
\BOOKMARK [2][-]{subsection.1.4.6}{Bacula Source File Structure}{section.1.4}% 18
\BOOKMARK [2][-]{subsection.1.4.7}{Header Files}{section.1.4}% 19
\BOOKMARK [2][-]{subsection.1.4.8}{Programming Standards}{section.1.4}% 20
\BOOKMARK [2][-]{subsection.1.4.9}{Do Not Use}{section.1.4}% 21
\BOOKMARK [2][-]{subsection.1.4.10}{Avoid if Possible}{section.1.4}% 22
\BOOKMARK [2][-]{subsection.1.4.11}{Do Use Whenever Possible}{section.1.4}% 23
\BOOKMARK [2][-]{subsection.1.4.12}{Indenting Standards}{section.1.4}% 24
\BOOKMARK [2][-]{subsection.1.4.13}{Tabbing}{section.1.4}% 25
\BOOKMARK [2][-]{subsection.1.4.14}{Don'ts}{section.1.4}% 26
\BOOKMARK [2][-]{subsection.1.4.15}{Message Classes}{section.1.4}% 27
\BOOKMARK [2][-]{subsection.1.4.16}{Debug Messages}{section.1.4}% 28
\BOOKMARK [2][-]{subsection.1.4.17}{Error Messages}{section.1.4}% 29
\BOOKMARK [2][-]{subsection.1.4.18}{Job Messages}{section.1.4}% 30
\BOOKMARK [2][-]{subsection.1.4.19}{Queued Job Messages}{section.1.4}% 31
\BOOKMARK [2][-]{subsection.1.4.20}{Memory Messages}{section.1.4}% 32
\BOOKMARK [2][-]{subsection.1.4.21}{Bugs Database}{section.1.4}% 33
\BOOKMARK [0][-]{chapter.2}{Bacula Git Usage}{}% 34
\BOOKMARK [1][-]{section*.5}{Bacula Bit Usage}{chapter.2}% 35
\BOOKMARK [1][-]{section.2.1}{Bacula Git repositories}{chapter.2}% 36
\BOOKMARK [2][-]{section*.6}{Git repositories}{section.2.1}% 37
\BOOKMARK [1][-]{section.2.2}{Git Usage}{chapter.2}% 38
\BOOKMARK [2][-]{section*.7}{Git Usage}{section.2.2}% 39
\BOOKMARK [2][-]{subsection.2.2.1}{Learning Git}{section.2.2}% 40
\BOOKMARK [1][-]{section.2.3}{Step by Step Modifying Bacula Code}{chapter.2}% 41
\BOOKMARK [2][-]{subsection.2.3.1}{More Details}{section.2.3}% 42
\BOOKMARK [1][-]{section.2.4}{Forcing Changes}{chapter.2}% 43
\BOOKMARK [0][-]{chapter.3}{Bacula FD Plugin API}{}% 44
\BOOKMARK [1][-]{section.3.1}{Normal vs Command vs Options Plugins}{chapter.3}% 45
\BOOKMARK [1][-]{section.3.2}{Loading Plugins}{chapter.3}% 46
\BOOKMARK [1][-]{section.3.3}{loadPlugin}{chapter.3}% 47
\BOOKMARK [1][-]{section.3.4}{Plugin Entry Points}{chapter.3}% 48
\BOOKMARK [2][-]{subsection.3.4.1}{newPlugin\(bpContext *ctx\)}{section.3.4}% 49
\BOOKMARK [2][-]{subsection.3.4.2}{freePlugin\(bpContext *ctx\)}{section.3.4}% 50
\BOOKMARK [2][-]{subsection.3.4.3}{getPluginValue\(bpContext *ctx, pVariable var, void *value\)}{section.3.4}% 51
\BOOKMARK [2][-]{subsection.3.4.4}{setPluginValue\(bpContext *ctx, pVariable var, void *value\)}{section.3.4}% 52
\BOOKMARK [2][-]{subsection.3.4.5}{handlePluginEvent\(bpContext *ctx, bEvent *event, void *value\)}{section.3.4}% 53
\BOOKMARK [2][-]{subsection.3.4.6}{startBackupFile\(bpContext *ctx, struct save\137pkt *sp\)}{section.3.4}% 54
\BOOKMARK [2][-]{subsection.3.4.7}{endBackupFile\(bpContext *ctx\)}{section.3.4}% 55
\BOOKMARK [2][-]{subsection.3.4.8}{startRestoreFile\(bpContext *ctx, const char *cmd\)}{section.3.4}% 56
\BOOKMARK [2][-]{subsection.3.4.9}{createFile\(bpContext *ctx, struct restore\137pkt *rp\)}{section.3.4}% 57
\BOOKMARK [2][-]{subsection.3.4.10}{setFileAttributes\(bpContext *ctx, struct restore\137pkt *rp\)}{section.3.4}% 58
\BOOKMARK [2][-]{subsection.3.4.11}{endRestoreFile\(bpContext *ctx\)}{section.3.4}% 59
\BOOKMARK [2][-]{subsection.3.4.12}{pluginIO\(bpContext *ctx, struct io\137pkt *io\)}{section.3.4}% 60
\BOOKMARK [2][-]{subsection.3.4.13}{bool checkFile\(bpContext *ctx, char *fname\)}{section.3.4}% 61
\BOOKMARK [1][-]{section.3.5}{Bacula Plugin Entrypoints}{chapter.3}% 62
\BOOKMARK [2][-]{subsection.3.5.1}{bRC registerBaculaEvents\(bpContext *ctx, ...\)}{section.3.5}% 63
\BOOKMARK [2][-]{subsection.3.5.2}{bRC getBaculaValue\(bpContext *ctx, bVariable var, void *value\)}{section.3.5}% 64
\BOOKMARK [2][-]{subsection.3.5.3}{bRC setBaculaValue\(bpContext *ctx, bVariable var, void *value\)}{section.3.5}% 65
\BOOKMARK [2][-]{subsection.3.5.4}{bRC JobMessage\(bpContext *ctx, const char *file, int line, int type, utime\137t mtime, const char *fmt, ...\)}{section.3.5}% 66
\BOOKMARK [2][-]{subsection.3.5.5}{bRC DebugMessage\(bpContext *ctx, const char *file, int line, int level, const char *fmt, ...\)}{section.3.5}% 67
\BOOKMARK [2][-]{subsection.3.5.6}{void baculaMalloc\(bpContext *ctx, const char *file, int line, size\137t size\)}{section.3.5}% 68
\BOOKMARK [2][-]{subsection.3.5.7}{void baculaFree\(bpContext *ctx, const char *file, int line, void *mem\)}{section.3.5}% 69
\BOOKMARK [1][-]{section.3.6}{Building Bacula Plugins}{chapter.3}% 70
\BOOKMARK [0][-]{chapter.4}{Platform Support}{}% 71
\BOOKMARK [1][-]{section*.8}{Platform Support}{chapter.4}% 72
\BOOKMARK [1][-]{section.4.1}{General}{chapter.4}% 73
\BOOKMARK [2][-]{section*.9}{General}{section.4.1}% 74
\BOOKMARK [1][-]{section.4.2}{Requirements to become a Supported Platform}{chapter.4}% 75
\BOOKMARK [2][-]{section*.10}{Platform Requirements}{section.4.2}% 76
\BOOKMARK [0][-]{chapter.5}{Daemon Protocol}{}% 77
\BOOKMARK [1][-]{section.5.1}{General}{chapter.5}% 78
\BOOKMARK [2][-]{section*.11}{General}{section.5.1}% 79
\BOOKMARK [1][-]{section.5.2}{Low Level Network Protocol}{chapter.5}% 80
\BOOKMARK [2][-]{section*.12}{Low Level Network Protocol}{section.5.2}% 81
\BOOKMARK [1][-]{section.5.3}{General Daemon Protocol}{chapter.5}% 82
\BOOKMARK [2][-]{section*.13}{General Daemon Protocol}{section.5.3}% 83
\BOOKMARK [1][-]{section.5.4}{The Protocol Used Between the Director and the Storage Daemon}{chapter.5}% 84
\BOOKMARK [2][-]{section*.14}{Protocol Used Between the Director and the Storage Daemon}{section.5.4}% 85
\BOOKMARK [1][-]{section.5.5}{The Protocol Used Between the Director and the File Daemon}{chapter.5}% 86
\BOOKMARK [2][-]{section*.15}{Protocol Used Between the Director and the File Daemon}{section.5.5}% 87
\BOOKMARK [1][-]{section.5.6}{The Save Protocol Between the File Daemon and the Storage Daemon}{chapter.5}% 88
\BOOKMARK [2][-]{section*.16}{Save Protocol Between the File Daemon and the Storage Daemon}{section.5.6}% 89
\BOOKMARK [2][-]{subsection.5.6.1}{Command and Control Information}{section.5.6}% 90
\BOOKMARK [2][-]{subsection.5.6.2}{Data Information}{section.5.6}% 91
\BOOKMARK [0][-]{chapter.6}{Director Services Daemon}{}% 92
\BOOKMARK [1][-]{section*.17}{Director Services Daemon}{chapter.6}% 93
\BOOKMARK [0][-]{chapter.7}{File Services Daemon}{}% 94
\BOOKMARK [1][-]{section*.18}{File Services Daemon}{chapter.7}% 95
\BOOKMARK [1][-]{section.7.1}{Commands Received from the Director for a Backup}{chapter.7}% 96
\BOOKMARK [2][-]{section*.19}{Commands Received from the Director for a Backup}{section.7.1}% 97
\BOOKMARK [1][-]{section.7.2}{Commands Received from the Director for a Restore}{chapter.7}% 98
\BOOKMARK [2][-]{section*.20}{Commands Received from the Director for a Restore}{section.7.2}% 99
\BOOKMARK [0][-]{chapter.8}{Storage Daemon Design}{}% 100
\BOOKMARK [1][-]{section*.21}{Storage Daemon Design}{chapter.8}% 101
\BOOKMARK [1][-]{section.8.1}{SD Design Introduction}{chapter.8}% 102
\BOOKMARK [1][-]{section.8.1}{SD Design Introduction}{chapter.8}% 103
\BOOKMARK [1][-]{section.8.2}{SD Development Outline}{chapter.8}% 104
\BOOKMARK [1][-]{section.8.2}{SD Development Outline}{chapter.8}% 105
\BOOKMARK [1][-]{section.8.3}{SD Connections and Sessions}{chapter.8}% 106
\BOOKMARK [1][-]{section.8.3}{SD Connections and Sessions}{chapter.8}% 107
\BOOKMARK [2][-]{subsection.8.3.1}{SD Append Requests}{section.8.3}% 108
\BOOKMARK [2][-]{subsection.8.3.1}{SD Append Requests}{section.8.3}% 109
\BOOKMARK [2][-]{subsection.8.3.2}{SD Read Requests}{section.8.3}% 110
\BOOKMARK [2][-]{subsection.8.3.2}{SD Read Requests}{section.8.3}% 111
\BOOKMARK [1][-]{section.8.4}{SD Data Structures}{chapter.8}% 112
\BOOKMARK [1][-]{section.8.4}{SD Data Structures}{chapter.8}% 113
\BOOKMARK [0][-]{chapter.9}{Catalog Services}{}% 114
\BOOKMARK [1][-]{section.9.1}{General}{chapter.9}% 115
\BOOKMARK [2][-]{section*.22}{General}{section.9.1}% 116
\BOOKMARK [2][-]{subsection.9.1.1}{Filenames and Maximum Filename Length}{section.9.1}% 117
\BOOKMARK [2][-]{subsection.9.1.2}{Installing and Configuring MySQL}{section.9.1}% 118
\BOOKMARK [2][-]{subsection.9.1.3}{Installing and Configuring PostgreSQL}{section.9.1}% 119
\BOOKMARK [2][-]{subsection.9.1.4}{Internal Bacula Catalog}{section.9.1}% 120
\BOOKMARK [2][-]{subsection.9.1.5}{Database Table Design}{section.9.1}% 121
\BOOKMARK [1][-]{section.9.2}{Sequence of Creation of Records for a Save Job}{chapter.9}% 122
\BOOKMARK [2][-]{section*.23}{Sequence of Creation of Records for a Save Job}{section.9.2}% 123
\BOOKMARK [1][-]{section.9.3}{Database Tables}{chapter.9}% 124
\BOOKMARK [2][-]{section*.24}{Database Tables}{section.9.3}% 125
\BOOKMARK [2][-]{subsection.9.3.1}{MySQL Table Definition}{section.9.3}% 126
\BOOKMARK [0][-]{chapter.10}{Storage Media Output Format}{}% 127
\BOOKMARK [1][-]{section*.25}{Storage Media Output Format}{chapter.10}% 128
\BOOKMARK [1][-]{section.10.1}{General}{chapter.10}% 129
\BOOKMARK [2][-]{section*.26}{General}{section.10.1}% 130
\BOOKMARK [1][-]{section.10.2}{Definitions}{chapter.10}% 131
\BOOKMARK [2][-]{section*.27}{Definitions}{section.10.2}% 132
\BOOKMARK [1][-]{section.10.3}{Storage Daemon File Output Format}{chapter.10}% 133
\BOOKMARK [2][-]{section*.28}{Storage Daemon File Output Format}{section.10.3}% 134
\BOOKMARK [1][-]{section.10.4}{Overall Format}{chapter.10}% 135
\BOOKMARK [2][-]{section*.29}{Overall Format}{section.10.4}% 136
\BOOKMARK [1][-]{section.10.5}{Serialization}{chapter.10}% 137
\BOOKMARK [2][-]{section*.30}{Serialization}{section.10.5}% 138
\BOOKMARK [1][-]{section.10.6}{Block Header}{chapter.10}% 139
\BOOKMARK [2][-]{section*.31}{Block Header}{section.10.6}% 140
\BOOKMARK [1][-]{section.10.7}{Record Header}{chapter.10}% 141
\BOOKMARK [2][-]{section*.32}{Record Header}{section.10.7}% 142
\BOOKMARK [1][-]{section.10.8}{Version BB02 Block Header}{chapter.10}% 143
\BOOKMARK [2][-]{section*.33}{Version BB02 Block Header}{section.10.8}% 144
\BOOKMARK [1][-]{section.10.9}{Version 2 Record Header}{chapter.10}% 145
\BOOKMARK [2][-]{section*.34}{Version 2 Record Header}{section.10.9}% 146
\BOOKMARK [1][-]{section.10.10}{Volume Label Format}{chapter.10}% 147
\BOOKMARK [2][-]{section*.35}{Volume Label Format}{section.10.10}% 148
\BOOKMARK [1][-]{section.10.11}{Session Label}{chapter.10}% 149
\BOOKMARK [2][-]{section*.36}{Session Label}{section.10.11}% 150
\BOOKMARK [1][-]{section.10.12}{Overall Storage Format}{chapter.10}% 151
\BOOKMARK [2][-]{section*.37}{Overall Storage Format}{section.10.12}% 152
\BOOKMARK [1][-]{section.10.13}{Unix File Attributes}{chapter.10}% 153
\BOOKMARK [2][-]{section*.38}{Unix File Attributes}{section.10.13}% 154
\BOOKMARK [1][-]{section.10.14}{Old Depreciated Tape Format}{chapter.10}% 155
\BOOKMARK [2][-]{section*.39}{Old Depreciated Tape Format}{section.10.14}% 156
\BOOKMARK [0][-]{chapter.11}{Bacula Porting Notes}{}% 157
\BOOKMARK [1][-]{section*.40}{Bacula Porting Notes}{chapter.11}% 158
\BOOKMARK [1][-]{section.11.1}{Porting Requirements}{chapter.11}% 159
\BOOKMARK [1][-]{section.11.1}{Porting Requirements}{chapter.11}% 160
\BOOKMARK [1][-]{section.11.2}{Steps to Take for Porting}{chapter.11}% 161
\BOOKMARK [1][-]{section.11.2}{Steps to Take for Porting}{chapter.11}% 162
\BOOKMARK [1][-]{chapter*.41}{Implementing a Bacula GUI Interface}{chapter.11}% 163
\BOOKMARK [1][-]{section.11.1}{General}{chapter.11}% 164
\BOOKMARK [2][-]{section*.42}{General}{section.11.1}% 165
\BOOKMARK [2][-]{subsection.11.1.1}{Minimal Code in Console Program}{section.11.1}% 166
\BOOKMARK [2][-]{subsection.11.1.2}{GUI Interface is Difficult}{section.11.1}% 167
\BOOKMARK [1][-]{section.11.2}{Bvfs API}{chapter.11}% 168
\BOOKMARK [0][-]{chapter.12}{TLS}{}% 169
\BOOKMARK [1][-]{section.12.1}{Introduction to TLS}{chapter.12}% 170
\BOOKMARK [1][-]{section.12.1}{TLS Introduction}{chapter.12}% 171
\BOOKMARK [1][-]{section.12.2}{New Configuration Directives}{chapter.12}% 172
\BOOKMARK [1][-]{section.12.2}{New Configuration Directives}{chapter.12}% 173
\BOOKMARK [1][-]{section.12.3}{TLS API Implementation}{chapter.12}% 174
\BOOKMARK [1][-]{section.12.3}{TLS API Implementation}{chapter.12}% 175
\BOOKMARK [2][-]{subsection.12.3.1}{Library Initialization and Cleanup}{section.12.3}% 176
\BOOKMARK [2][-]{subsection.12.3.1}{Library Initialization and Cleanup}{section.12.3}% 177
\BOOKMARK [2][-]{subsection.12.3.2}{Manipulating TLS Contexts}{section.12.3}% 178
\BOOKMARK [2][-]{subsection.12.3.2}{Manipulating TLS Contexts}{section.12.3}% 179
\BOOKMARK [2][-]{subsection.12.3.3}{Performing Post-Connection Verification}{section.12.3}% 180
\BOOKMARK [2][-]{subsection.12.3.3}{Performing Post-Connection Verification}{section.12.3}% 181
\BOOKMARK [2][-]{subsection.12.3.4}{Manipulating TLS Connections}{section.12.3}% 182
\BOOKMARK [2][-]{subsection.12.3.4}{Manipulating TLS Connections}{section.12.3}% 183
\BOOKMARK [1][-]{section.12.4}{Bnet API Changes}{chapter.12}% 184
\BOOKMARK [1][-]{section.12.4}{Bnet API Changes}{chapter.12}% 185
\BOOKMARK [2][-]{subsection.12.4.1}{Negotiating a TLS Connection}{section.12.4}% 186
\BOOKMARK [2][-]{subsection.12.4.1}{Negotiating a TLS Connection}{section.12.4}% 187
\BOOKMARK [2][-]{subsection.12.4.2}{Manipulating Socket Blocking State}{section.12.4}% 188
\BOOKMARK [2][-]{subsection.12.4.2}{Manipulating Socket Blocking State}{section.12.4}% 189
\BOOKMARK [1][-]{section.12.5}{Authentication Negotiation}{chapter.12}% 190
\BOOKMARK [1][-]{section.12.5}{Authentication Negotiation}{chapter.12}% 191
\BOOKMARK [0][-]{chapter.13}{Bacula Regression Testing}{}% 192
\BOOKMARK [1][-]{section*.52}{Bacula Regression Testing}{chapter.13}% 193
\BOOKMARK [1][-]{section.13.1}{Setting up Regession Testing}{chapter.13}% 194
\BOOKMARK [1][-]{section.13.1}{Setting up Regression Testing}{chapter.13}% 195
\BOOKMARK [1][-]{section.13.1}{Running the Regression Script}{chapter.13}% 196
\BOOKMARK [2][-]{subsection.13.1.1}{Setting the Configuration Parameters}{section.13.1}% 197
\BOOKMARK [2][-]{subsection.13.1.1}{Setting the Configuration Parameters}{section.13.1}% 198
\BOOKMARK [2][-]{subsection.13.1.2}{Building the Test Bacula}{section.13.1}% 199
\BOOKMARK [2][-]{subsection.13.1.2}{Building the Test Bacula}{section.13.1}% 200
\BOOKMARK [2][-]{subsection.13.1.3}{Setting up your SQL engine}{section.13.1}% 201
\BOOKMARK [2][-]{subsection.13.1.3}{Setting up your SQL engine}{section.13.1}% 202
\BOOKMARK [2][-]{subsection.13.1.4}{Running the Disk Only Regression}{section.13.1}% 203
\BOOKMARK [2][-]{subsection.13.1.4}{Running the Disk Only Regression}{section.13.1}% 204
\BOOKMARK [2][-]{subsection.13.1.5}{Other Tests}{section.13.1}% 205
\BOOKMARK [2][-]{subsection.13.1.5}{Other Tests}{section.13.1}% 206
\BOOKMARK [2][-]{subsection.13.1.6}{If a Test Fails}{section.13.1}% 207
\BOOKMARK [2][-]{subsection.13.1.6}{If a Test Fails}{section.13.1}% 208
\BOOKMARK [1][-]{section.13.2}{Testing a Binary Installation}{chapter.13}% 209
\BOOKMARK [1][-]{section.13.3}{Running a Single Test}{chapter.13}% 210
\BOOKMARK [1][-]{section.13.3}{Running a Single Test}{chapter.13}% 211
\BOOKMARK [1][-]{section.13.4}{Writing a Regression Test}{chapter.13}% 212
\BOOKMARK [1][-]{section.13.4}{Writing a Regression Test}{chapter.13}% 213
\BOOKMARK [2][-]{subsection.13.4.1}{Running the Tests by Hand}{section.13.4}% 214
\BOOKMARK [2][-]{subsection.13.4.1}{Running the Tests by Hand}{section.13.4}% 215
\BOOKMARK [2][-]{subsection.13.4.2}{Directory Structure}{section.13.4}% 216
\BOOKMARK [2][-]{subsection.13.4.2}{Directory Structure}{section.13.4}% 217
\BOOKMARK [2][-]{subsection.13.4.3}{Adding a New Test}{section.13.4}% 218
\BOOKMARK [2][-]{subsection.13.4.3}{Adding a New Test}{section.13.4}% 219
\BOOKMARK [2][-]{subsection.13.4.4}{Running a Test Under The Debugger}{section.13.4}% 220
\BOOKMARK [2][-]{subsection.13.4.4}{Running a Test Under The Debugger}{section.13.4}% 221
\BOOKMARK [0][-]{chapter.14}{Bacula MD5 Algorithm}{}% 222
\BOOKMARK [1][-]{section*.53}{}{chapter.14}% 223
\BOOKMARK [1][-]{section.14.1}{Command Line Message Digest Utility }{chapter.14}% 224
\BOOKMARK [2][-]{section*.54}{Command Line Message Digest Utility}{section.14.1}% 225
\BOOKMARK [2][-]{subsection.14.1.1}{Name}{section.14.1}% 226
\BOOKMARK [2][-]{subsection.14.1.2}{Synopsis}{section.14.1}% 227
\BOOKMARK [2][-]{subsection.14.1.3}{Description}{section.14.1}% 228
\BOOKMARK [2][-]{subsection.14.1.4}{Options}{section.14.1}% 229
\BOOKMARK [2][-]{subsection.14.1.5}{Files}{section.14.1}% 230
\BOOKMARK [2][-]{subsection.14.1.6}{Bugs}{section.14.1}% 231
\BOOKMARK [1][-]{section.14.2}{ Download md5.zip \040\(Zipped archive\)}{chapter.14}% 232
\BOOKMARK [2][-]{section*.55}{Download md5.zip \(Zipped archive\)}{section.14.2}% 233
\BOOKMARK [2][-]{subsection.14.2.1}{See Also}{section.14.2}% 234
\BOOKMARK [2][-]{subsection.14.2.2}{Exit Status}{section.14.2}% 235
\BOOKMARK [2][-]{subsection.14.2.3}{Copying}{section.14.2}% 236
\BOOKMARK [2][-]{subsection.14.2.4}{Acknowledgements}{section.14.2}% 237
\BOOKMARK [0][-]{chapter.15}{Bacula Memory Management}{}% 238
\BOOKMARK [1][-]{section*.56}{Bacula Memory Management}{chapter.15}% 239
\BOOKMARK [1][-]{section.15.1}{General}{chapter.15}% 240
\BOOKMARK [2][-]{section*.57}{General}{section.15.1}% 241
\BOOKMARK [2][-]{subsection.15.1.1}{Statically Allocated Memory}{section.15.1}% 242
\BOOKMARK [2][-]{subsection.15.1.2}{Dynamically Allocated Memory}{section.15.1}% 243
\BOOKMARK [2][-]{subsection.15.1.3}{Pooled and Non-pooled Memory}{section.15.1}% 244
\BOOKMARK [0][-]{chapter.16}{TCP/IP Network Protocol}{}% 245
\BOOKMARK [1][-]{section*.66}{TCP/IP Network Protocol}{chapter.16}% 246
\BOOKMARK [1][-]{section.16.1}{General}{chapter.16}% 247
\BOOKMARK [2][-]{section*.67}{General}{section.16.1}% 248
\BOOKMARK [1][-]{section.16.2}{bnet and Threads}{chapter.16}% 249
\BOOKMARK [2][-]{section*.68}{bnet and Threads}{section.16.2}% 250
\BOOKMARK [1][-]{section.16.3}{bnet\137open}{chapter.16}% 251
\BOOKMARK [2][-]{section*.69}{bnet\137open}{section.16.3}% 252
\BOOKMARK [1][-]{section.16.4}{bnet\137send}{chapter.16}% 253
\BOOKMARK [2][-]{section*.70}{bnet\137send}{section.16.4}% 254
\BOOKMARK [1][-]{section.16.5}{bnet\137fsend}{chapter.16}% 255
\BOOKMARK [2][-]{section*.71}{bnet\137fsend}{section.16.5}% 256
\BOOKMARK [1][-]{section.16.6}{Additional Error information}{chapter.16}% 257
\BOOKMARK [2][-]{section*.72}{Additional Error information}{section.16.6}% 258
\BOOKMARK [1][-]{section.16.7}{bnet\137recv}{chapter.16}% 259
\BOOKMARK [2][-]{section*.73}{bnet\137recv}{section.16.7}% 260
\BOOKMARK [1][-]{section.16.8}{bnet\137sig}{chapter.16}% 261
\BOOKMARK [2][-]{section*.74}{bnet\137sig}{section.16.8}% 262
\BOOKMARK [1][-]{section.16.9}{bnet\137strerror}{chapter.16}% 263
\BOOKMARK [2][-]{section*.75}{bnet\137strerror}{section.16.9}% 264
\BOOKMARK [1][-]{section.16.10}{bnet\137close}{chapter.16}% 265
\BOOKMARK [2][-]{section*.76}{bnet\137close}{section.16.10}% 266
\BOOKMARK [1][-]{section.16.11}{Becoming a Server}{chapter.16}% 267
\BOOKMARK [2][-]{section*.77}{Becoming a Server}{section.16.11}% 268
\BOOKMARK [1][-]{section.16.12}{Higher Level Conventions}{chapter.16}% 269
\BOOKMARK [2][-]{section*.78}{Higher Level Conventions}{section.16.12}% 270
\BOOKMARK [0][-]{chapter.17}{Smart Memory Allocation}{}% 271
\BOOKMARK [1][-]{section*.79}{Smart Memory Allocation With Orphaned Buffer Detection}{chapter.17}% 272
\BOOKMARK [2][-]{subsection.17.0.1}{ Installing SMARTALLOC}{chapter.17}% 273
\BOOKMARK [2][-]{subsection.17.0.1}{Installing SMARTALLOC}{chapter.17}% 274
\BOOKMARK [2][-]{subsection.17.0.2}{ Squelching a SMARTALLOC}{chapter.17}% 275
\BOOKMARK [2][-]{subsection.17.0.2}{Squelching a SMARTALLOC}{chapter.17}% 276
\BOOKMARK [2][-]{subsection.17.0.3}{ Living with Libraries}{chapter.17}% 277
\BOOKMARK [2][-]{subsection.17.0.3}{Living with Libraries}{chapter.17}% 278
\BOOKMARK [2][-]{subsection.17.0.4}{ SMARTALLOC Details}{chapter.17}% 279
\BOOKMARK [2][-]{subsection.17.0.4}{SMARTALLOC Details}{chapter.17}% 280
\BOOKMARK [2][-]{subsection.17.0.5}{ When SMARTALLOC is Disabled}{chapter.17}% 281
\BOOKMARK [2][-]{subsection.17.0.5}{When SMARTALLOC is Disabled}{chapter.17}% 282
\BOOKMARK [2][-]{subsection.17.0.6}{ The alloc\(\) Function}{chapter.17}% 283
\BOOKMARK [2][-]{subsection.17.0.6}{alloc\(\) Function}{chapter.17}% 284
\BOOKMARK [2][-]{subsection.17.0.7}{ Overlays and Underhandedness}{chapter.17}% 285
\BOOKMARK [2][-]{subsection.17.0.7}{Overlays and Underhandedness}{chapter.17}% 286
\BOOKMARK [2][-]{subsection.17.0.8}{ Test and Demonstration Program}{chapter.17}% 287
\BOOKMARK [2][-]{subsection.17.0.8}{Test and Demonstration Program}{chapter.17}% 288
\BOOKMARK [2][-]{subsection.17.0.9}{ Invitation to the Hack}{chapter.17}% 289
\BOOKMARK [2][-]{subsection.17.0.9}{Invitation to the Hack}{chapter.17}% 290
\BOOKMARK [1][-]{section.17.1}{ http://www.fourmilab.ch/smartall/smartall.zip \040Download smartall.zip \040\(Zipped archive\)}{chapter.17}% 291
\BOOKMARK [1][-]{section.17.1}{ Download smartall.zip \(Zipped archive\)}{chapter.17}% 292
\BOOKMARK [2][-]{subsection.17.1.1}{ Copying}{section.17.1}% 293
\BOOKMARK [2][-]{subsection.17.1.1}{Copying}{section.17.1}% 294
\BOOKMARK [0][-]{chapter.18}{Bacula Copyright, Trademark, and Licenses}{}% 295
\BOOKMARK [1][-]{section.18.1}{CC-BY-SA}{chapter.18}% 296
\BOOKMARK [1][-]{section.18.2}{GPL}{chapter.18}% 297
\BOOKMARK [1][-]{section.18.3}{LGPL}{chapter.18}% 298
\BOOKMARK [1][-]{section.18.4}{Public Domain}{chapter.18}% 299
\BOOKMARK [1][-]{section.18.5}{Trademark}{chapter.18}% 300
\BOOKMARK [1][-]{section.18.6}{Fiduciary License Agreement}{chapter.18}% 301
\BOOKMARK [1][-]{section.18.7}{Disclaimer}{chapter.18}% 302
\BOOKMARK [1][-]{section.18.8}{Authors}{chapter.18}% 303
