RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 29-May-2017 19:27:37 Branch: rpm-5_4 Handle: 2017052917273700 Modified files: (Branch: rpm-5_4) rpm/rpmio msqio.c Log: - msqio: haul out a load of trash. Summary: Revision Changes Path 1.1.2.21 +18 -281 rpm/rpmio/msqio.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/rpmio/msqio.c ============================================================================ $ cvs diff -u -r1.1.2.20 -r1.1.2.21 msqio.c --- rpm/rpmio/msqio.c 29 May 2017 16:21:00 -0000 1.1.2.20 +++ rpm/rpmio/msqio.c 29 May 2017 17:27:37 -0000 1.1.2.21 @@ -67,269 +67,6 @@ #define MSQ_MSGSIZE BUFSIZ /* =============================================================== */ -#if defined(WITH_MQ) -static -mqd_t Mq_open(const char *name, int oflag, mode_t mode, - struct mq_attr *attr) -{ - rpmmsq msq = NULL; - mqd_t mqdes = mq_open(name, oflag, mode, attr); -SPEW("<--\t %s(%s,0x%x,0%o,%p) qid %d\n", __FUNCTION__, name, oflag, mode, attr, mqdes); - return mqdes; -} - -static -int Mq_getattr(mqd_t mqdes, struct mq_attr *attr) -{ - rpmmsq msq = NULL; - int rc = mq_getattr(mqdes, attr); -SPEW("<--\t %s(0x%x,%p) rc %d\n", __FUNCTION__, mqdes, attr, rc); - return rc; -} - -static -int Mq_setattr(mqd_t mqdes, struct mq_attr *newattr, struct mq_attr *oldattr) -{ - rpmmsq msq = NULL; - int rc = mq_setattr(mqdes, newattr, oldattr); -SPEW("<--\t %s(0x%x,%p,%p) rc %d\n", __FUNCTION__, mqdes, newattr, oldattr, rc); - return rc; -} - -static -int Mq_notify(mqd_t mqdes, const struct sigevent *sevp) -{ - rpmmsq msq = NULL; - int rc = mq_notify(mqdes, sevp); -SPEW("<--\t %s(0x%x,%p) rc %d\n", __FUNCTION__, mqdes, sevp, rc); - return rc; -} - -static -int Mq_send(mqd_t mqdes, const char *msg_ptr, - size_t msg_len, unsigned int msg_prio) -{ - rpmmsq msq = NULL; - int ncmax = 32; - int nc = 0; - const char * buf = msg_ptr; - size_t count = msg_len; - unsigned int prio = msg_prio; - int rc; - - rc = mq_send(mqdes, msg_ptr, msg_len, msg_prio); - if (rc == 0) { - /* Ensure printable. */ - for (nc = 0; nc < ncmax; nc++) { - if (nc < (int)count && isprint(buf[nc])) - continue; - break; - } - } -SPEW("<--\t %s(0x%x,%p[%lu],%u) rc %d\t\t\t\"%.*s\"\n", __FUNCTION__, mqdes, buf, (unsigned long)count, prio, rc, nc, buf); - return rc; -} - -static -int Mq_timedsend(mqd_t mqdes, const char *msg_ptr, - size_t msg_len, unsigned int msg_prio, - const struct timespec *abs_timeout) -{ - rpmmsq msq = NULL; - int ncmax = 32; - int nc = 0; - const char * buf = msg_ptr; - size_t count = msg_len; - unsigned int prio = msg_prio; - int rc; - - rc = mq_timedsend(mqdes, msg_ptr, msg_len, msg_prio, abs_timeout); - if (rc == 0) { - /* Ensure printable. */ - for (nc = 0; nc < ncmax; nc++) { - if (nc < (int)count && isprint(buf[nc])) - continue; - break; - } - } -SPEW("<--\t %s(0x%x,%p[%lu],%u,...) rc %d\t\t\t\"%.*s\"\n", __FUNCTION__, mqdes, buf, (unsigned long)count, prio, rc, nc, buf); - return rc; -} - - -static -ssize_t Mq_receive(mqd_t mqdes, char *msg_ptr, - size_t msg_len, unsigned int *msg_prio) -{ - rpmmsq msq = NULL; - int ncmax = 32; - int nc = 0; - char * buf = msg_ptr; - size_t count = msg_len; - unsigned int prio = *msg_prio; - ssize_t rc; - - rc = mq_receive(mqdes, msg_ptr, msg_len, msg_prio); - if (rc >= 0) { - /* Ensure printable. */ - for (nc = 0; nc < ncmax; nc++) { - if (nc < rc && isprint(buf[nc])) - continue; - break; - } - } -SPEW("<--\t %s(0x%x,%p[%lu],...) rc %ld prio %u\t\"%.*s\"\n", __FUNCTION__, mqdes, buf, (unsigned long)count, rc, prio, nc, buf); - return rc; -} - -static -ssize_t Mq_timedreceive(mqd_t mqdes, char *msg_ptr, - size_t msg_len, unsigned int *msg_prio, - const struct timespec *abs_timeout) -{ - rpmmsq msq = NULL; - int ncmax = 32; - int nc = 0; - char * buf = msg_ptr; - size_t count = msg_len; - unsigned int prio = *msg_prio; - ssize_t rc; - - rc = mq_timedreceive(mqdes, msg_ptr, msg_len, msg_prio, abs_timeout); - if (rc >= 0) { - /* Ensure printable. */ - for (nc = 0; nc < ncmax; nc++) { - if (nc < rc && isprint(buf[nc])) - continue; - break; - } - } -SPEW("<--\t %s(0x%x,%p[%lu],...) rc %ld prio %u\t\"%.*s\"\n", __FUNCTION__, mqdes, buf, (unsigned long)count, rc, prio, nc, buf); - return rc; -} - -static -int Mq_close(mqd_t mqdes) -{ - rpmmsq msq = NULL; - int rc = mq_close(mqdes); -SPEW("<--\t %s(0x%x) rc %d\n", __FUNCTION__, mqdes, rc); - return rc; -} - -static -int Mq_unlink(const char *name) -{ - rpmmsq msq = NULL; - int rc = mq_unlink(name); -SPEW("<--\t %s(%s) rc %d\n", __FUNCTION__, name, rc); - return rc; -} - -#endif /* WITH_MQ */ - -/* =============================================================== */ -#if defined(WITH_MSQ) -static -int Msgget(key_t key, int msgflg) -{ - rpmmsq msq = NULL; - int rc = msgget(key, msgflg); -SPEW("<--\t %s(0x%x,0%o) rc %d\n", __FUNCTION__, key, msgflg, rc); - return rc; -} - -static -ssize_t Msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg) -{ - rpmmsq msq = NULL; - int ncmax = 32; - int nc = 0; - char *buf; - ssize_t rc; - - rc = msgrcv(msqid, msgp, msgsz, msgtyp, msgflg); - buf = ((struct msgbuf *)msgp)->mtext; - if (rc >= 0) { - /* Ensure printable. */ - for (nc = 0; nc < ncmax; nc++) { - if (nc < rc && isprint(buf[nc])) - continue; - break; - } - } -SPEW("<--\t %s(0x%x,%p,%lu,%ld,%d) rc %ld\t\"%.*s\"\n", __FUNCTION__, msqid, msgp, (unsigned long)msgsz, msgtyp, msgflg, (long)rc, nc, buf); - return rc; -} - -static -int Msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg) -{ - rpmmsq msq = NULL; - int ncmax = 32; - int nc = 0; - char *buf; - int rc; - - rc = msgsnd(msqid, msgp, msgsz, msgflg); - buf = ((struct msgbuf *)msgp)->mtext; - if (rc == 0) { - /* Ensure printable. */ - for (nc = 0; nc < ncmax; nc++) { - if (nc < (int)msgsz && isprint(buf[nc])) - continue; - break; - } - } -SPEW("<--\t %s(0x%x,%p,%lu,%d) rc %d\t\t\"%.*s\"\n", __FUNCTION__, msqid, msgp, (unsigned long)msgsz, msgflg, rc, nc, buf); - return rc; -} - -static -int Msgctl(int msqid, int cmd, struct msqid_ds *buf) -{ - rpmmsq msq = NULL; - int rc = msgctl(msqid, cmd, buf); -SPEW("<--\t %s(0x%x,%d,%p) rc %d\n", __FUNCTION__, msqid, cmd, buf, rc); - return rc; -} -#endif /* WITH_MSQ */ - -/* =============================================================== */ -static void prtMSQ(const char * msg, rpmmsq msq, int stats) -{ - FILE *fp = stderr; - - if (msg) fprintf(fp, "==================== %s(%p)\n", msg, msq); - if (msq) { -#define PRINT(_fmt, _foo) fprintf(fp, "%19s: %"#_fmt"\n", #_foo, msq->_foo) - PRINT(s, qname); - PRINT(s, fmode); - PRINT(d, fdno); - PRINT(x, flags); - PRINT(x, qid); - PRINT(x, oflags); - PRINT(0o, omode); - PRINT(x, key); - PRINT(ld, mtype); -#if defined(WITH_MSQ) - PRINT(d, msgmax); - PRINT(d, msgsize); -#endif /* WITH_MSQ */ - if (stats) { - PRINT(d, nsent); - PRINT(d, nrecv); - PRINT(d, ntimeout); - PRINT(d, nagain); - } - PRINT(p, aioq.head); - PRINT(p, aioq.tail); - PRINT(d, nqueued); -#undef PRINT - } -} - -/* =============================================================== */ static int _lockdebug = 0; static int _conddebug = -1; #define PEEK(_bolt) yarnPeekLock(_bolt) @@ -450,7 +187,7 @@ errno = EINPROGRESS; /* XXX */ } -SPEW("<--\t%s(%p, %p) rc %ld %m\n", __FUNCTION__, aioq, item, rc); +SPEW("<--\t%s(%p, %p) rc %ld\n", __FUNCTION__, aioq, item, rc); return rc; } @@ -736,15 +473,15 @@ case RPMMSQ_TYPE_POSIX: { #if defined(WITH_MQ) - (void) Mq_unlink(msq->qname); + (void) mq_unlink(msq->qname); #endif /* WITH_MQ */ } break; case RPMMSQ_TYPE_SYSV: { #if defined(WITH_MSQ) - int qid = Msgget(msq->key, (omode & 0777)); + int qid = msgget(msq->key, (omode & 0777)); if (qid != -1) { - (void) Msgctl(qid, IPC_RMID, NULL); + (void) msgctl(qid, IPC_RMID, NULL); } #endif /* WITH_MSQ */ } break; @@ -764,7 +501,7 @@ msq->oattrs.mq_maxmsg = msq->msgmax; msq->oattrs.mq_msgsize = msq->msgsize; msq->oattrs.mq_curmsgs = 0; - msq->qid = Mq_open(msq->qname, msq->oflags, msq->omode, &msq->oattrs); + msq->qid = mq_open(msq->qname, msq->oflags, msq->omode, &msq->oattrs); Z(pthread_getattr_default_np(&msq->attr)); Z(pthread_attr_setdetachstate(&msq->attr, PTHREAD_CREATE_DETACHED)); @@ -779,7 +516,7 @@ case RPMMSQ_TYPE_SYSV: { #if defined(WITH_MSQ) - msq->qid = Msgget(msq->key, omode); + msq->qid = msgget(msq->key, omode); #endif /* WITH_MSQ */ } break; default: @@ -816,7 +553,7 @@ long msgtyp = msq->mtype; int msgflg = 0; /* IPC_NOWAIT, MSG_COPY, MSG_EXCEPT, MSG_NOERROR */ - rc = Msgrcv(msq->qid, msgp, msgsz, msgtyp, msgflg); + rc = msgrcv(msq->qid, msgp, msgsz, msgtyp, msgflg); if (rc >= 0) { if (priop) *priop = msgp->mtype; @@ -846,7 +583,7 @@ #if defined(WITH_MQ) /* Send the first message to trigger the reader thread startup. */ if (msq->nsent == 0) { - rc = Mq_send(msq->qid, buf, count, prio); + rc = mq_send(msq->qid, buf, count, prio); if (rc == 0) msq->nsent++; @@ -873,7 +610,7 @@ msgp->mtype = msq->mtype; if (count) memcpy(msgp->mtext, buf, count); - rc = Msgsnd(msq->qid, msgp, msgsz, msgflg); + rc = msgsnd(msq->qid, msgp, msgsz, msgflg); if (rc == 0) msq->nsent++; @@ -924,7 +661,7 @@ /* Reader thread never started: disable notify and close. */ if (msq->nsent == 0) { rc = rpmmsqNotify(msq, NULL); - rc = Mq_close(msq->qid); + rc = mq_close(msq->qid); if (rc == 0) msq->qid = -1; break; @@ -941,7 +678,7 @@ } if (!rc && (delete || MSQF_ISSET(DELETE))) - rc = Mq_unlink(msq->qname); /* XXX rpmmsqReset? */ + rc = mq_unlink(msq->qname); /* XXX rpmmsqReset? */ #endif /* WITH_MQ */ } break; @@ -955,7 +692,7 @@ msq->qid = -1; rc = 0; /* XXX */ if (delete || MSQF_ISSET(DELETE)) - rc = Msgctl(msq->qid, IPC_RMID, NULL); + rc = msgctl(msq->qid, IPC_RMID, NULL); #endif /* WITH_MSQ */ } break; default: @@ -1031,7 +768,7 @@ case IPC_STAT: case IPC_SET: case IPC_RMID: - rc = Msgctl(msq->qid, cmd, buf); + rc = msgctl(msq->qid, cmd, buf); break; } #endif /* WITH_MSQ */ @@ -1054,7 +791,7 @@ case RPMMSQ_TYPE_POSIX: { #if defined(WITH_MQ) - rc = Mq_notify(msq->qid, _sevp); + rc = mq_notify(msq->qid, _sevp); #endif /* WITH_MQ */ } break; @@ -1088,10 +825,10 @@ do { struct timespec ts = { 0, 1000 }; - rc = Mq_receive(msq->qid, b, nb, priop); + rc = mq_receive(msq->qid, b, nb, priop); if (rc < 0) { switch (errno) { - case ETIMEDOUT: /* XXX Mq_timedreceive() */ + case ETIMEDOUT: /* XXX mq_timedreceive() */ msq->ntimeout++; Z(nanosleep(&ts, NULL)); continue; @@ -1146,14 +883,14 @@ } break; case LIO_WRITE: { unsigned int prio = aio->aiocb.aio_reqprio; /* XXX prio */ - rc = Mq_send(msq->qid, (const char *)b, nb, prio); + rc = mq_send(msq->qid, (const char *)b, nb, prio); if (rc == 0) msq->nsent++; } break; case LIO_CLOSE: { if (b == NULL && nb == 0) { - rc = Mq_close(msq->qid); + rc = mq_close(msq->qid); if (rc == 0) msq->qid = -1; } @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org