Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Tammo Jan Dijkema
dt_ctrl
Commits
f4af71f1
Commit
f4af71f1
authored
Jan 23, 2015
by
Jeroen Vreeken
Browse files
Fix tcp_connect code to not use connect() twice.
Add a little bit of logging.
parent
da65aa74
Changes
7
Hide whitespace changes
Inline
Side-by-side
common/command/command_list.c
View file @
f4af71f1
...
@@ -71,6 +71,13 @@ int main(int argc, char **argv)
...
@@ -71,6 +71,13 @@ int main(int argc, char **argv)
command_handle
(
command
,
&
fdrx
);
command_handle
(
command
,
&
fdrx
);
}
}
if
(
command_state_get
(
command
)
==
COMMAND_STATE_DISCONNECTED
)
{
printf
(
"Not connected.
\n
"
);
printf
(
"Usage: %s <host> <port>
\n
"
,
argv
[
0
]);
printf
(
"Typical ports: %d, %d
\n
"
,
CONSOLE_COMMAND_PORT
,
CTRL_COMMAND_PORT
);
}
return
0
;
return
0
;
}
}
common/log/log.c
View file @
f4af71f1
...
@@ -409,6 +409,12 @@ static void *log_client(void *arg)
...
@@ -409,6 +409,12 @@ static void *log_client(void *arg)
return
NULL
;
return
NULL
;
}
}
void
log_level_set
(
enum
log_type
console_level
,
enum
log_type
remote_level
)
{
log_level_console
=
console_level
;
log_level_remote
=
remote_level
;
}
int
log_client_start
(
char
*
host
,
int
port
,
enum
log_type
console_level
,
int
log_client_start
(
char
*
host
,
int
port
,
enum
log_type
console_level
,
enum
log_type
remote_level
,
char
*
name
)
enum
log_type
remote_level
,
char
*
name
)
{
{
...
...
common/log/log.h
View file @
f4af71f1
...
@@ -37,6 +37,8 @@ void log_server_flush(void);
...
@@ -37,6 +37,8 @@ void log_server_flush(void);
void
log_flush_stdout
(
void
);
void
log_flush_stdout
(
void
);
void
log_level_set
(
enum
log_type
console_level
,
enum
log_type
remote_level
);
int
log_client_start
(
char
*
host
,
int
port
,
enum
log_type
console_level
,
int
log_client_start
(
char
*
host
,
int
port
,
enum
log_type
console_level
,
enum
log_type
remote_level
,
char
*
name
);
enum
log_type
remote_level
,
char
*
name
);
...
...
common/trace/trace.c
View file @
f4af71f1
/*
/*
Trace support
Trace support
Copyright Jeroen Vreeken (
pe1rxq@amsat.org
), 2011
Copyright Jeroen Vreeken (
jeroen@vreeken.net
), 2011
, 2015
Copyright Stichting C.A. Muller Radioastronomiestation, 2011
Copyright Stichting C.A. Muller Radioastronomiestation, 2011
This program is free software: you can redistribute it and/or modify
This program is free software: you can redistribute it and/or modify
...
...
common/trace/trace_list.c
View file @
f4af71f1
/*
/*
Copyright Jeroen Vreeken (
pe1rxq@amsat.org
), 2007, 2013
Copyright Jeroen Vreeken (
jeroen@vreeken.net
), 2007, 2013
, 2015
Copyright Stichting C.A. Muller Radioastronomiestation, 2007
Copyright Stichting C.A. Muller Radioastronomiestation, 2007
This program is free software: you can redistribute it and/or modify
This program is free software: you can redistribute it and/or modify
...
@@ -26,6 +26,7 @@
...
@@ -26,6 +26,7 @@
#include <netinet/in.h>
#include <netinet/in.h>
#include <trace/trace.h>
#include <trace/trace.h>
#include <log/log.h>
#include <dt_port_numbers.h>
#include <dt_port_numbers.h>
static
char
*
host
=
"localhost"
;
static
char
*
host
=
"localhost"
;
...
@@ -50,6 +51,8 @@ int main(int argc, char **argv)
...
@@ -50,6 +51,8 @@ int main(int argc, char **argv)
{
{
struct
trace
*
trace
;
struct
trace
*
trace
;
log_level_set
(
LOG_T_DEBUG
,
LOG_T_DEBUG
);
if
(
argc
>
1
)
{
if
(
argc
>
1
)
{
host
=
argv
[
1
];
host
=
argv
[
1
];
}
}
...
@@ -62,6 +65,8 @@ int main(int argc, char **argv)
...
@@ -62,6 +65,8 @@ int main(int argc, char **argv)
trace
->
handler_interval
=
handler_interval
;
trace
->
handler_interval
=
handler_interval
;
trace
->
handler_list_entry
=
handler_list_entry
;
trace
->
handler_list_entry
=
handler_list_entry
;
log_flush_stdout
();
while
(
trace_state_get
(
trace
)
==
TRACE_STATE_CONNECTED
)
{
while
(
trace_state_get
(
trace
)
==
TRACE_STATE_CONNECTED
)
{
fd_set
fdrx
;
fd_set
fdrx
;
int
high
=
0
;
int
high
=
0
;
...
@@ -75,6 +80,9 @@ int main(int argc, char **argv)
...
@@ -75,6 +80,9 @@ int main(int argc, char **argv)
trace_handle
(
trace
,
&
fdrx
);
trace_handle
(
trace
,
&
fdrx
);
}
}
log_flush_stdout
();
if
(
trace_state_get
(
trace
)
==
TRACE_STATE_DISCONNECTED
)
{
if
(
trace_state_get
(
trace
)
==
TRACE_STATE_DISCONNECTED
)
{
printf
(
"Not connected.
\n
"
);
printf
(
"Not connected.
\n
"
);
printf
(
"Usage: %s <host> <port>
\n
"
,
argv
[
0
]);
printf
(
"Usage: %s <host> <port>
\n
"
,
argv
[
0
]);
...
...
common/trace/trace_tcp.c
View file @
f4af71f1
/*
/*
trace tcp connection handling
trace tcp connection handling
Copyright Jeroen Vreeken (jeroen@vreeken.net), 2013
Copyright Jeroen Vreeken (jeroen@vreeken.net), 2013
, 2015
This program is free software: you can redistribute it and/or modify
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
it under the terms of the GNU General Public License as published by
...
...
common/utils/tcp_connect.c
View file @
f4af71f1
/*
/*
tcp_connect.c
tcp_connect.c
Copyright Jeroen Vreeken (
pe1rxq@amsat.org
), 2007, 2008, 2011
Copyright Jeroen Vreeken (
jeroen@vreeken.net
), 2007, 2008, 2011
, 2015
Copyright Stichting C.A. Muller Radioastronomiestation, 2007, 2008, 2011
Copyright Stichting C.A. Muller Radioastronomiestation, 2007, 2008, 2011
This program is free software: you can redistribute it and/or modify
This program is free software: you can redistribute it and/or modify
...
@@ -71,25 +71,26 @@ int tcp_connect(char *host, int port)
...
@@ -71,25 +71,26 @@ int tcp_connect(char *host, int port)
fd_set
fdset_tx
,
fdset_err
;
fd_set
fdset_tx
,
fdset_err
;
struct
timeval
tv
;
struct
timeval
tv
;
FD_ZERO
(
&
fdset_tx
);
FD_ZERO
(
&
fdset_err
);
FD_SET
(
sock
,
&
fdset_tx
);
FD_SET
(
sock
,
&
fdset_err
);
tv
.
tv_sec
=
tcp_connect_timeout
;
tv
.
tv_sec
=
tcp_connect_timeout
;
tv
.
tv_usec
=
0
;
tv
.
tv_usec
=
0
;
if
(
connect
(
sock
,
entry
->
ai_addr
,
entry
->
ai_addrlen
))
{
if
(
connect
(
sock
,
entry
->
ai_addr
,
entry
->
ai_addrlen
))
{
while
(
int
ret
;
select
(
sock
+
1
,
NULL
,
&
fdset_tx
,
&
fdset_err
,
&
tv
)
<
0
do
{
errno
=
0
;
FD_ZERO
(
&
fdset_tx
);
FD_ZERO
(
&
fdset_err
);
FD_SET
(
sock
,
&
fdset_tx
);
FD_SET
(
sock
,
&
fdset_err
);
tv
.
tv_sec
=
tcp_connect_timeout
;
tv
.
tv_usec
=
0
;
ret
=
select
(
sock
+
1
,
NULL
,
&
fdset_tx
,
NULL
,
&
tv
);
}
while
(
ret
<
0
&&
&&
(
errno
==
EAGAIN
||
errno
==
EINTR
));
(
errno
==
EAGAIN
||
errno
==
EINTR
||
errno
==
EINPROGRESS
));
if
(
connect
(
sock
,
entry
->
ai_addr
,
entry
->
ai_addrlen
))
{
close
(
sock
);
sock
=
-
1
;
}
}
}
if
(
sock
>=
0
)
{
if
(
sock
>=
0
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment