|
Hello everybody!
I've been working for some hours in a project of a GUI app that runs a console app (ssh) in background. Well, I've been using many examples of code from here (codeproject) and from the internet, but I had aways stoped at the same error. Maybe someone can give me some help... here is what happens:
I create the pipes and begin the execution of the program... everything goes fine, the ssh program ask for the password, and then I use WriteFile to send it the password. >Crash!<
It continues the execution and do not even try to validate the password
I'll put some code here:
if(!CreatePipe(&hChildStdoutRd, &hChildStdoutWr, &secattr, 0))
AfxMessageBox("Error in pipe Out");
SetHandleInformation(hChildStdoutRd, HANDLE_FLAG_INHERIT, 0);
if(!CreatePipe(&hChildStdinRd, &hChildStdinWr, &secattr, 0))
AfxMessageBox("Error in pipe In");
SetHandleInformation(hChildStdinWr, HANDLE_FLAG_INHERIT, 0);
STARTUPINFO sInfo;
ZeroMemory(&sInfo,sizeof(sInfo));
PROCESS_INFORMATION pInfo;
ZeroMemory(&pInfo,sizeof(pInfo));
sInfo.cb=sizeof(sInfo);
sInfo.dwFlags |= STARTF_USESTDHANDLES;
sInfo.hStdInput = cssh->hChildStdinRd;
sInfo.hStdOutput = cssh->hChildStdoutWr;
sInfo.hStdError = cssh->hChildStdoutWr;
CloseHandle(csftp->hChildStdoutWr);
for( ;; ) {
if(!ReadFile(csftp->hChildStdoutRd, buf, 100, &dwRead, NULL) || dwRead == 0)
break;
buf[dwRead] = '\0';
strAux = buf;
cssh->ShowText(strAux);
}
strcpy(strPass, szBuf);
if(!WriteFile(hChildStdinWr, szBuf, strPass.GetLength() ,&dwWritten, NULL))
AfxMessageBox("Error in hChildStdinWr");
if(!CloseHandle(hChildStdinWr))
AfxMessageBox("Error in hChildStdinWr");
After execute the code above, the ssh app runs all the authentication with failure
<br />
user@host's password: <br />
user@host's password: <br />
user@host's password: <br />
user@host's password: <br />
user@host's password: <br />
Using username "user".<br />
Access denied<br />
Access denied<br />
Access denied<br />
Access denied<br />
Access denied<br />
Fatal: Server sent disconnect message<br />
type 2 (SSH_DISCONNECT_PROTOCOL_ERROR):<br />
"Too many authentication failures for user"<br />
Any help, is welcome
cheers!
-- modified at 9:13 Tuesday 11th April, 2006
|
|
|
|
|
|
Hi David, thanks for your quick reply.
Yes, I read those articles. But I still have problems to 'adapt' to a GUI app... they all implement console applications.
thanks anyway
-- modified at 9:23 Tuesday 11th April, 2006
|
|
|
|
|
Hi Dadiv, All.
I found the problem.
if(!CloseHandle(hChildStdinWr))
AfxMessageBox("Erro ao fechar o handle hChildStdinWr");
This handle, must not be close.
Thanks all for the atention,
Regards!
|
|
|
|
|
1)upload ur code somewhere, someone may download and test it for u.
2)u do need to study a sample carefully.
at least, i don't think code like this meaningful:
sInfo.hStdInput = cssh->hChildStdinRd;
before u call
CreatePipe() and CreateProcess()
A special image tool for C++ programmers, don't miss it!
The world unique Software Label Maker is here for you and me ...
A nice hyper tool for optimizing your MS html-help contents.
|
|
|
|
|
Hai,
How can we retrieve the IPAddress from a DNS Site Name. How can we fetch the information regarding a particular site using its IP Address. So Please give a reply for me.
Jeeva
|
|
|
|
|
Jeeva Mary Varghese wrote: How can we retrieve the IPAddress from a DNS Site Name.
Use gethostbyname() .
Jeeva Mary Varghese wrote: How can we fetch the information regarding a particular site using its IP Address.
Information such as?
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
|
Does somebody still has Microsoft Visual C++ 1.5 Professional?
|
|
|
|
|
Yes, I do (have 1.52c).
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
Can you please send me a copy?
|
|
|
|
|
mwhahahah, nice try.
even if you did get a copy (which is not legal), i doublt you could do something powerful since the standard is far from this implementation now...
|
|
|
|
|
I don't need something powerfull.
The problem is that that i need it to program an old barecode scaner, and it must be at most MV C++ 1.5 (16 bits??)
|
|
|
|
|
Why would I want to do that? It would be illegal.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
Because Microsoft doesn't has it anymore???
The firm where i work it is member of Microsoft Partnership Program (about the license) , but thy only have on their site M V C++ 1.52 (not professional)
|
|
|
|
|
Daniel Zaharia wrote:
Because Microsoft doesn't has it anymore???
True, it has not been available for quite some time now. You might could get it from pricewatch.com[^] or the like.
Daniel Zaharia wrote: but thy only have on their site M V C++ 1.52
So what is the difference between v1.5 and v1.52?
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
The difference must be between MV C++1.5 and MV C++ 1.5 Professional.
I the first does not support development of DOS applications
|
|
|
|
|
Are you needing to modify an existing project, or create a new one? If the latter, could you use VC++ v6?
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
I need to compile a file. But it must be older that VC++ 1.5 (it must be on 16 bits)
|
|
|
|
|
Daniel Zaharia wrote: But it must be older that VC++ 1.5 (it must be on 16 bits)
Which i think takes you back to v1.0.
Are you needing to modify an existing project, or create a new one?
What is the target OS?
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
DR DOS (not MS DOS!)
It is about an barecode scanner from Symbol. They have their own operating system. They provide some examples .C and .exe. I need to modify a bit the sample file and compile it to .exe. My .exe does not work.(even if i copile exactly the same file that generated their exe). Of course, customer support is off.
|
|
|
|
|
and their exe works ? The problem could be somewhere else not in the compiler
rrrado
|
|
|
|
|
|
Write the software using assembler... then you don't have any problems
Don't try it, just do it!
|
|
|
|
|
we use MVC 1.52 to compile DOS 6.22 applications all the time here at work...and have been for almost 10 years...as far as I know 1.52 is a complete package...I don't recall separate Standard/Pro versions.
Steve
|
|
|
|