Changeset 860 for vendor/current/source3/utils
- Timestamp:
- May 12, 2014, 8:58:38 PM (11 years ago)
- Location:
- vendor/current/source3/utils
- Files:
-
- 1 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/source3/utils/net_ads.c
r746 r860 38 38 #include "../libcli/security/security.h" 39 39 #include "libsmb/libsmb.h" 40 #include "utils/net_dns.h" 40 41 41 42 #ifdef HAVE_ADS … … 1124 1125 #if defined(WITH_DNS_UPDATES) 1125 1126 #include "../lib/addns/dns.h" 1126 DNS_ERROR DoDNSUpdate(char *pszServerName, 1127 const char *pszDomainName, const char *pszHostName, 1128 const struct sockaddr_storage *sslist, 1129 size_t num_addrs ); 1130 1131 static NTSTATUS net_update_dns_internal(TALLOC_CTX *ctx, ADS_STRUCT *ads, 1127 1128 static NTSTATUS net_update_dns_internal(struct net_context *c, 1129 TALLOC_CTX *ctx, ADS_STRUCT *ads, 1132 1130 const char *machine_name, 1133 1131 const struct sockaddr_storage *addrs, … … 1191 1189 1192 1190 if ( !NT_STATUS_IS_OK(status) || (ns_count == 0)) { 1193 DEBUG(3,("net_ ads_join: Failed to find name server for the %s "1191 DEBUG(3,("net_update_dns_internal: Failed to find name server for the %s " 1194 1192 "realm\n", ads->config.realm)); 1195 1193 goto done; … … 1202 1200 for (i=0; i < ns_count; i++) { 1203 1201 1202 uint32_t flags = DNS_UPDATE_SIGNED | 1203 DNS_UPDATE_UNSIGNED | 1204 DNS_UPDATE_UNSIGNED_SUFFICIENT | 1205 DNS_UPDATE_PROBE | 1206 DNS_UPDATE_PROBE_SUFFICIENT; 1207 1208 if (c->opt_force) { 1209 flags &= ~DNS_UPDATE_PROBE_SUFFICIENT; 1210 flags &= ~DNS_UPDATE_UNSIGNED_SUFFICIENT; 1211 } 1212 1213 status = NT_STATUS_UNSUCCESSFUL; 1214 1204 1215 /* Now perform the dns update - we'll try non-secure and if we fail, 1205 1216 we'll follow it up with a secure update */ … … 1207 1218 fstrcpy( dns_server, nameservers[i].hostname ); 1208 1219 1209 dns_err = DoDNSUpdate(dns_server, dnsdomain, machine_name, addrs, num_addrs );1220 dns_err = DoDNSUpdate(dns_server, dnsdomain, machine_name, addrs, num_addrs, flags); 1210 1221 if (ERR_DNS_IS_OK(dns_err)) { 1211 1222 status = NT_STATUS_OK; … … 1234 1245 } 1235 1246 1236 static NTSTATUS net_update_dns_ext(TALLOC_CTX *mem_ctx, ADS_STRUCT *ads, 1247 static NTSTATUS net_update_dns_ext(struct net_context *c, 1248 TALLOC_CTX *mem_ctx, ADS_STRUCT *ads, 1237 1249 const char *hostname, 1238 1250 struct sockaddr_storage *iplist, … … 1264 1276 } 1265 1277 1266 status = net_update_dns_internal( mem_ctx, ads, machine_name,1278 status = net_update_dns_internal(c, mem_ctx, ads, machine_name, 1267 1279 iplist, num_addrs); 1268 1280 … … 1271 1283 } 1272 1284 1273 static NTSTATUS net_update_dns( TALLOC_CTX *mem_ctx, ADS_STRUCT *ads, const char *hostname)1285 static NTSTATUS net_update_dns(struct net_context *c, TALLOC_CTX *mem_ctx, ADS_STRUCT *ads, const char *hostname) 1274 1286 { 1275 1287 NTSTATUS status; 1276 1288 1277 status = net_update_dns_ext( mem_ctx, ads, hostname, NULL, 0);1289 status = net_update_dns_ext(c, mem_ctx, ads, hostname, NULL, 0); 1278 1290 return status; 1279 1291 } … … 1437 1449 1438 1450 if (r->out.dns_domain_name) { 1439 d_printf(_("Joined '%s' to realm'%s'\n"), r->in.machine_name,1451 d_printf(_("Joined '%s' to dns domain '%s'\n"), r->in.machine_name, 1440 1452 r->out.dns_domain_name); 1441 1453 } else { … … 1480 1492 } 1481 1493 1482 if ( !ads_dns || !NT_STATUS_IS_OK(net_update_dns( ctx, ads_dns, NULL)) ) {1494 if ( !ads_dns || !NT_STATUS_IS_OK(net_update_dns(c, ctx, ads_dns, NULL)) ) { 1483 1495 d_fprintf( stderr, _("DNS update failed!\n") ); 1484 1496 } … … 1585 1597 } 1586 1598 1587 ntstatus = net_update_dns_ext(c tx, ads, hostname, addrs, num_addrs);1599 ntstatus = net_update_dns_ext(c, ctx, ads, hostname, addrs, num_addrs); 1588 1600 if (!NT_STATUS_IS_OK(ntstatus)) { 1589 1601 d_fprintf( stderr, _("DNS update failed!\n") ); … … 1605 1617 #endif 1606 1618 } 1607 1608 #if defined(WITH_DNS_UPDATES)1609 DNS_ERROR do_gethostbyname(const char *server, const char *host);1610 #endif1611 1619 1612 1620 static int net_ads_dns_gethostbyname(struct net_context *c, int argc, const char **argv) -
vendor/current/source3/utils/net_dns.c
r740 r860 23 23 #include "utils/net.h" 24 24 #include "../lib/addns/dns.h" 25 #include "utils/net_dns.h" 25 26 26 27 #if defined(WITH_DNS_UPDATES) 27 /* 28 * Silly prototype to get rid of a warning 29 28 29 /********************************************************************* 30 *********************************************************************/ 30 31 31 32 DNS_ERROR DoDNSUpdate(char *pszServerName, 32 33 const char *pszDomainName, const char *pszHostName, 33 const struct sockaddr_storage *sslist, 34 size_t num_addrs ); 35 36 /********************************************************************* 37 *********************************************************************/ 38 39 DNS_ERROR DoDNSUpdate(char *pszServerName, 40 const char *pszDomainName, const char *pszHostName, 41 const struct sockaddr_storage *sslist, size_t num_addrs ) 34 const struct sockaddr_storage *sslist, size_t num_addrs, 35 uint32_t flags) 42 36 { 43 37 DNS_ERROR err; … … 47 41 struct dns_update_request *req, *resp; 48 42 43 DEBUG(10,("DoDNSUpdate called with flags: 0x%08x\n", flags)); 44 45 if (!(flags & DNS_UPDATE_SIGNED) && 46 !(flags & DNS_UPDATE_UNSIGNED) && 47 !(flags & DNS_UPDATE_PROBE)) { 48 return ERROR_DNS_INVALID_PARAMETER; 49 } 50 49 51 if ( (num_addrs <= 0) || !sslist ) { 50 52 return ERROR_DNS_INVALID_PARAMETER; … … 60 62 } 61 63 62 /* 63 * Probe if everything's fine 64 */ 65 66 err = dns_create_probe(mem_ctx, pszDomainName, pszHostName, 67 num_addrs, sslist, &req); 68 if (!ERR_DNS_IS_OK(err)) goto error; 69 70 err = dns_update_transaction(mem_ctx, conn, req, &resp); 71 if (!ERR_DNS_IS_OK(err)) goto error; 72 73 if (dns_response_code(resp->flags) == DNS_NO_ERROR) { 74 TALLOC_FREE(mem_ctx); 75 return ERROR_DNS_SUCCESS; 76 } 77 78 /* 79 * First try without signing 80 */ 81 82 err = dns_create_update_request(mem_ctx, pszDomainName, pszHostName, 83 sslist, num_addrs, &req); 84 if (!ERR_DNS_IS_OK(err)) goto error; 85 86 err = dns_update_transaction(mem_ctx, conn, req, &resp); 87 if (!ERR_DNS_IS_OK(err)) goto error; 88 89 if (dns_response_code(resp->flags) == DNS_NO_ERROR) { 90 TALLOC_FREE(mem_ctx); 91 return ERROR_DNS_SUCCESS; 64 if (flags & DNS_UPDATE_PROBE) { 65 66 /* 67 * Probe if everything's fine 68 */ 69 70 err = dns_create_probe(mem_ctx, pszDomainName, pszHostName, 71 num_addrs, sslist, &req); 72 if (!ERR_DNS_IS_OK(err)) goto error; 73 74 err = dns_update_transaction(mem_ctx, conn, req, &resp); 75 if (!ERR_DNS_IS_OK(err)) goto error; 76 77 if (!ERR_DNS_IS_OK(err)) { 78 DEBUG(3,("DoDNSUpdate: failed to probe DNS\n")); 79 } 80 81 if ((dns_response_code(resp->flags) == DNS_NO_ERROR) && 82 (flags & DNS_UPDATE_PROBE_SUFFICIENT)) { 83 TALLOC_FREE(mem_ctx); 84 return ERROR_DNS_SUCCESS; 85 } 86 } 87 88 if (flags & DNS_UPDATE_UNSIGNED) { 89 90 /* 91 * First try without signing 92 */ 93 94 err = dns_create_update_request(mem_ctx, pszDomainName, pszHostName, 95 sslist, num_addrs, &req); 96 if (!ERR_DNS_IS_OK(err)) goto error; 97 98 err = dns_update_transaction(mem_ctx, conn, req, &resp); 99 if (!ERR_DNS_IS_OK(err)) goto error; 100 101 if (!ERR_DNS_IS_OK(err)) { 102 DEBUG(3,("DoDNSUpdate: unsigned update failed\n")); 103 } 104 105 if ((dns_response_code(resp->flags) == DNS_NO_ERROR) && 106 (flags & DNS_UPDATE_UNSIGNED_SUFFICIENT)) { 107 TALLOC_FREE(mem_ctx); 108 return ERROR_DNS_SUCCESS; 109 } 92 110 } 93 111 … … 95 113 * Okay, we have to try with signing 96 114 */ 97 {115 if (flags & DNS_UPDATE_SIGNED) { 98 116 gss_ctx_id_t gss_context; 99 117 char *keyname; 118 119 err = dns_create_update_request(mem_ctx, pszDomainName, pszHostName, 120 sslist, num_addrs, &req); 121 if (!ERR_DNS_IS_OK(err)) goto error; 100 122 101 123 if (!(keyname = dns_generate_keyname( mem_ctx ))) { … … 129 151 err = (dns_response_code(resp->flags) == DNS_NO_ERROR) ? 130 152 ERROR_DNS_SUCCESS : ERROR_DNS_UPDATE_FAILED; 153 154 if (!ERR_DNS_IS_OK(err)) { 155 DEBUG(3,("DoDNSUpdate: signed update failed\n")); 156 } 131 157 } 132 158 … … 177 203 return count; 178 204 } 179 180 /*181 * Silly prototype to get rid of a warning182 */183 184 DNS_ERROR do_gethostbyname(const char *server, const char *host);185 205 186 206 DNS_ERROR do_gethostbyname(const char *server, const char *host) -
vendor/current/source3/utils/net_printing.c
r740 r860 38 38 #define SECDESC_PREFIX "SECDESC/" 39 39 40 #define ARG_ENCODING "encoding=" 41 42 struct printing_opts { 43 const char *encoding; 44 const char *tdb; 45 }; 46 47 static NTSTATUS printing_parse_args(TALLOC_CTX *mem_ctx, 48 struct printing_opts **popts, 49 int argc, const char **argv) 50 { 51 size_t c; 52 struct printing_opts *o; 53 54 if (argc == 0) { 55 return NT_STATUS_INVALID_PARAMETER; 56 } 57 58 o = talloc_zero(mem_ctx, struct printing_opts); 59 if (o == NULL) { 60 return NT_STATUS_INVALID_PARAMETER; 61 } 62 63 for (c = 0; c < argc; c++) { 64 if (strnequal(argv[c], ARG_ENCODING, sizeof(ARG_ENCODING) - 1)) { 65 o->encoding = talloc_strdup(o, 66 argv[c] + sizeof(ARG_ENCODING) - 1); 67 if (o->encoding == NULL) { 68 return NT_STATUS_NO_MEMORY; 69 } 70 } else { 71 o->tdb = talloc_strdup(o, argv[c]); 72 if (o->tdb == NULL) { 73 return NT_STATUS_NO_MEMORY; 74 } 75 } 76 } 77 78 *popts = o; 79 return NT_STATUS_OK; 80 } 81 40 82 static void dump_form(TALLOC_CTX *mem_ctx, 41 83 const char *key_name, … … 71 113 const char *key_name, 72 114 unsigned char *data, 73 size_t length) 115 size_t length, 116 bool do_string_conversion) 74 117 { 75 118 enum ndr_err_code ndr_err; … … 83 126 84 127 ZERO_STRUCT(r); 128 129 if (do_string_conversion) { 130 r.string_flags = LIBNDR_FLAG_STR_ASCII; 131 } 85 132 86 133 ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, &r, … … 101 148 const char *key_name, 102 149 unsigned char *data, 103 size_t length) 150 size_t length, 151 bool do_string_conversion) 104 152 { 105 153 enum ndr_err_code ndr_err; … … 113 161 114 162 ZERO_STRUCT(r); 163 164 if (do_string_conversion) { 165 r.info.string_flags = LIBNDR_FLAG_STR_ASCII; 166 } 115 167 116 168 ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, &r, … … 166 218 TDB_CONTEXT *tdb; 167 219 TDB_DATA kbuf, newkey, dbuf; 220 struct printing_opts *o; 221 const char *save_dos_charset = lp_dos_charset(); 222 bool do_string_conversion = false; 223 NTSTATUS status; 168 224 169 225 if (argc < 1 || c->display_usage) { 170 d_fprintf(stderr, "%s\nnet printing dump <file.tdb>\n", 171 _("Usage:")); 226 d_printf( "%s\n" 227 "net printing dump [options] <file.tdb>\n" 228 " %s\n", 229 _("Usage:"), 230 _("Dump formated printer information of the tdb.")); 231 d_printf(_("Valid options:\n")); 232 d_printf(_(" encoding=<CP> Set the Code Page of the tdb file.\n" 233 " See iconv -l for the list of CP values\n" 234 " (CP1252 is Western latin1, CP1251 is Cyrillic).\n")); 172 235 goto done; 173 236 } 174 237 175 tdb = tdb_open_log(argv[0], 0, TDB_DEFAULT, O_RDONLY, 0600); 238 status = printing_parse_args(ctx, &o, argc, argv); 239 if (!NT_STATUS_IS_OK(status)) { 240 d_fprintf(stderr, _("failed to parse arguments\n")); 241 goto done; 242 } 243 244 tdb = tdb_open_log(o->tdb, 0, TDB_DEFAULT, O_RDONLY, 0600); 176 245 if (!tdb) { 177 d_fprintf(stderr, _("failed to open tdb file: %s\n"), argv[0]);246 d_fprintf(stderr, _("failed to open tdb file: %s\n"), o->tdb); 178 247 goto done; 248 } 249 250 if (o->encoding != NULL) { 251 lp_set_cmdline("dos charset", o->encoding); 252 d_fprintf(stderr, _("do string conversion from %s to %s\n"), 253 lp_dos_charset(), lp_unix_charset()); 254 do_string_conversion = true; 179 255 } 180 256 … … 195 271 196 272 if (strncmp((const char *)kbuf.dptr, DRIVERS_PREFIX, strlen(DRIVERS_PREFIX)) == 0) { 197 dump_driver(ctx, (const char *)kbuf.dptr+strlen(DRIVERS_PREFIX), dbuf.dptr, dbuf.dsize); 273 dump_driver(ctx, 274 (const char *)kbuf.dptr+strlen(DRIVERS_PREFIX), 275 dbuf.dptr, 276 dbuf.dsize, 277 do_string_conversion); 198 278 SAFE_FREE(dbuf.dptr); 199 279 continue; … … 201 281 202 282 if (strncmp((const char *)kbuf.dptr, PRINTERS_PREFIX, strlen(PRINTERS_PREFIX)) == 0) { 203 dump_printer(ctx, (const char *)kbuf.dptr+strlen(PRINTERS_PREFIX), dbuf.dptr, dbuf.dsize); 283 dump_printer(ctx, 284 (const char *)kbuf.dptr+strlen(PRINTERS_PREFIX), 285 dbuf.dptr, 286 dbuf.dsize, 287 do_string_conversion); 204 288 SAFE_FREE(dbuf.dptr); 205 289 continue; … … 217 301 218 302 done: 303 lp_set_cmdline("dos charset", save_dos_charset); 219 304 talloc_free(ctx); 220 305 return ret; … … 230 315 const char **argv) 231 316 { 317 struct printing_opts *o; 232 318 TALLOC_CTX *tmp_ctx; 233 319 TDB_CONTEXT *tdb; 234 320 TDB_DATA kbuf, newkey, dbuf; 235 321 NTSTATUS status; 322 const char *save_dos_charset = lp_dos_charset(); 323 bool do_string_conversion = false; 236 324 237 325 tmp_ctx = talloc_new(mem_ctx); … … 240 328 } 241 329 242 tdb = tdb_open_log(argv[0], 0, TDB_DEFAULT, O_RDONLY, 0600); 330 status = printing_parse_args(tmp_ctx, &o, argc, argv); 331 if (!NT_STATUS_IS_OK(status)) { 332 d_fprintf(stderr, _("failed to parse arguments\n")); 333 goto done; 334 } 335 336 tdb = tdb_open_log(o->tdb, 0, TDB_DEFAULT, O_RDONLY, 0600); 243 337 if (tdb == NULL) { 244 d_fprintf(stderr, _("failed to open tdb file: %s\n"), argv[0]);338 d_fprintf(stderr, _("failed to open tdb file: %s\n"), o->tdb); 245 339 status = NT_STATUS_NO_SUCH_FILE; 246 340 goto done; 341 } 342 343 if (o->encoding != NULL) { 344 lp_set_cmdline("dos charset", o->encoding); 345 d_fprintf(stderr, _("do string conversion from %s to %s\n"), 346 lp_dos_charset(), lp_unix_charset()); 347 do_string_conversion = true; 247 348 } 248 349 … … 271 372 (const char *) kbuf.dptr + strlen(DRIVERS_PREFIX), 272 373 dbuf.dptr, 273 dbuf.dsize); 374 dbuf.dsize, 375 do_string_conversion); 274 376 SAFE_FREE(dbuf.dptr); 275 377 continue; … … 281 383 (const char *) kbuf.dptr + strlen(PRINTERS_PREFIX), 282 384 dbuf.dptr, 283 dbuf.dsize); 385 dbuf.dsize, 386 do_string_conversion); 284 387 SAFE_FREE(dbuf.dptr); 285 388 continue; … … 313 416 314 417 done: 418 lp_set_cmdline("dos charset", save_dos_charset); 315 419 talloc_free(tmp_ctx); 316 420 return status; … … 323 427 if (argc < 1 || c->display_usage) { 324 428 d_printf( "%s\n" 325 "net printing migrate <file.tdb>\n"429 "net printing migrate [options] <file.tdb>\n" 326 430 " %s\n", 327 431 _("Usage:"), 328 432 _("Migrate tdb printing files to new storage")); 433 d_printf(_("Valid options:\n")); 434 d_printf(_(" encoding=<CP> Set the Code Page of the tdb file.\n" 435 " See iconv -l for the list of CP values\n" 436 " (CP1252 is Western latin1, CP1251 is Cyrillic).\n")); 329 437 return 0; 330 438 } -
vendor/current/source3/utils/net_rpc.c
r746 r860 1657 1657 goto done; 1658 1658 } 1659 if (group_rids.count != 1) { 1660 status = NT_STATUS_INVALID_NETWORK_RESPONSE; 1661 goto done; 1662 } 1663 if (name_types.count != 1) { 1664 status = NT_STATUS_INVALID_NETWORK_RESPONSE; 1665 goto done; 1666 } 1659 1667 1660 1668 switch (name_types.ids[0]) … … 2064 2072 goto done; 2065 2073 } 2074 if (rids.count != 1) { 2075 status = NT_STATUS_INVALID_NETWORK_RESPONSE; 2076 goto done; 2077 } 2078 if (rid_types.count != 1) { 2079 status = NT_STATUS_INVALID_NETWORK_RESPONSE; 2080 goto done; 2081 } 2066 2082 2067 2083 status = dcerpc_samr_OpenGroup(b, mem_ctx, … … 2317 2333 d_fprintf(stderr, _("Could not lookup up group member %s\n"), 2318 2334 member); 2335 goto done; 2336 } 2337 if (rids.count != 1) { 2338 status = NT_STATUS_INVALID_NETWORK_RESPONSE; 2339 goto done; 2340 } 2341 if (rid_types.count != 1) { 2342 status = NT_STATUS_INVALID_NETWORK_RESPONSE; 2319 2343 goto done; 2320 2344 } … … 2866 2890 return result; 2867 2891 } 2868 2892 if (names.count != this_time) { 2893 return NT_STATUS_INVALID_NETWORK_RESPONSE; 2894 } 2895 if (types.count != this_time) { 2896 return NT_STATUS_INVALID_NETWORK_RESPONSE; 2897 } 2869 2898 /* We only have users as members, but make the output 2870 2899 the same as the output of alias members */ … … 3102 3131 d_fprintf(stderr, _("Couldn't find group %s\n"), 3103 3132 argv[0]); 3104 return result; 3105 } 3133 return NT_STATUS_INVALID_NETWORK_RESPONSE; 3134 } 3135 if (rid_types.count != 1) { 3136 d_fprintf(stderr, _("Couldn't find group %s\n"), 3137 argv[0]); 3138 return NT_STATUS_INVALID_NETWORK_RESPONSE; 3139 } 3140 3106 3141 3107 3142 if (rid_types.ids[0] == SID_NAME_DOM_GRP) { … … 6017 6052 "failed %s\n"), 6018 6053 acct_name, nt_errstr(result) ); 6054 goto done; 6055 } 6056 if (user_rids.count != 1) { 6057 status = NT_STATUS_INVALID_NETWORK_RESPONSE; 6058 goto done; 6059 } 6060 if (name_types.count != 1) { 6061 status = NT_STATUS_INVALID_NETWORK_RESPONSE; 6019 6062 goto done; 6020 6063 } -
vendor/current/source3/utils/net_rpc_join.c
r740 r860 368 368 acct_name, nt_errstr(status), nt_errstr(result))); 369 369 370 if (user_rids.count != 1) { 371 status = NT_STATUS_INVALID_NETWORK_RESPONSE; 372 goto done; 373 } 374 if (name_types.count != 1) { 375 status = NT_STATUS_INVALID_NETWORK_RESPONSE; 376 goto done; 377 } 378 370 379 if (name_types.ids[0] != SID_NAME_USER) { 371 380 DEBUG(0, ("%s is not a user account (type=%d)\n", acct_name, name_types.ids[0])); -
vendor/current/source3/utils/net_serverid.c
r740 r860 37 37 const char **argv) 38 38 { 39 if (!serverid_init_readonly(c)) { 40 d_printf("failed to open serverid.tdb\n"); 41 return -1; 42 } 39 43 d_printf("pid unique_id msg_flags\n"); 40 44 return serverid_traverse_read(net_serverid_list_fn, NULL) ? 0 : -1; … … 114 118 const char **argv) 115 119 { 120 if (!sessionid_init()) { 121 d_printf("failed to open sessionid.tdb\n"); 122 return -1; 123 }; 124 116 125 connections_forall(net_serverid_wipedbs_conn, NULL); 117 126 sessionid_traverse(net_serverid_wipedbs_sessionid, NULL); -
vendor/current/source3/utils/net_status.c
r740 r860 240 240 {NULL, NULL, 0, NULL, NULL} 241 241 }; 242 243 if (!sessionid_init_readonly()) { 244 d_printf("failed to open sessionid.tdb\n"); 245 return -1; 246 } 247 242 248 return net_run_function(c, argc, argv, "net status", func); 243 249 } -
vendor/current/source3/utils/smbcontrol.c
r740 r860 937 937 } 938 938 939 return send_message(msg_ctx, pid, MSG_ DEBUG, argv[1],939 return send_message(msg_ctx, pid, MSG_PRINTER_DRVUPGRADE, argv[1], 940 940 strlen(argv[1]) + 1); 941 941 } -
vendor/current/source3/utils/status.c
r740 r860 39 39 #include "locking/proto.h" 40 40 #include "messages.h" 41 #include "serverid.h" 41 42 42 43 #define SMB_MAXPIDS 2048 … … 379 380 380 381 382 if (!sessionid_init_readonly()) { 383 fprintf(stderr, "Can't open sessionid.tdb\n"); 384 ret = -1; 385 goto done; 386 } 387 381 388 if (lp_clustering()) { 382 389 /* … … 471 478 } 472 479 480 if (!serverid_init_readonly(frame)) { 481 d_printf("Can't initialise serverid tdb - exiting\n"); 482 ret = 1; 483 goto done; 484 } 473 485 result = share_mode_forall(print_share_mode, NULL); 474 486
Note:
See TracChangeset
for help on using the changeset viewer.