diff options
author | Linus Nordberg <linus@nordu.net> | 2011-02-02 15:19:40 +0100 |
---|---|---|
committer | Linus Nordberg <linus@nordu.net> | 2011-02-02 15:19:40 +0100 |
commit | a47e09223afa714e647ad71eb1237114959bfb35 (patch) | |
tree | 480792aa19626f999a9c4ec4562b101d7faa5490 | |
parent | b98c73463183af1806ab61cdb6e98259ba250e31 (diff) |
Pick usage of struct request in example code at run time.
-rw-r--r-- | lib/examples/Makefile.am | 2 | ||||
-rw-r--r-- | lib/examples/client-blocking.c | 50 |
2 files changed, 29 insertions, 23 deletions
diff --git a/lib/examples/Makefile.am b/lib/examples/Makefile.am index 88522b2..c869070 100644 --- a/lib/examples/Makefile.am +++ b/lib/examples/Makefile.am @@ -5,4 +5,4 @@ INCLUDES = -I$(top_srcdir)/include bin_PROGRAMS = client client_SOURCES = client-blocking.c client_LDADD = ../libradsec.la -client_CFLAGS = $(CFLAGS) -DUSE_CONFIG_FILE -DUSE_REQUEST_OBJECT +client_CFLAGS = $(CFLAGS) -DUSE_CONFIG_FILE diff --git a/lib/examples/client-blocking.c b/lib/examples/client-blocking.c index 6467055..21d40d8 100644 --- a/lib/examples/client-blocking.c +++ b/lib/examples/client-blocking.c @@ -7,16 +7,14 @@ #include <event2/event.h> #include <freeradius/libradius.h> #include <radsec/radsec.h> -#if defined(USE_REQUEST_OBJECT) #include <radsec/request.h> -#endif #define SECRET "sikrit" #define USER_NAME "molgan" #define USER_PW "password" struct rs_error * -blocking_client (const char *av1, const char *av2) +blocking_client (const char *av1, const char *av2, int use_request_object_flag) { struct rs_context *h; struct rs_connection *conn; @@ -51,29 +49,30 @@ blocking_client (const char *av1, const char *av2) if (rs_packet_create_auth_request (conn, &req, USER_NAME, USER_PW)) return rs_err_conn_pop (conn); -#if !defined(USE_REQUEST_OBJECT) - if (rs_packet_send (req, NULL)) + if (use_request_object_flag) { - rs_packet_destroy (req); - return rs_err_conn_pop (conn); + struct rs_request *request; + + if (rs_request_create (conn, &request)) + return rs_err_conn_pop (conn); + if (rs_request_send (request, req, &resp)) + return rs_err_conn_pop (conn); + rs_request_destroy (request); } - if (rs_conn_receive_packet (conn, req, &resp)) + else { + if (rs_packet_send (req, NULL)) + { + rs_packet_destroy (req); + return rs_err_conn_pop (conn); + } + if (rs_conn_receive_packet (conn, req, &resp)) + { + rs_packet_destroy (req); + return rs_err_conn_pop (conn); + } rs_packet_destroy (req); - return rs_err_conn_pop (conn); } - rs_packet_destroy (req); -#else - { - struct rs_request *request; - - if (rs_request_create (conn, &request)) - return rs_err_conn_pop (conn); - if (rs_request_send (request, req, &resp)) - return rs_err_conn_pop (conn); - rs_request_destroy (request); - } -#endif /* !defined(USE_REQUEST_OBJECT) */ if (resp) { @@ -94,9 +93,16 @@ blocking_client (const char *av1, const char *av2) int main (int argc, char *argv[]) { + int use_request_object_flag = 0; struct rs_error *err; - err = blocking_client (argv[1], argv[2]); + if (argc > 1 && argv[1] && argv[1][0] == '-' && argv[1][1] == 'r') + { + use_request_object_flag = 1; + argc--; + argv++; + } + err = blocking_client (argv[1], argv[2], use_request_object_flag); if (err) { fprintf (stderr, "%s\n", rs_err_msg (err, 0)); |