Changeset 960 for trunk/client/src/smbwrp.c
- Timestamp:
- Aug 16, 2016, 5:41:49 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/client/src/smbwrp.c
r959 r960 40 40 } 41 41 42 void smbwrp_Logging() 43 { 44 char slogfile[_MAX_PATH +1] = {0}; 45 char slogfilename[] = "log.smbc"; 46 char *env = getenv("LOGFILES"); 47 if (env != NULL) 48 { 49 strncpy(slogfile, env, sizeof(slogfile) -1); 50 strncat(slogfile, "\\", sizeof(slogfile) - strlen(slogfile) -1); 51 strncat(slogfile, slogfilename, sizeof(slogfile) - strlen(slogfile) -1); 52 } 53 else 54 strncpy(slogfile, slogfilename, sizeof(slogfile) -1); 55 56 // init samba for debug messages 57 setup_logging("ndpsmb", DEBUG_FILE); 58 lp_set_logfile(slogfile); 59 lp_set_cmdline("log level", "10"); 60 reopen_logs(); 42 void smbwrp_Logging(Resource *pRes) 43 { 44 if (pRes && pRes->loglevel > 0) 45 { 46 // init samba for debug messages 47 setup_logging("ndpsmb", DEBUG_FILE); 48 49 char smblevel[3]; 50 itoa(pRes->loglevel, smblevel, 10); 51 lp_set_logfile(pRes->smb_logfile); 52 lp_set_cmdline("log level", smblevel); 53 reopen_logs(); 54 } 61 55 62 56 return; … … 76 70 * initialise structures 77 71 */ 78 int _System smbwrp_init(void) 79 { 80 static int initialised = 0; 72 int _System smbwrp_init(Resource *pRes) 73 { 81 74 char *p; 82 75 83 if ( initialised)76 if (pRes->smb_initialised) 84 77 return 0; 85 78 86 initialised = 1;79 pRes->smb_initialised = 1; 87 80 88 81 lp_set_in_client(true); // Make sure that we tell lp_load we are client … … 91 84 92 85 if (!lp_load(get_dyn_CONFIGFILE(),true,false,false,true)) 93 debuglocal( 0,("The initial smb.conf is missing, defaults are used!\n"));86 debuglocal(pRes, 0,("The initial smb.conf is missing, defaults are used!\n")); 94 87 95 88 load_interfaces(); … … 98 91 return 1; 99 92 100 if (writeLog())101 smbwrp_Logging(); 102 93 smbwrp_Logging(pRes); 94 95 debuglocal(pRes, 5,("smbwrp_init done\n")); 103 96 /* 104 97 if ((p=smbw_getshared("RESOLVE_ORDER"))) … … 116 109 */ 117 110 BlockSignals(True, SIGPIPE); 111 return; 118 112 } 119 113 … … 214 208 * return a connection to a server 215 209 */ 216 int _System smbwrp_connect( 210 int _System smbwrp_connect(Resource* pRes, cli_state ** cli) 217 211 { 218 212 smbwrp_server * srv = &pRes->srv; … … 231 225 zero_sockaddr(&ss); 232 226 233 debuglocal( 1,"Connecting to \\\\%s:*********@%s:%s\\%s. Master %s:%d\n", srv->username, workgroup, server, share, srv->master, srv->ifmastergroup);227 debuglocal(pRes, 1,"Connecting to \\\\%s:*********@%s:%s\\%s. Master %s:%d\n", srv->username, workgroup, server, share, srv->master, srv->ifmastergroup); 234 228 235 229 if (!*server) { … … 273 267 if (pRes->krb5support == 1) 274 268 { 275 debuglocal( 1,"Kerberos support enabled\n");269 debuglocal(pRes, 1,"Kerberos support enabled\n"); 276 270 c->use_kerberos = True; 277 271 } … … 289 283 } 290 284 291 debuglocal( 4,"session request ok\n");285 debuglocal(pRes, 4,"session request ok\n"); 292 286 293 287 if (!NT_STATUS_IS_OK(cli_negprot(c))) { … … 296 290 } 297 291 298 debuglocal( 4,"session setuping for <%s>/<********> in <%s> %08x %08x %08x\n", srv->username, workgroup, c->protocol, c->sec_mode, c->capabilities);292 debuglocal(pRes, 4,"session setuping for <%s>/<********> in <%s> %08x %08x %08x\n", srv->username, workgroup, c->protocol, c->sec_mode, c->capabilities); 299 293 300 294 if (!NT_STATUS_IS_OK(cli_session_setup(c, srv->username, … … 303 297 workgroup))) 304 298 { 305 debuglocal( 4,"%s/******** login failed\n", srv->username);299 debuglocal(pRes, 4,"%s/******** login failed\n", srv->username); 306 300 loginerror = 1; // save the login error 307 301 308 302 // try an anonymous login if it failed 309 303 if (!NT_STATUS_IS_OK(cli_session_setup(c, "", "", 0,"", 0, workgroup))) { 310 debuglocal( 4,"Anonymous login failed\n");304 debuglocal(pRes, 4,"Anonymous login failed\n"); 311 305 cli_shutdown(c); 312 306 return 6; 313 307 } 314 debuglocal( 4,"Anonymous login successful\n");308 debuglocal(pRes, 4,"Anonymous login successful\n"); 315 309 status = cli_init_creds(c, "", lp_workgroup(), ""); 316 310 } else { … … 319 313 320 314 if (!NT_STATUS_IS_OK(status)) { 321 debuglocal( 4,"cli_init_creds() failed\n");315 debuglocal(pRes, 4,"cli_init_creds() failed\n"); 322 316 cli_shutdown(c); 323 317 // if loginerror is != 0 means normal login failed, but anonymous login worked … … 328 322 } 329 323 330 debuglocal( 4,"session setup ok. Sending tconx <%s> <********>\n", share);324 debuglocal(pRes, 4,"session setup ok. Sending tconx <%s> <********>\n", share); 331 325 332 326 // YD ticket:58 we need to check resource type to avoid connecting to printers. … … 348 342 } 349 343 350 debuglocal( 4,"tconx ok. cli caps %08x\n", c->capabilities);344 debuglocal(pRes, 4,"tconx ok. cli caps %08x\n", c->capabilities); 351 345 352 346 // save cli_state pointer … … 359 353 * close a connection to a server 360 354 */ 361 void _System smbwrp_disconnect( 355 void _System smbwrp_disconnect(Resource* pRes, cli_state * cli) 362 356 { 363 357 // this call will free all buffers, close handles and free cli mem … … 369 363 * a wrapper for open() 370 364 */ 371 int _System smbwrp_open( cli_state * cli, smbwrp_file * file)365 int _System smbwrp_open(Resource *pRes, cli_state * cli, smbwrp_file * file) 372 366 { 373 367 uint16_t fd = 0; … … 379 373 file->denymode = DENY_NONE; 380 374 381 debuglocal( 4,"cli_open(%s) attr %08x mode %02x denymode %02x\n", file->fname, file->openattr, file->openmode, file->denymode);375 debuglocal(pRes, 4,"cli_open(%s) attr %08x mode %02x denymode %02x\n", file->fname, file->openattr, file->openmode, file->denymode); 382 376 if (!NT_STATUS_IS_OK(cli_open(cli, file->fname, file->openmode, file->denymode, &fd))) 383 377 return os2cli_errno(cli); … … 392 386 * a wrapper for read() 393 387 */ 394 int _System smbwrp_read( cli_state * cli, smbwrp_file * file, void *buf, unsigned long count, unsigned long * result)388 int _System smbwrp_read(Resource *pRes, cli_state * cli, smbwrp_file * file, void *buf, unsigned long count, unsigned long * result) 395 389 { 396 390 int ret; … … 412 406 * a wrapper for write() 413 407 */ 414 int _System smbwrp_write( cli_state * cli, smbwrp_file * file, void *buf, unsigned long count, unsigned long * result)408 int _System smbwrp_write(Resource *pRes, cli_state * cli, smbwrp_file * file, void *buf, unsigned long count, unsigned long * result) 415 409 { 416 410 NTSTATUS status; … … 421 415 422 416 *result = 0; 423 //debuglocal(1,("Write %x %d %lld %d", cli, file->fd, file->offset, count));417 debuglocal(pRes, 10, "Write %x %d %lld %d\n", cli, file->fd, file->offset, count); 424 418 status = cli_writeall(cli, file->fd, 0, buf, file->offset, count, &ret); 425 419 if (!NT_STATUS_IS_OK(status)) … … 435 429 * a wrapper for close() 436 430 */ 437 int _System smbwrp_close( cli_state * cli, smbwrp_file * file)431 int _System smbwrp_close(Resource *pRes, cli_state * cli, smbwrp_file * file) 438 432 { 439 433 int rc = 0; … … 441 435 return maperror(EINVAL); 442 436 443 debuglocal( 4,"smpwrp_close updatetime: %d\n", file->updatetime);437 debuglocal(pRes, 4,"smpwrp_close updatetime: %d\n", file->updatetime); 444 438 445 439 if (file->updatetime == 1) 446 440 { 447 441 file->mtime = time(NULL); 448 debuglocal( 4,"cli_close new mtime %lu\n", file->mtime);442 debuglocal(pRes, 4,"cli_close new mtime %lu\n", file->mtime); 449 443 } 450 444 … … 454 448 if (!rc && (file->openattr || file->mtime || file->ctime)) 455 449 { 456 debuglocal(4,"Set pathinfo on close %s %08x %d %d\n", file->fname, file->openattr, file->mtime, file->ctime); 457 if (!NT_STATUS_IS_OK(cli_setpathinfo_basic(cli, file->fname, file->ctime, 0, file->mtime, 0, file->openattr))) 458 debuglocal(4,"Set pathinfo on close failed %d\n", os2cli_errno(cli)); 450 debuglocal(pRes, 4,"Set pathinfo on close %s %08x %d %d\n", file->fname, file->openattr, file->mtime, file->ctime); 451 if (!NT_STATUS_IS_OK(cli_setpathinfo_basic(cli, file->fname, file->ctime, 0, file->mtime, 0, file->openattr))) 452 { 453 debuglocal(pRes, 4,"Set pathinfo on close failed %d\n", os2cli_errno(cli)); 454 } 459 455 } 460 456 … … 469 465 } 470 466 471 int _System smbwrp_setfilesize( cli_state * cli, smbwrp_file * file, long long newsize)467 int _System smbwrp_setfilesize(Resource *pRes, cli_state * cli, smbwrp_file * file, long long newsize) 472 468 { 473 469 int rc = 0; … … 475 471 return maperror(EINVAL); 476 472 477 debuglocal( 4,"cli_setnewfilesize(%s) %lld\n", file->fname, newsize);473 debuglocal(pRes, 4,"cli_setnewfilesize(%s) %lld\n", file->fname, newsize); 478 474 if (!NT_STATUS_IS_OK(cli_ftruncate(cli, file->fd, newsize))) 479 475 { … … 489 485 file->openmode &= ~(O_CREAT | O_EXCL); 490 486 file->openmode |= O_TRUNC; 491 debuglocal( 4,"cli_setnewfileszie : cli_open(%s) attr %08x mode %02x denymode %02x\n", file->fname, file->openattr, file->openmode, file->denymode);487 debuglocal(pRes, 4,"cli_setnewfileszie : cli_open(%s) attr %08x mode %02x denymode %02x\n", file->fname, file->openattr, file->openmode, file->denymode); 492 488 if (!NT_STATUS_IS_OK(cli_open(cli, file->fname, file->openmode, file->denymode, &fd))) 493 489 return os2cli_errno(cli); … … 501 497 * a wrapper for rename() 502 498 */ 503 int _System smbwrp_rename( cli_state * cli, char *oldname, char *newname)499 int _System smbwrp_rename(Resource *pRes, cli_state * cli, char *oldname, char *newname) 504 500 { 505 501 if (!cli || !oldname || !newname) 506 502 return maperror(EINVAL); 507 503 508 debuglocal( 1,"Rename <%s> -> <%s>\n", oldname, newname);504 debuglocal(pRes, 4,"Rename <%s> -> <%s>\n", oldname, newname); 509 505 if (!NT_STATUS_IS_OK(cli_rename(cli, oldname, newname))) 510 506 return os2cli_errno(cli); … … 517 513 * a wrapper for chmod() 518 514 */ 519 int _System smbwrp_setattr( cli_state * cli, smbwrp_fileinfo *finfo)515 int _System smbwrp_setattr(Resource *pRes, cli_state * cli, smbwrp_fileinfo *finfo) 520 516 { 521 517 if (!cli || !finfo || !*finfo->fname) 522 518 return maperror(EINVAL); 523 519 524 debuglocal( 4,"Setting on <%s> attr %04x, time %lu (timezone /%lu\n", finfo->fname, finfo->attr, finfo->mtime, finfo->mtime + get_time_zone(finfo->mtime));520 debuglocal(pRes, 4,"Setting on <%s> attr %04x, time %lu (timezone /%lu\n", finfo->fname, finfo->attr, finfo->mtime, finfo->mtime + get_time_zone(finfo->mtime)); 525 521 // we already have gmt time, so no need to add timezone 526 522 // if (!cli_setatr(cli, finfo->fname, finfo->attr, finfo->mtime + (finfo->mtime == 0 ? 0 : get_time_zone(finfo->mtime))) … … 535 531 * a wrapper for unlink() 536 532 */ 537 int _System smbwrp_unlink( cli_state * cli, const char *fname)533 int _System smbwrp_unlink(Resource *pRes, cli_state * cli, const char *fname) 538 534 { 539 535 if (!cli || !fname) … … 561 557 * a wrapper for lseek() 562 558 */ 563 int _System smbwrp_lseek( cli_state * cli, smbwrp_file * file, int whence, long long offset)559 int _System smbwrp_lseek(Resource *pRes, cli_state * cli, smbwrp_file * file, int whence, long long offset) 564 560 { 565 561 off_t size; … … 567 563 return maperror(EINVAL); 568 564 569 debuglocal( 4,"lseek %d %lld %lld\n", whence, offset, file->offset);565 debuglocal(pRes, 4,"lseek %d %lld %lld\n", whence, offset, file->offset); 570 566 571 567 switch (whence) { … … 599 595 * this is needed because win95 sometimes refuses the qpathinfo 600 596 */ 601 int _System smbwrp_getattr( smbwrp_server *srv, cli_state * cli, smbwrp_fileinfo *finfo)597 int _System smbwrp_getattr(Resource *pRes, smbwrp_server *srv, cli_state * cli, smbwrp_fileinfo *finfo) 602 598 { 603 599 SMB_INO_T ino = 0; … … 609 605 return maperror(EINVAL); 610 606 611 debuglocal( 4,"getattr %d %d <%s>\n", cli->capabilities & CAP_NOPATHINFO2, cli->capabilities & CAP_NT_SMBS, finfo->fname);607 debuglocal(pRes, 4,"getattr %d %d <%s>\n", cli->capabilities & CAP_NOPATHINFO2, cli->capabilities & CAP_NT_SMBS, finfo->fname); 612 608 if (!(cli->capabilities & CAP_NOPATHINFO2) && 613 609 NT_STATUS_IS_OK(cli_qpathinfo2(cli, finfo->fname, &ctime, &atime, … … 636 632 || (strncmp(cli->dev,"LPT",3) == 0)) 637 633 { 638 debuglocal( 4,"getattr not a share.\n");634 debuglocal(pRes, 4,"getattr not a share.\n"); 639 635 *(time_t *)&finfo->ctime = time (NULL); 640 636 *(time_t *)&finfo->atime = time (NULL); … … 663 659 if (NT_STATUS_IS_OK(cli_getatr(cli, finfo->fname, (unsigned short *)&finfo->attr, &finfo->size, (time_t *)&finfo->mtime))) 664 660 { 665 //debuglocal(2,("gotattr1 %08x <%s>\n", finfo->attr, finfo->fname));661 debuglocal(pRes, 10,("gotattr1 %08x <%s>\n", finfo->attr, finfo->fname)); 666 662 finfo->mtime -= get_time_zone(finfo->mtime); 667 663 finfo->atime = finfo->atime; //was mtime … … 678 674 * this is needed because win95 sometimes refuses the qpathinfo 679 675 */ 680 int _System smbwrp_fgetattr( cli_state * cli, smbwrp_file *file, smbwrp_fileinfo *finfo)676 int _System smbwrp_fgetattr(Resource *pRes, cli_state * cli, smbwrp_file *file, smbwrp_fileinfo *finfo) 681 677 { 682 678 struct timespec ctime; … … 725 721 if (state && finfo) 726 722 { 727 filelist_state * 723 filelist_state *st = (filelist_state *)state; 728 724 char fullname[ _MAX_PATH] = {0}; 729 debuglocal( 8,"adding <%s> %d %d %d\n", finfo->fname, sizeof(st->finfo), st->datalen, sizeof(st->finfo.fname));725 debuglocal(st->pConn->pRes, 8,"adding <%s> %d %d %d\n", finfo->fname, sizeof(st->finfo), st->datalen, sizeof(st->finfo.fname)); 730 726 memcpy(&st->finfo, finfo, sizeof(st->finfo)); 731 727 strncpy(fullname, st->dir, strlen(st->dir)); 732 728 strncat(fullname, finfo->fname, sizeof(fullname) - strlen(fullname) -1); 733 729 strncpy(st->finfo.fname, fullname, sizeof(st->finfo.fname)); 734 getfindinfoL( 730 getfindinfoL(st->pConn, st->plist, &st->finfo, st->ulAttribute, st->dir_mask); 735 731 } 736 732 return; … … 796 792 static int list_files(struct cli_state *cli, const char *mask, uint16 attribute, 797 793 void (*fn)(const char *, smbwrp_fileinfo *, const char *, 798 void *), void*state)794 void *), filelist_state *state) 799 795 { 800 796 TALLOC_CTX *frame = talloc_stackframe(); … … 807 803 void *dircachectx = NULL; 808 804 smbwrp_fileinfo wrpfinfo; 805 Resource *pRes = state->pConn->pRes; 809 806 810 807 // Try to get the listing from cache. … … 826 823 ? SMB_FIND_FILE_BOTH_DIRECTORY_INFO : SMB_FIND_EA_SIZE; 827 824 828 debuglocal( 4,"list_files level %d. mask <%s>\n", info_level, mask);825 debuglocal(pRes, 4,"list_files level %d. mask <%s>\n", info_level, mask); 829 826 830 827 req = cli_list_send(frame, ev, cli, mask, attribute, info_level); … … 843 840 dircachectx = dircache_write_begin(state, num_finfo); 844 841 845 debuglocal( 4,"list_files: got %d files\n", num_finfo);842 debuglocal(pRes, 4,"list_files: got %d files\n", num_finfo); 846 843 847 844 for (i=0; i<num_finfo; i++) { … … 857 854 fn(cli->dfs_mountpoint, &wrpfinfo, mask, state); 858 855 // Also add the entry to the cache. 859 dircache_write_entry( dircachectx, &wrpfinfo);860 } 861 862 dircache_write_end( dircachectx);856 dircache_write_entry(pRes, dircachectx, &wrpfinfo); 857 } 858 859 dircache_write_end(pRes, dircachectx); 863 860 fail: 864 861 TALLOC_FREE(frame); … … 869 866 * open a directory on the server 870 867 */ 871 int _System smbwrp_filelist( smbwrp_server *srv, cli_state * cli, filelist_state * state)868 int _System smbwrp_filelist(Resource *pRes, smbwrp_server *srv, cli_state * cli, filelist_state * state) 872 869 { 873 870 if (!srv || !cli || !state || !*state->mask) 874 871 return maperror(EINVAL); 875 872 876 debuglocal( 1,"Filelist <%s> on master <%s> wgrp <%s> server <%s> share <%s> clidev <%s>\n", state->mask, srv->master, srv->workgroup, srv->server_name, srv->share_name, cli->dev);873 debuglocal(pRes, 1,"Filelist <%s> on master <%s> wgrp <%s> server <%s> share <%s> clidev <%s>\n", state->mask, srv->master, srv->workgroup, srv->server_name, srv->share_name, cli->dev); 877 874 if (*srv->workgroup == 0 && *srv->server_name == 0) 878 875 { … … 915 912 * a wrapper for chdir() 916 913 */ 917 int _System smbwrp_chdir( smbwrp_server *srv, cli_state * cli, char *fname)914 int _System smbwrp_chdir(Resource *pRes, smbwrp_server *srv, cli_state * cli, char *fname) 918 915 { 919 916 unsigned short mode = aDIR; … … 923 920 924 921 strncpy(finfo.fname, fname, sizeof(finfo.fname) - 1); 925 if (smbwrp_getattr( srv, cli, &finfo))922 if (smbwrp_getattr(pRes, srv, cli, &finfo)) 926 923 return os2cli_errno(cli); 927 924 … … 938 935 * a wrapper for mkdir() 939 936 */ 940 int _System smbwrp_mkdir( cli_state * cli, char *fname)937 int _System smbwrp_mkdir(Resource *pRes, cli_state * cli, char *fname) 941 938 { 942 939 if (!cli || !fname) … … 952 949 * a wrapper for rmdir() 953 950 */ 954 int _System smbwrp_rmdir( cli_state * cli, char *fname)951 int _System smbwrp_rmdir(Resource *pRes, cli_state * cli, char *fname) 955 952 { 956 953 if (!cli || !fname) … … 966 963 * set EA for a path 967 964 */ 968 int _System smbwrp_setea( cli_state * cli, char *fname, char * name, unsigned char * value, int size)965 int _System smbwrp_setea(Resource *pRes, cli_state * cli, char *fname, char * name, unsigned char * value, int size) 969 966 { 970 967 if (!cli || !fname || !name) … … 980 977 * set EA for a file 981 978 */ 982 int _System smbwrp_fsetea( cli_state * cli, smbwrp_file *file, char * name, unsigned char * value, int size)979 int _System smbwrp_fsetea(Resource *pRes, cli_state * cli, smbwrp_file *file, char * name, unsigned char * value, int size) 983 980 { 984 981 if (!cli || !file || !name) … … 1007 1004 #pragma pack() 1008 1005 1009 static int unilistea( cli_state * cli, char *fname, void * buffer, unsigned long size)1006 static int unilistea(Resource *pRes, cli_state * cli, char *fname, void * buffer, unsigned long size) 1010 1007 { 1011 1008 int fnum, i; … … 1024 1021 if (!NT_STATUS_IS_OK(cli_get_ea_list_path(cli, fname, mem_ctx, &num_eas, &ea_list))) 1025 1022 { 1026 debuglocal( 4,"ea_get_file list failed - %s\n", cli_errstr(cli));1023 debuglocal(pRes, 4,"ea_get_file list failed - %s\n", cli_errstr(cli)); 1027 1024 talloc_destroy(mem_ctx); 1028 1025 return os2cli_errno(cli); 1029 1026 } 1030 1027 1031 debuglocal( 4,"num_eas = %d\n", num_eas);1028 debuglocal(pRes, 4,"num_eas = %d\n", num_eas); 1032 1029 1033 1030 // we will count that os/2 max EA size for file is 64kb … … 1036 1033 { 1037 1034 int namelen = strlen(ea_list[i].name); 1038 debuglocal( 4, "%d Got EA <%s> with namelen %d, size %d. Gross %d. Buf %d\n", i, ea_list[i].name, namelen, ea_list[i].value.length, gotsize, size);1035 debuglocal(pRes, 4, "%d Got EA <%s> with namelen %d, size %d. Gross %d. Buf %d\n", i, ea_list[i].name, namelen, ea_list[i].value.length, gotsize, size); 1039 1036 if (namelen > 0xFF || ea_list[i].value.length > 0xFFFF) 1040 1037 { 1041 debuglocal( 4, "Skip EA <%s> with namelen %d, size %d\n", ea_list[i].name, namelen, ea_list[i].value.length);1038 debuglocal(pRes, 4, "Skip EA <%s> with namelen %d, size %d\n", ea_list[i].name, namelen, ea_list[i].value.length); 1042 1039 continue; 1043 1040 } … … 1056 1053 } 1057 1054 pfealist->cbList = gotsize; 1058 debuglocal( 4,"ret size = %d\n", gotsize);1055 debuglocal(pRes, 4,"ret size = %d\n", gotsize); 1059 1056 1060 1057 talloc_destroy(mem_ctx); … … 1065 1062 * lists EA of a path 1066 1063 */ 1067 int _System smbwrp_listea( cli_state * cli, char *fname, void * buffer, unsigned long size)1064 int _System smbwrp_listea(Resource *pRes, cli_state * cli, char *fname, void * buffer, unsigned long size) 1068 1065 { 1069 1066 if (!cli || !fname || !buffer) 1070 1067 return maperror(EINVAL); 1071 1068 1072 debuglocal( 4,"EALIst for <%s>\n", fname);1073 return unilistea( cli, fname, buffer, size);1069 debuglocal(pRes, 4,"EALIst for <%s>\n", fname); 1070 return unilistea(pRes, cli, fname, buffer, size); 1074 1071 } 1075 1072 … … 1077 1074 * lists EA of a file 1078 1075 */ 1079 int _System smbwrp_flistea( cli_state * cli, smbwrp_file *file, void * buffer, unsigned long size)1076 int _System smbwrp_flistea(Resource *pRes, cli_state * cli, smbwrp_file *file, void * buffer, unsigned long size) 1080 1077 { 1081 1078 if (!cli || !file || !buffer) 1082 1079 return maperror(EINVAL); 1083 1080 1084 debuglocal( 4,"FEALIst for <%s>\n", file->fname);1085 return unilistea( cli, file->fname, buffer, size);1081 debuglocal(pRes, 4,"FEALIst for <%s>\n", file->fname); 1082 return unilistea(pRes, cli, file->fname, buffer, size); 1086 1083 } 1087 1084 … … 1089 1086 * Check the space on a device. 1090 1087 */ 1091 int _System smbwrp_dskattr( cli_state * cli, FSALLOCATE *pfsa)1088 int _System smbwrp_dskattr(Resource *pRes, cli_state * cli, FSALLOCATE *pfsa) 1092 1089 { 1093 1090 int total, bsize, avail; … … 1098 1095 if (!NT_STATUS_IS_OK(cli_dskattr(cli, &bsize, &total, &avail))) 1099 1096 { 1100 debuglocal( 4,"Error in dskattr: %s\n",cli_errstr(cli));1101 return os2cli_errno(cli); 1102 } 1103 1104 debuglocal( 4,"\n\t\t%d blocks of size %d. %d blocks available\n",1097 debuglocal(pRes, 4,"Error in dskattr: %s\n",cli_errstr(cli)); 1098 return os2cli_errno(cli); 1099 } 1100 1101 debuglocal(pRes, 4,"\n\t\t%d blocks of size %d. %d blocks available\n", 1105 1102 total, bsize, avail); 1106 1103
Note:
See TracChangeset
for help on using the changeset viewer.