modified: chan_lcr.c
[lcr.git] / trace.c
diff --git a/trace.c b/trace.c
index 6223684..2f640a9 100644 (file)
--- a/trace.c
+++ b/trace.c
@@ -32,10 +32,10 @@ static char *spaces[11] = {
  * initializes a new trace
  * all values will be reset
  */
-void start_trace(int port, struct interface *interface, char *caller, char *dialing, int direction, int category, int serial, char *name)
+void _start_trace(const char *__file, int __line, int port, struct interface *interface, char *caller, char *dialing, int direction, int category, int serial, char *name)
 {
        if (trace.name[0])
-               PERROR("trace already started (name=%s)\n", trace.name);
+               PERROR("trace already started (name=%s) in file %s line %d\n", trace.name, __file, __line);
        memset(&trace, 0, sizeof(struct trace));
        trace.port = port;
        if (interface)
@@ -59,12 +59,12 @@ void start_trace(int port, struct interface *interface, char *caller, char *dial
  * if subelement is given, element will also contain a subelement
  * if multiple subelements belong to same element, name must be equal for all subelements
  */
-void add_trace(char *name, char *sub, const char *fmt, ...)
+void _add_trace(const char *__file, int __line, char *name, char *sub, const char *fmt, ...)
 {
        va_list args;
 
        if (!trace.name[0])
-               PERROR("trace not started\n");
+               PERROR("trace not started in file %s line %d\n", __file, __line);
        
        /* check for required name value */
        if (!name)
@@ -208,7 +208,7 @@ static char *print_trace(int detail, int port, char *interface, char *caller, ch
                SCAT(trace_string, "--");
        }
        if (trace.serial)
-               SPRINT(buffer, "(%d): %s", trace.serial, trace.name[0]?trace.name:"<unknown>");
+               SPRINT(buffer, "(%lu): %s", trace.serial, trace.name[0]?trace.name:"<unknown>");
        else
                SPRINT(buffer, ": %s", trace.name[0]?trace.name:"<unknown>");
        SCAT(trace_string, buffer);
@@ -217,6 +217,11 @@ static char *print_trace(int detail, int port, char *interface, char *caller, ch
        switch(detail)
        {
                case 1: /* brief */
+               if (trace.port)
+               {
+                       SPRINT(buffer, "  port %d", trace.port);
+                       SCAT(trace_string, buffer);
+               }
                i = 0;
                while(i < trace.elements)
                {
@@ -275,7 +280,7 @@ static char *print_trace(int detail, int port, char *interface, char *caller, ch
  * trace ends
  * this function will put the trace to sockets and logfile, if requested
  */
-void end_trace(void)
+void _end_trace(const char *__file, int __line)
 {
        char *string;
        FILE *fp;
@@ -283,7 +288,7 @@ void end_trace(void)
        struct admin_queue      *response, **responsep; /* response pointer */
 
        if (!trace.name[0])
-               PERROR("trace not started\n");
+               PERROR("trace not started in file %s line %d\n", __file, __line);
        
        if (options.deb || options.log[0])
        {
@@ -307,7 +312,7 @@ void end_trace(void)
        }
 
        /* process admin */
-       admin = admin_list;
+       admin = admin_first;
        while(admin)
        {
                if (admin->trace.detail)