{PROTOCOL_LANMAN1,"LANMAN1.0"},
{PROTOCOL_LANMAN2,"LM1.2X002"},
{PROTOCOL_LANMAN2,"Samba"},
- {PROTOCOL_NT1,"NT LM 0.12"},
{PROTOCOL_NT1,"NT LANMAN 1.0"},
+ {PROTOCOL_NT1,"NT LM 0.12"},
{-1,NULL}
};
SIVAL(cli->outbuf,smb_vwv3,offset);
SIVAL(cli->outbuf,smb_vwv5,IS_BITS_SET_ALL(mode, 0x0008) ? 0xFFFFFFFF : 0);
SSVAL(cli->outbuf,smb_vwv7,mode);
-
+
+ SSVAL(cli->outbuf,smb_vwv8,IS_BITS_SET_ALL(mode, 0x0008) ? size : 0);
SSVAL(cli->outbuf,smb_vwv10,size);
SSVAL(cli->outbuf,smb_vwv11,
smb_buf(cli->outbuf) - smb_base(cli->outbuf));
/********************************************************************
rpc pipe call id
********************************************************************/
+static uint32 call_id = 0;
static uint32 get_rpc_call_id(void)
{
- static uint32 call_id = 1;
return ++call_id;
}
+static uint32 reset_rpc_call_id(void)
+{
+ call_id = 0;
+}
+
/*******************************************************************
uses SMBreadX to get rest of rpc data
********************************************************************/
if (auth_len != 0)
{
- alloc_hint = data_len - 0x18 - auth_len - 10;
+ alloc_hint = data_len - 0x18 - auth_len - 16;
}
else
{
prs_mem_free(&rdata );
prs_mem_free(&rparam );
+ reset_rpc_call_id();
+
return valid_ack;
}
RPC_IFACE transfer;
int fnum;
+ reset_rpc_call_id();
+
/******************* open the pipe *****************/
if (IS_BITS_SET_ALL(cli->capabilities, CAP_NT_SMBS))
{
neg->neg_flgs = neg_flgs ; /* 0x00b2b3 */
- make_str_hdr(&neg->hdr_myname, len_myname, len_myname, 0x20);
- make_str_hdr(&neg->hdr_domain, len_domain, len_domain, 0x20 + len_myname+1);
+ make_str_hdr(&neg->hdr_myname, len_myname+1, len_myname+1, 0x20);
+ make_str_hdr(&neg->hdr_domain, len_domain+1, len_domain+1, 0x20 + len_myname+1);
fstrcpy(neg->myname, myname);
fstrcpy(neg->domain, domain);
smb_io_strhdr("hdr_myname", &(neg->hdr_myname), ps, depth);
smb_io_strhdr("hdr_domain", &(neg->hdr_domain), ps, depth);
- prs_string("domain", ps, depth, neg->domain, neg->hdr_domain.str_str_len, sizeof(neg->domain));
- prs_string("myname", ps, depth, neg->myname, neg->hdr_myname.str_str_len, sizeof(neg->myname));
+ prs_string("domain", ps, depth, neg->domain, neg->hdr_domain.str_str_len-1, sizeof(neg->domain));
+ prs_string("myname", ps, depth, neg->myname, neg->hdr_myname.str_str_len-1, sizeof(neg->myname));
}
/*******************************************************************
fstrcat(srv_name, info->myhostname);
strupper(srv_name);
-
fprintf(out_hnd, "SAM Encryption Test\n");
/* open SAMR session. */
myumask = umask(0);
umask(myumask);
+ if (!get_myname(global_myname, NULL))
+ {
+ fprintf(stderr, "Failed to get my hostname.\n");
+ }
+
if (getenv("USER"))
{
pstrcpy(smb_cli->user_name,getenv("USER"));
cli_action = CLIENT_SVC;
}
- while ((opt = getopt(argc, argv,"s:B:O:M:S:i:N:d:l:hI:EB:U:L:t:m:W:T:D:c:")) != EOF)
+ while ((opt = getopt(argc, argv,"s:B:O:M:S:i:N:n:d:l:hI:EB:U:L:t:m:W:T:D:c:")) != EOF)
{
switch (opt)
{
break;
}
+ case 'n':
+ {
+ fstrcpy(global_myname, optarg);
+ break;
+ }
+
case 'N':
{
got_pass = True;
exit(1);
}
- DEBUG(3,("%s client started (version %s)\n",timestring(),VERSION));
-
- if (!get_myname(cli_info.myhostname, NULL))
- {
- fprintf(stderr, "Failed to get my hostname.\n");
- }
-
- fstrcpy(global_myname, cli_info.myhostname);
strupper(global_myname);
+ fstrcpy(cli_info.myhostname, global_myname);
+
+ DEBUG(3,("%s client started (version %s)\n",timestring(),VERSION));
if (!lp_load(servicesf,True, False, False))
{
return -1;
}
- ret = cli_write(&file->srv->cli, file->f->cli_fd, buf, ofs, count);
+ ret = cli_write(&file->srv->cli, file->f->cli_fd, 0, buf, ofs, count);
if (ret == -1) {
errno = smbw_errno(&file->srv->cli);