Changeset 145 for branches/client-1.5/src/smbwrp.c
- Timestamp:
- Aug 16, 2008, 12:11:48 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/client-1.5/src/smbwrp.c
r129 r145 377 377 return a connection to a server 378 378 *******************************************************/ 379 int _System smbwrp_connect(smbwrp_server * srv, struct cli_state ** cli, int krb5support) 380 { 379 int _System smbwrp_connect( Resource* pRes, cli_state ** cli) 380 { 381 smbwrp_server * srv = &pRes->srv; 381 382 char * server = srv->server_name; 382 383 char * share = *(srv->share_name) ? srv->share_name : "IPC$"; … … 440 441 } 441 442 442 if (krb5support == 1){ 443 debuglocal(1,"Kerberos support enabled\n"); 444 c->use_kerberos = True;} 443 if (pRes->krb5support == 1) 444 { 445 debuglocal(1,"Kerberos support enabled\n"); 446 c->use_kerberos = True; 447 } 445 448 446 449 if (!cli_session_request(c, &calling, &called)) { … … 492 495 debuglocal(4," tconx ok. cli caps %08x\n", c->capabilities); 493 496 494 // copy back cli_state497 // save cli_state pointer 495 498 *cli = c; 496 499 497 // srv->dev = (dev_t)(str_checksum(server) ^ str_checksum(share));498 499 500 return 0; 500 501 } … … 503 504 close a connection to a server 504 505 *******************************************************/ 505 void _System smbwrp_disconnect( struct cli_state ** cli)506 { 507 if ( cli)506 void _System smbwrp_disconnect( Resource* pRes, cli_state * cli) 507 { 508 if (pRes && cli) 508 509 { 509 510 // this call will free all buffers, close handles and free cli mem 510 cli_shutdown(*cli); 511 // set to zero because no longer valid 512 *cli = 0; 511 cli_shutdown( cli); 513 512 } 514 513 } … … 933 932 934 933 // =============================DIRECTORY ROUTINES============================ 935 934 936 935 /***************************************************** 937 936 add a entry to a directory listing … … 942 941 { 943 942 filelist_state * st = (filelist_state *)state; 944 if (st->add_dir_entry) 945 { 946 debuglocal(8,"adding <%s> %d %d\n", finfo->fname, sizeof(st->finfo), st->datalen); 947 memcpy(&st->finfo, finfo, sizeof(st->finfo)); 948 st->add_dir_entry(state); 949 } 950 } 951 } 952 953 #if 0 954 static void smbwrp_dir_add_old(struct file_info *finfo, const char *mask, void *state) 955 { 956 if (state && finfo) 957 { 958 filelist_state * st = (filelist_state *)state; 959 if (st->add_dir_entry) 960 { 961 strncpy(st->finfo.fname, finfo->name, sizeof(st->finfo.fname) - 1); 962 st->finfo.size = finfo->size; 963 st->finfo.easize = -1; 964 st->finfo.attr = finfo->mode; 965 st->finfo.ctime = finfo->ctime_ts.tv_sec - get_time_zone(finfo->ctime_ts.tv_sec); 966 st->finfo.mtime = finfo->mtime_ts.tv_sec - get_time_zone(finfo->mtime_ts.tv_sec); 967 st->finfo.atime = finfo->atime_ts.tv_sec - get_time_zone(finfo->atime_ts.tv_sec); 968 st->add_dir_entry(state); 969 } 970 } 971 } 972 #endif 943 char fullname[ _MAX_PATH]; 944 debuglocal(8,"adding <%s> %d %d\n", finfo->fname, sizeof(st->finfo), st->datalen); 945 memcpy(&st->finfo, finfo, sizeof(st->finfo)); 946 StrCpy(fullname, st->dir); 947 StrCat(fullname, finfo->fname); 948 StrCpy(st->finfo.fname, fullname); 949 getfindinfoL( st->pConn, st->plist, &st->finfo, st->ulAttribute, st->dir_mask); 950 } 951 } 973 952 974 953 static void smbwrp_special_add(const char * name, void * state) … … 1470 1449 smbwrp_dir_add, state) < 0) 1471 1450 #endif 1472 { 1451 { 1473 1452 return os2cli_errno(cli); 1474 1453 } 1475 } 1454 } 1476 1455 1477 1456 return 0; … … 1719 1698 return 0; 1720 1699 } 1700 1701 1702 char * getlastslash(char * path) 1703 { 1704 char * p; 1705 if (!path) 1706 { 1707 return NULL; 1708 } 1709 for (p = path + strlen(path) - 1; p >= path; p--) 1710 { 1711 if (*p == '\\' || *p == '/') 1712 { 1713 return p; 1714 } 1715 } 1716 return NULL; 1717 } 1718
Note:
See TracChangeset
for help on using the changeset viewer.