Re: Help with putty code
- From: Pvt Ryan <ryan1_00@xxxxxxxxxxx>
- Date: Sat, 26 Jul 2008 11:28:51 -0700 (PDT)
On 26 Jul, 17:06, j...@xxxxxxxxxxx (Jens Thoms Toerring) wrote:
Pvt Ryan <ryan1...@xxxxxxxxxxx> wrote:
Background:
Due to the large number of bots attempting to ssh to my server, I
implemented portknocking (as the logs were just filled with crap).
So to access port 2222 for ssh I would first need to connect on port
3333 which opens port 2222 for 60secs.
(obv I just made those ports up)
I wanted to continue to use putty under windows to connect to my
server. However its a bit of hassle to connect manually to 1 port 1st
and then do the real connection.
The devs at putty have said they won't implement port knocking which
is fine, so i decided to build putty from source and add the port
knocking to my copy.
Problem:
I implemented it and it works, sort of.
Unfortunately (under windows) the 1st attempted connection (the knock)
times out (within 30secs) and in doing so kills my active putty
window.
That's a problem you will have to take up to a windows group
since it is nothing related to C but to networking under Windows.
The network code is independent of what I changed, My knock function
is basically an exact copy of his connect_to_host function, with all
the extras striped out. His connect_to_host function handles the error
(which is what I am assuming causes the terminal to quit) whereas in
my knock function I am trying to just drop/ignore that error.
Under linux due to the -Werror flag my build fails with the following:
--------------------------------------------------------------------
cc1: warnings being treated as errors
../ssh.c:2829: warning: function definition has qualified void return
type
I guess it's this line:
static const void knock(Ssh ssh, char *host, int port, char **realhost)
The function is defined to return void, i.e. nothing. Can you come
up with any idea what a 'constant nothing' is supposed to be? Just
throw out the 'const' and this warning should go awway.
../ssh.c: In function ‘knock’:
../ssh.c:2845: warning: statement with no effect
Again I can only guess, but it looks as if this line is the culprit:
ssh->cfg.addressfamily == ADDRTYPE_IPV4 ? " (IPv4)" :
(ssh->cfg.addressfamily == ADDRTYPE_IPV6 ? " (IPv6)" : "");
Here nothing really happens - there's no assignment or anything
with a side effect. All it results in is a pointer to a string
literal which isn't used. So this line has, as the error message
tells you, no effect. Throwing it out wouldn't change anything
about the behaviour of your program.
As I stated above I copied & pasted a lot of his connection code in
order to avoid rewriting/adding to his connection functions at an OS
level. Also his code handles proxies and I am not good enough to be
able to handle them myself. I don't know why that code does nothing in
my function and yet it does something in his, as I pass the same Ssh
struct as him.
Now if i edit the makefile and remove the -Werror flag and then run
make again it will build fine.
It times out after about 5min.
Unless it's due to the rather likely not correct line 2845. this
again is nothing related to C but a networking issue, this time
under Linux. A good place to ask would be one of the groups
comp.unix.programmer or comp.os.linux.development.apps.
The timeout I was talking about was the network timeout (which is to
be expected as the server silently drops the packets) however I can't
work out why the 1st connection is being handled, and passing the
error to the front end and causing the terminal to become inactive.
The const was a copy/paste mistake I hadn't noticed, thanks for
pointing it out. I'll have to reread line 2845 and see why it does
nothing.
The reason behind giving a diff was I figured that his whole current
svn tree is only 10Mb so it would be trivial to download it and also I
thought it would be more relevant for people to follow the whole code
due to a lot of the code being abstracted.
.
- Follow-Ups:
- Re: Help with putty code
- From: pete
- Re: Help with putty code
- From: Jens Thoms Toerring
- Re: Help with putty code
- References:
- Help with putty code
- From: Pvt Ryan
- Re: Help with putty code
- From: Jens Thoms Toerring
- Help with putty code
- Prev by Date: Re: A very interesting book
- Next by Date: Re: Type of a string literal
- Previous by thread: Re: Help with putty code
- Next by thread: Re: Help with putty code
- Index(es):
Relevant Pages
|