projects
/
routeros-api.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
src/{Makefile.am,main.c}: Use the debugging as determined by the configure script.
[routeros-api.git]
/
src
/
main.c
diff --git
a/src/main.c
b/src/main.c
index
53e96c2
..
5981dbf
100644
(file)
--- a/
src/main.c
+++ b/
src/main.c
@@
-1,5
+1,5
@@
/**
/**
- * lib
mikrotik
- src/main.c
+ * lib
routeros
- src/main.c
* Copyright (C) 2009 Florian octo Forster
*
* This program is free software; you can redistribute it and/or modify it
* Copyright (C) 2009 Florian octo Forster
*
* This program is free software; you can redistribute it and/or modify it
@@
-27,6
+27,8
@@
# define _POSIX_C_SOURCE 200112L
#endif
# define _POSIX_C_SOURCE 200112L
#endif
+#include <config.h>
+
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
@@
-44,7
+46,7
@@
#include "routeros_api.h"
#include "routeros_api.h"
-#if
1
+#if
WITH_DEBUG
# define ros_debug(...) fprintf (stdout, __VA_ARGS__)
#else
# define ros_debug(...) /**/
# define ros_debug(...) fprintf (stdout, __VA_ARGS__)
#else
# define ros_debug(...) /**/
@@
-165,6
+167,7
@@
static int reply_add_keyval (ros_reply_t *r, const char *key, /* {{{ */
return (0);
} /* }}} int reply_add_keyval */
return (0);
} /* }}} int reply_add_keyval */
+#if WITH_DEBUG
static void reply_dump (const ros_reply_t *r) /* {{{ */
{
if (r == NULL)
static void reply_dump (const ros_reply_t *r) /* {{{ */
{
if (r == NULL)
@@
-188,6
+191,9
@@
static void reply_dump (const ros_reply_t *r) /* {{{ */
reply_dump (r->next);
} /* }}} void reply_dump */
reply_dump (r->next);
} /* }}} void reply_dump */
+#else
+# define reply_dump(foo) /**/
+#endif
static void reply_free (ros_reply_t *r) /* {{{ */
{
static void reply_free (ros_reply_t *r) /* {{{ */
{
@@
-635,10
+641,15
@@
static int login2_handler (ros_connection_t *c, const ros_reply_t *r, /* {{{ */
if (r == NULL)
return (EINVAL);
if (r == NULL)
return (EINVAL);
- printf ("login2_handler has been called.\n");
reply_dump (r);
reply_dump (r);
- if (strcmp (r->status, "done") != 0)
+ if (strcmp (r->status, "trap") == 0)
+ {
+ ros_debug ("login2_handler: Logging in failed: %s.\n",
+ ros_reply_param_val_by_key (r, "message"));
+ return (EACCES);
+ }
+ else if (strcmp (r->status, "done") != 0)
{
ros_debug ("login2_handler: Unexpected status: %s.\n", r->status);
return (EPROTO);
{
ros_debug ("login2_handler: Unexpected status: %s.\n", r->status);
return (EPROTO);
@@
-721,8
+732,6
@@
static int login_handler (ros_connection_t *c, const ros_reply_t *r, /* {{{ */
* =ret=ebddd18303a54111e2dea05a92ab46b4
* -- >8 --
*/
* =ret=ebddd18303a54111e2dea05a92ab46b4
* -- >8 --
*/
-
- printf ("login_handler has been called.\n");
reply_dump (r);
if (strcmp (r->status, "done") != 0)
reply_dump (r);
if (strcmp (r->status, "done") != 0)
@@
-797,6
+806,13
@@
ros_connection_t *ros_connect (const char *node, const char *service, /* {{{ */
status = ros_query (c, "/login", /* args num = */ 0, /* args = */ NULL,
login_handler, &user_data);
status = ros_query (c, "/login", /* args num = */ 0, /* args = */ NULL,
login_handler, &user_data);
+ if (status != 0)
+ {
+ ros_disconnect (c);
+ errno = status;
+ return (NULL);
+ }
+
return (c);
} /* }}} ros_connection_t *ros_connect */
return (c);
} /* }}} ros_connection_t *ros_connect */