From: Colin McCabe <cmcc...@cobalt.club.cc.cmu.edu>

Signed-off-by: Colin McCabe <cmcc...@alumni.cmu.edu>
---
 include/cldc.h |    4 +--
 lib/cldc.c     |   98 +++++++++++++++++++++++---------------------------------
 tools/cldcli.c |    2 +-
 3 files changed, 42 insertions(+), 62 deletions(-)

diff --git a/include/cldc.h b/include/cldc.h
index 3f0deb5..70062cf 100644
--- a/include/cldc.h
+++ b/include/cldc.h
@@ -85,10 +85,8 @@ struct cldc_ops {
 struct cldc_session {
        uint8_t         sid[CLD_SID_SZ];        /* client id */
 
-       bool            verbose;
-
        const struct cldc_ops *ops;
-       void            (*act_log)(int prio, const char *fmt, ...);
+       struct          cld_log log;
        void            *private;
 
        uint8_t         addr[64];               /* server address */
diff --git a/lib/cldc.c b/lib/cldc.c
index 0ab4f19..38bed8f 100644
--- a/lib/cldc.c
+++ b/lib/cldc.c
@@ -111,7 +111,7 @@ static int ack_seqid(struct cldc_session *sess, uint64_t 
seqid_le)
        memcpy(resp, &def_msg_ack, sizeof(*resp));
 
        if (!authsign(sess, pkt, pkt_len)) {
-               sess->act_log(LOG_INFO, "authsign failed 2");
+               CLD_INFO(&sess->log, "authsign failed 2");
                return -1;
        }
 
@@ -135,12 +135,10 @@ static int cldc_rx_generic(struct cldc_session *sess,
        while (tmp) {
                req = tmp->data;
 
-               if (sess->verbose)
-                       sess->act_log(LOG_DEBUG,
-                                     "rx_gen: comparing req->xid (%llu) "
-                                     "with resp->xid_in (%llu)",
-                               (unsigned long long) le64_to_cpu(req->xid),
-                               (unsigned long long) le64_to_cpu(resp->xid_in));
+               CLD_DEBUG(&sess->log, "rx_gen: comparing req->xid (%llu) "
+                       "with resp->xid_in (%llu)",
+                       (unsigned long long) le64_to_cpu(req->xid),
+                       (unsigned long long) le64_to_cpu(resp->xid_in));
 
                if (req->xid == resp->xid_in)
                        break;
@@ -150,12 +148,9 @@ static int cldc_rx_generic(struct cldc_session *sess,
                return -1005;
 
        if (req->done) {
-               if (sess->verbose)
-                       sess->act_log(LOG_DEBUG, "rx_gen: re-acking");
+               CLD_DEBUG(&sess->log, "rx_gen: re-acking");
        } else {
-               if (sess->verbose)
-                       sess->act_log(LOG_DEBUG,
-                                     "rx_gen: issuing completion, acking");
+               CLD_DEBUG(&sess->log, "rx_gen: issuing completion, acking");
 
                req->done = true;
 
@@ -181,9 +176,8 @@ static int cldc_rx_ack_frag(struct cldc_session *sess,
        if (buflen < sizeof(*ack_msg))
                return -1008;
 
-       if (sess->verbose)
-               sess->act_log(LOG_DEBUG, "ack-frag: seqid %llu, want to ack",
-                             ack_msg->seqid);
+       CLD_DEBUG(&sess->log, "ack-frag: seqid %llu, want to ack",
+                       ack_msg->seqid);
 
        tmp = sess->out_msg;
        while (tmp) {
@@ -201,10 +195,8 @@ static int cldc_rx_ack_frag(struct cldc_session *sess,
                        if (pi->pkt.seqid != ack_msg->seqid)
                                continue;
 
-                       if (sess->verbose)
-                               sess->act_log(LOG_DEBUG,
-                                             "ack-frag: seqid %llu, expiring",
-                                             ack_msg->seqid);
+                       CLD_DEBUG(&sess->log, "ack-frag: seqid %llu, expiring",
+                               ack_msg->seqid);
 
                        req->pkt_info[i] = NULL;
                        free(pi);
@@ -248,7 +240,7 @@ static int cldc_rx_not_master(struct cldc_session *sess,
                              const void *msgbuf,
                              size_t buflen)
 {
-       sess->act_log(LOG_INFO, "FIXME: not-master message received");
+       CLD_DEBUG(&sess->log, "FIXME: not-master message received");
        return -1055;   /* FIXME */
 }
 
@@ -315,8 +307,8 @@ static bool authcheck(struct cldc_session *sess, const 
struct cld_packet *pkt,
             md, &md_len);
 
        if (md_len != SHA_DIGEST_LENGTH)
-               sess->act_log(LOG_INFO,
-                             "authsign BUG: md_len != SHA_DIGEST_LENGTH");
+               CLD_INFO(&sess->log,
+                       "authsign BUG: md_len != SHA_DIGEST_LENGTH");
 
        if (memcmp(buf + buflen - SHA_DIGEST_LENGTH, md, SHA_DIGEST_LENGTH))
                return false;
@@ -340,8 +332,8 @@ static bool authsign(struct cldc_session *sess, struct 
cld_packet *pkt,
             md, &md_len);
 
        if (md_len != SHA_DIGEST_LENGTH)
-               sess->act_log(LOG_INFO,
-                             "authsign BUG: md_len != SHA_DIGEST_LENGTH");
+               CLD_INFO(&sess->log,
+                       "authsign BUG: md_len != SHA_DIGEST_LENGTH");
 
        memcpy(buf + (buflen - SHA_DIGEST_LENGTH), md, SHA_DIGEST_LENGTH);
 
@@ -380,8 +372,7 @@ static int cldc_receive_msg(struct cldc_session *sess,
        size_t msglen = sess->msg_buf_len;
 
        if (memcmp(msg->magic, CLD_MSG_MAGIC, sizeof(msg->magic))) {
-               if (sess->verbose)
-                       sess->act_log(LOG_DEBUG, "receive_pkt: bad msg magic");
+               CLD_DEBUG(&sess->log, "receive_pkt: bad msg magic");
                return -EPROTO;
        }
 
@@ -433,8 +424,7 @@ int cldc_receive_pkt(struct cldc_session *sess,
        current_time = tv.tv_sec;
 
        if (pkt_len < (sizeof(*pkt) + SHA_DIGEST_LENGTH)) {
-               if (sess->verbose)
-                       sess->act_log(LOG_DEBUG, "receive_pkt: msg too short");
+               CLD_DEBUG(&sess->log, "receive_pkt: msg too short");
                return -EPROTO;
        }
 
@@ -448,11 +438,11 @@ int cldc_receive_pkt(struct cldc_session *sess,
        no_seqid = first_frag && ((msg->op == cmo_not_master) ||
                                  (msg->op == cmo_ack_frag));
 
-       if (sess->verbose) {
+       if (sess->log.verbose) {
                if (have_get) {
                        struct cld_msg_get_resp *dp;
                        dp = (struct cld_msg_get_resp *) msg;
-                       sess->act_log(LOG_DEBUG, "receive_pkt(len %u, op %s"
+                       CLD_DEBUG(&sess->log, "receive_pkt(len %u, op %s"
                                      ", seqid %llu, user %s, size %u)",
                                (unsigned int) pkt_len,
                                opstr(msg->op),
@@ -462,7 +452,7 @@ int cldc_receive_pkt(struct cldc_session *sess,
                } else if (have_new_sess) {
                        struct cld_msg_resp *dp;
                        dp = (struct cld_msg_resp *) msg;
-                       sess->act_log(LOG_DEBUG, "receive_pkt(len %u, op %s"
+                       CLD_DEBUG(&sess->log, "receive_pkt(len %u, op %s"
                                      ", seqid %llu, user %s, xid_in %llu)",
                                (unsigned int) pkt_len,
                                opstr(msg->op),
@@ -470,8 +460,8 @@ int cldc_receive_pkt(struct cldc_session *sess,
                                pkt->user,
                                (unsigned long long) le64_to_cpu(dp->xid_in));
                } else {
-                       sess->act_log(LOG_DEBUG, "receive_pkt(len %u, "
-                                     "flags %s%s, op %s, seqid %llu, user %s)",
+                       CLD_DEBUG(&sess->log, "receive_pkt(len %u, "
+                               "flags %s%s, op %s, seqid %llu, user %s)",
                                (unsigned int) pkt_len,
                                first_frag ? "F" : "",
                                last_frag ? "L" : "",
@@ -482,24 +472,20 @@ int cldc_receive_pkt(struct cldc_session *sess,
        }
 
        if (memcmp(pkt->magic, CLD_PKT_MAGIC, sizeof(pkt->magic))) {
-               if (sess->verbose)
-                       sess->act_log(LOG_DEBUG, "receive_pkt: bad pkt magic");
+               CLD_DEBUG(&sess->log, "receive_pkt: bad pkt magic");
                return -EPROTO;
        }
 
        /* check HMAC signature */
        if (!authcheck(sess, pkt, pkt_len)) {
-               if (sess->verbose)
-                       sess->act_log(LOG_DEBUG, "receive_pkt: invalid auth");
+               CLD_DEBUG(&sess->log, "receive_pkt: invalid auth");
                return -EACCES;
        }
 
        /* verify stored server addr matches pkt addr */
        if (((sess->addr_len != net_addrlen) ||
            memcmp(sess->addr, net_addr, net_addrlen))) {
-               if (sess->verbose)
-                       sess->act_log(LOG_DEBUG,
-                                     "receive_pkt: server address mismatch");
+               CLD_DEBUG(&sess->log, "receive_pkt: server address mismatch");
                return -EBADE;
        }
 
@@ -511,8 +497,7 @@ int cldc_receive_pkt(struct cldc_session *sess,
                sess->msg_buf_len = 0;
 
        if ((sess->msg_buf_len + msglen) > CLD_MAX_MSG_SZ) {
-               if (sess->verbose)
-                       sess->act_log(LOG_DEBUG, "receive_pkt: bad pkt length");
+               CLD_DEBUG(&sess->log, "receive_pkt: bad pkt length");
                return -EPROTO;
        }
 
@@ -526,8 +511,7 @@ int cldc_receive_pkt(struct cldc_session *sess,
                sess->next_seqid_in_tr =
                        sess->next_seqid_in - CLDC_MSG_REMEMBER;
 
-               if (sess->verbose)
-                       sess->act_log(LOG_DEBUG, "receive_pkt: "
+               CLD_DEBUG(&sess->log, "receive_pkt: "
                                      "setting next_seqid_in to %llu",
                                      (unsigned long long) seqid);
        } else if (!no_seqid) {
@@ -537,9 +521,7 @@ int cldc_receive_pkt(struct cldc_session *sess,
                                           sess->next_seqid_in))
                                return ack_seqid(sess, pkt->seqid);
 
-                       if (sess->verbose)
-                               sess->act_log(LOG_DEBUG,
-                                             "receive_pkt: bad seqid %llu",
+                       CLD_DEBUG(&sess->log, "receive_pkt: bad seqid %llu",
                                              (unsigned long long) seqid);
                        return -EBADSLT;
                }
@@ -664,7 +646,7 @@ static void sess_expire(struct cldc_session *sess)
 static int sess_send_pkt(struct cldc_session *sess,
                         const struct cld_packet *pkt, size_t pkt_len)
 {
-       if (sess->verbose) {
+       if (sess->log.verbose) {
                uint32_t flags = le32_to_cpu(pkt->flags);
                bool first = (flags & CPF_FIRST);
                bool last = (flags & CPF_LAST);
@@ -677,14 +659,14 @@ static int sess_send_pkt(struct cldc_session *sess,
                        op = hdr->op;
                }
 
-               sess->act_log(LOG_DEBUG,
-                             "send_pkt(len %zu, flags %s%s, "
-                             "op %s, seqid %llu)",
-                             pkt_len,
-                             first ? "F" : "",
-                             last ? "L" : "",
-                             first ? opstr(op) : "n/a",
-                             le64_to_cpu(pkt->seqid));
+               CLD_DEBUG(&sess->log,
+                       "send_pkt(len %zu, flags %s%s, "
+                       "op %s, seqid %llu)",
+                       pkt_len,
+                       first ? "F" : "",
+                       last ? "L" : "",
+                       first ? opstr(op) : "n/a",
+                       le64_to_cpu(pkt->seqid));
        }
 
        return sess->ops->pkt_send(sess->private,
@@ -876,12 +858,12 @@ int cldc_new_sess(const struct cldc_ops *ops,
                return -ENOMEM;
 
 #if 0
-       sess->verbose = true;
+       sess->log.verbose = true;
 #endif
 
        sess->private = private;
        sess->ops = ops;
-       sess->act_log = ops->errlog ? ops->errlog : cldc_errlog;
+       sess->log.func = ops->errlog ? ops->errlog : cldc_errlog;
        sess->fh = g_array_sized_new(FALSE, TRUE, sizeof(struct cldc_fh), 16);
        strcpy(sess->user, user);
        strcpy(sess->secret_key, secret_key);
diff --git a/tools/cldcli.c b/tools/cldcli.c
index 60ab301..23cba99 100644
--- a/tools/cldcli.c
+++ b/tools/cldcli.c
@@ -823,7 +823,7 @@ static gpointer cld_thread(gpointer dummy)
                return NULL;
        }
 
-       thr_udp->sess->verbose = cldcli_verbose;
+       thr_udp->sess->log.verbose = cldcli_verbose;
 
        pfd[0].fd = thr_udp->fd;
        pfd[0].events = POLLIN;
-- 
1.6.2.5

--
To unsubscribe from this list: send the line "unsubscribe hail-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to