| 88 | | static char *dyn_CONFIGFILE; /**< Location of smb.conf file. **/ |
| | 88 | |
| | 89 | /* Directory the binary was called from, same as getbindir() */ |
| | 90 | static char *dyn_SBINDIR; |
| | 91 | |
| | 92 | const char *get_dyn_SBINDIR(void) |
| | 93 | { |
| | 94 | static char buffer[1024] = ""; |
| | 95 | if (!*buffer) |
| | 96 | { |
| | 97 | char exedir[1024] = ""; |
| | 98 | if (os2_GetExePath(exedir) != 0) |
| | 99 | { |
| | 100 | snprintf(buffer, 260, "%s", SBINDIR); |
| | 101 | } else { |
| | 102 | snprintf(buffer, 260, "%s", exedir); |
| | 103 | } |
| | 104 | } |
| | 105 | |
| | 106 | if (dyn_SBINDIR == NULL) { |
| | 107 | return buffer; |
| | 108 | } |
| | 109 | return dyn_SBINDIR; |
| | 110 | } |
| | 111 | |
| | 112 | const char *set_dyn_SBINDIR(const char *newpath) |
| | 113 | { |
| | 114 | if (dyn_SBINDIR) { |
| | 115 | SAFE_FREE(dyn_SBINDIR); |
| | 116 | } |
| | 117 | dyn_SBINDIR = SMB_STRDUP(newpath); |
| | 118 | return dyn_SBINDIR; |
| | 119 | } |
| | 120 | |
| | 121 | /* Directory the binary was called from, same as getsbindir() */ |
| | 122 | static char *dyn_BINDIR; |
| | 123 | |
| | 124 | const char *get_dyn_BINDIR(void) |
| | 125 | { |
| | 126 | static char buffer[1024] = ""; |
| | 127 | if (!*buffer) |
| | 128 | { |
| | 129 | char exedir[1024] = ""; |
| | 130 | if (os2_GetExePath(exedir) != 0) |
| | 131 | { |
| | 132 | snprintf(buffer, 260, "%s", BINDIR); |
| | 133 | } else { |
| | 134 | snprintf(buffer, 260, "%s", exedir); |
| | 135 | } |
| | 136 | } |
| | 137 | |
| | 138 | if (dyn_BINDIR == NULL) { |
| | 139 | return buffer; |
| | 140 | } |
| | 141 | return dyn_BINDIR; |
| | 142 | } |
| | 143 | |
| | 144 | const char *set_dyn_BINDIR(const char *newpath) |
| | 145 | { |
| | 146 | if (dyn_BINDIR) { |
| | 147 | SAFE_FREE(dyn_BINDIR); |
| | 148 | } |
| | 149 | dyn_BINDIR = SMB_STRDUP(newpath); |
| | 150 | return dyn_BINDIR; |
| | 151 | } |
| | 152 | |
| | 153 | /* Directory holding the SWAT files */ |
| | 154 | static char *dyn_SWATDIR; |
| | 155 | |
| | 156 | const char *get_dyn_SWATDIR(void) |
| | 157 | { |
| | 158 | static char buffer[1024] = ""; |
| | 159 | if (!*buffer) |
| | 160 | { |
| | 161 | char exedir[1024] = ""; |
| | 162 | if (os2_GetExePath(exedir) != 0) |
| | 163 | { |
| | 164 | snprintf(buffer, 260, "%s", SWATDIR); |
| | 165 | } else { |
| | 166 | snprintf(buffer, 260, "%s/%s", exedir,"swat"); |
| | 167 | } |
| | 168 | } |
| | 169 | |
| | 170 | if (dyn_SWATDIR == NULL) { |
| | 171 | return buffer; |
| | 172 | } |
| | 173 | return dyn_SWATDIR; |
| | 174 | } |
| | 175 | |
| | 176 | const char *set_dyn_SWATDIR(const char *newpath) |
| | 177 | { |
| | 178 | if (dyn_SWATDIR) { |
| | 179 | SAFE_FREE(dyn_SWATDIR); |
| | 180 | } |
| | 181 | dyn_SWATDIR = SMB_STRDUP(newpath); |
| | 182 | return dyn_SWATDIR; |
| | 183 | } |
| | 184 | |
| | 185 | |
| | 186 | /* Location of smb.conf file. */ |
| | 187 | static char *dyn_CONFIGFILE; |
| | 284 | /* Directory holding the codepages */ |
| | 285 | static char *dyn_CODEPAGEDIR; |
| | 286 | |
| | 287 | const char *get_dyn_CODEPAGEDIR(void) |
| | 288 | { |
| | 289 | static char buffer[1024] = ""; |
| | 290 | if (!*buffer) |
| | 291 | { |
| | 292 | char exedir[1024] = ""; |
| | 293 | if (os2_GetExePath(exedir) != 0) |
| | 294 | { |
| | 295 | snprintf(buffer, 260, "%s", CODEPAGEDIR); |
| | 296 | } else { |
| | 297 | snprintf(buffer, 260, "%s/%s", exedir, "codepages"); |
| | 298 | } |
| | 299 | } |
| | 300 | |
| | 301 | if (dyn_CODEPAGEDIR == NULL) { |
| | 302 | return buffer; |
| | 303 | } |
| | 304 | return dyn_CODEPAGEDIR; |
| | 305 | } |
| | 306 | |
| | 307 | const char *set_dyn_CODEPAGEDIR(const char *newpath) |
| | 308 | { |
| | 309 | if (dyn_CODEPAGEDIR) { |
| | 310 | SAFE_FREE(dyn_CODEPAGEDIR); |
| | 311 | } |
| | 312 | dyn_CODEPAGEDIR = SMB_STRDUP(newpath); |
| | 313 | return dyn_CODEPAGEDIR; |
| | 314 | } |
| | 315 | |
| | 316 | /* Directory holding the libs */ |
| | 317 | static char *dyn_LIBDIR; |
| | 318 | |
| | 319 | const char *get_dyn_LIBDIR(void) |
| | 320 | { |
| | 321 | static char buffer[1024] = ""; |
| | 322 | if (!*buffer) |
| | 323 | { |
| | 324 | char exedir[1024] = ""; |
| | 325 | if (os2_GetExePath(exedir) != 0) |
| | 326 | { |
| | 327 | snprintf(buffer, 260, "%s", LIBDIR); |
| | 328 | } else { |
| | 329 | snprintf(buffer, 260, "%s/%s", exedir, "lib"); |
| | 330 | } |
| | 331 | } |
| | 332 | |
| | 333 | if (dyn_LIBDIR == NULL) { |
| | 334 | return buffer; |
| | 335 | } |
| | 336 | return dyn_LIBDIR; |
| | 337 | } |
| | 338 | |
| | 339 | const char *set_dyn_LIBDIR(const char *newpath) |
| | 340 | { |
| | 341 | if (dyn_LIBDIR) { |
| | 342 | SAFE_FREE(dyn_LIBDIR); |
| | 343 | } |
| | 344 | dyn_LIBDIR = SMB_STRDUP(newpath); |
| | 345 | return dyn_LIBDIR; |
| | 346 | } |
| | 347 | |
| | 348 | /* Directory holding the modules */ |
| | 349 | static char *dyn_MODULESDIR; |
| | 350 | |
| | 351 | const char *get_dyn_MODULESDIR(void) |
| | 352 | { |
| | 353 | static char buffer[1024] = ""; |
| | 354 | if (!*buffer) |
| | 355 | { |
| | 356 | char exedir[1024] = ""; |
| | 357 | if (os2_GetExePath(exedir) != 0) |
| | 358 | { |
| | 359 | snprintf(buffer, 260, "%s", MODULESDIR); |
| | 360 | } else { |
| | 361 | snprintf(buffer, 260, "%s/%s", exedir, "modules"); |
| | 362 | } |
| | 363 | } |
| | 364 | |
| | 365 | if (dyn_MODULESDIR == NULL) { |
| | 366 | return buffer; |
| | 367 | } |
| | 368 | return dyn_MODULESDIR; |
| | 369 | } |
| | 370 | |
| | 371 | const char *set_dyn_MODULESDIR(const char *newpath) |
| | 372 | { |
| | 373 | if (dyn_MODULESDIR) { |
| | 374 | SAFE_FREE(dyn_MODULESDIR); |
| | 375 | } |
| | 376 | dyn_MODULESDIR = SMB_STRDUP(newpath); |
| | 377 | return dyn_MODULESDIR; |
| | 378 | } |
| | 379 | |