Simplified select handling. Only one function ir_tcl_select_set has
[ir-tcl-moved-to-github.git] / queue.c
diff --git a/queue.c b/queue.c
index 9de4663..a0ac72d 100644 (file)
--- a/queue.c
+++ b/queue.c
@@ -6,7 +6,21 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: queue.c,v $
- * Revision 1.3  1995-08-04 11:32:40  adam
+ * Revision 1.7  1996-02-19 15:41:55  adam
+ * Better log messages.
+ * Minor improvement of connect method.
+ *
+ * Revision 1.6  1996/02/06  09:22:54  adam
+ * Ported ir-tcl to use beta releases of tcl7.5/tk4.1.
+ *
+ * Revision 1.5  1995/11/28  13:53:40  quinn
+ * Windows port.
+ *
+ * Revision 1.4  1995/10/17  12:18:59  adam
+ * Bug fix: when target connection closed, the connection was not
+ * properly reestablished.
+ *
+ * Revision 1.3  1995/08/04  11:32:40  adam
  * More work on output queue. Memory related routines moved
  * to mem.c
  *
@@ -32,7 +46,7 @@ int ir_tcl_send_APDU (Tcl_Interp *interp, IrTcl_Obj *p, Z_APDU *apdu,
 
     if (!z_APDU (p->odr_out, &apdu, 0))
     {
-        Tcl_AppendResult (interp, odr_errlist [odr_geterror (p->odr_out)],
+        Tcl_AppendResult (interp, odr_errmsg (odr_geterror (p->odr_out)),
                           NULL);
         odr_reset (p->odr_out);
         return TCL_ERROR;
@@ -53,12 +67,15 @@ int ir_tcl_send_APDU (Tcl_Interp *interp, IrTcl_Obj *p, Z_APDU *apdu,
     odr_reset (p->odr_out);
     if (p->state == IR_TCL_R_Idle)
     {
+        logf (LOG_DEBUG, "send_apdu. Sending %s", msg);
         if (ir_tcl_send_q (p, p->request_queue, msg) == TCL_ERROR)
         {
             sprintf (interp->result, "cs_put failed in %s", msg);
             return TCL_ERROR;
         } 
     }
+    else
+        logf (LOG_DEBUG, "send_apdu. Not idle (%s)", msg);
     return TCL_OK;
 }
 
@@ -72,13 +89,18 @@ int ir_tcl_send_q (IrTcl_Obj *p, IrTcl_Request *rp, const char *msg)
         return TCL_ERROR;
     else if (r == 1)
     {
+#if IRTCL_GENERIC_FILES
+        ir_select_add_write (p->csFile, p);
+#else
         ir_select_add_write (cs_fileno (p->cs_link), p);
+#endif
         logf (LOG_DEBUG, "Send part of %s", msg);
         p->state = IR_TCL_R_Writing;
     }
     else
     {
-        logf (LOG_DEBUG, "Send %s (%d bytes)", msg, rp->len_out);
+        logf (LOG_DEBUG, "Send %s (%d bytes) fd=%d", msg, rp->len_out,
+              cs_fileno(p->cs_link));
         p->state = IR_TCL_R_Waiting;
         free (rp->buf_out);
         rp->buf_out = NULL;