mmsoftware: Re-port to 64-bit
authorMatthew Mondor <mmondor@pulsar-zone.net>
Sat, 13 Aug 2016 20:00:46 +0000 (20:00 +0000)
committerMatthew Mondor <mmondor@pulsar-zone.net>
Sat, 13 Aug 2016 20:00:46 +0000 (20:00 +0000)
Although long ago this software ran on Sparc64, it has mostly been
used on i686/32-bit for a while afterward.  An old strings library
implementing custom version sof standard libc string functions (as
well as custom functions) still relied on manually-set definitions
in mmlib/mmarch.h.  Machine endian byte order is now automatically
detected and the long word size is no longer necessary, as all
standard-behaving string functions were now obsoleted.

The daemons mmstatd, mmftpd, mmsmtpd, mmpop3d were adapted for
these changes, and their version was also bumped.

24 files changed:
mmsoftware/mmftpd/ChangeLog
mmsoftware/mmftpd/src/mmftpd.c
mmsoftware/mmftpd/src/mmftpd.h
mmsoftware/mmlib/mmarch.h
mmsoftware/mmlib/mmfd.c
mmsoftware/mmlib/mmhash.h
mmsoftware/mmlib/mmpath.c
mmsoftware/mmlib/mmpool.h
mmsoftware/mmlib/mmreadcfg.c
mmsoftware/mmlib/mmserver.c
mmsoftware/mmlib/mmstat.c
mmsoftware/mmlib/mmstr.c
mmsoftware/mmlib/mmstring.c
mmsoftware/mmlib/mmstring.h
mmsoftware/mmmail/ChangeLog
mmsoftware/mmmail/src/mmpop3d/mmpop3d.c
mmsoftware/mmmail/src/mmpop3d/mmpop3d.h
mmsoftware/mmmail/src/mmrelayd/mmrelayd.c
mmsoftware/mmmail/src/mmsmtpd/mmsmtpd.c
mmsoftware/mmmail/src/mmsmtpd/mmsmtpd.h
mmsoftware/mmstatd/ChangeLog
mmsoftware/mmstatd/src/mmstat.c
mmsoftware/mmstatd/src/mmstatd.c
mmsoftware/mmstatd/src/mmstatd.h

index 9632bfa..332263e 100644 (file)
@@ -1,5 +1,11 @@
 $Id: ChangeLog,v 1.55 2008/03/11 17:11:19 mmondor Exp $
 
+Release: mmftpd 0.4.0 devl
+Date   : August 13, 2016
+By     : Matthew Mondor
+
+* 64-bit re-porting
+
 
 
 Release: mmftpd 0.3.0 devl
index 4475e90..03b4067 100644 (file)
@@ -491,7 +491,7 @@ auth_user(clientenv *clenv)
        /* First verify if anonymous access is requested, if so
         * ensure that anonymous account exists
         */
-       if (!(mm_strcmp(args[1], "anonymous"))) {
+       if (!(strcmp(args[1], "anonymous"))) {
 
            if (checkuser(clenv, args[1])) {
                /* If this succeeded once a password is entered (any)
@@ -658,7 +658,7 @@ auth_pass(clientenv *clenv)
        pthread_mutex_lock(&lusers_lock);
 
        /* Verify if user in list */
-       len = mm_strlen(clenv->user) + 1;
+       len = strlen(clenv->user) + 1;
        if ((lun = (lusernode *)hashtable_lookup(&lusers_table, clenv->user,
                        len)) != NULL) {
            bool lok = TRUE;
@@ -706,7 +706,7 @@ auth_pass(clientenv *clenv)
                if (lun != NULL) {
                    pthread_mutex_init(&lun->lock, NULL);
                    lun->logins = 1;
-                   mm_memcpy(lun->user, clenv->user, len);
+                   memcpy(lun->user, clenv->user, len);
                    clenv->unode = lun;
                    hashtable_link(&lusers_table, (hashnode_t *)lun, lun->user,
                            len, FALSE);
@@ -747,7 +747,7 @@ main_cwd(clientenv *clenv)
        if ((t = path_exists(path2, NULL, NULL, clenv->checkowner)) !=
                MMPATH_DENIED) {
            if (t == MMPATH_DIR) {
-               mm_strncpy(clenv->cwd, path, MMPATH_MAX - 1);
+               strncpy(clenv->cwd, path, MMPATH_MAX - 1);
                if (!directory_message(clenv, 250)) return (STATE_ERROR);
                reply(clenv, 250, FALSE, "Command successful");
 
@@ -1155,13 +1155,13 @@ main_type(clientenv *clenv)
     char *args[4];
 
     if ((a = mm_straspl(args, clenv->buffer, 3)) == 2) {
-       if (!(mm_strcasecmp(args[1], "A"))) {
+       if (!(strcasecmp(args[1], "A"))) {
            clenv->type = TYPE_ASCII;
            reply(clenv, 200, FALSE, "Type ASCII set");
-       } else if (!(mm_strcasecmp(args[1], "I"))) {
+       } else if (!(strcasecmp(args[1], "I"))) {
            clenv->type = TYPE_IMAGE;
            reply(clenv, 200, FALSE, "Type IMAGE set");
-       } else if (!(mm_strcasecmp(args[1], "L"))) {
+       } else if (!(strcasecmp(args[1], "L"))) {
            clenv->type = TYPE_LOCAL;
            reply(clenv, 200, FALSE, "Type LOCAL set (8 bits per byte)");
        } else {
@@ -1169,7 +1169,7 @@ main_type(clientenv *clenv)
            REGISTER_ERROR();
        }
     } else if (a == 3) {
-       if (!(mm_strcasecmp(args[1], "L"))) {
+       if (!(strcasecmp(args[1], "L"))) {
            if (atoi(args[2]) == 8) {
                clenv->type = TYPE_LOCAL;
                reply(clenv, 200, FALSE, "Type LOCAL set (8 bits per byte)");
@@ -1196,7 +1196,7 @@ main_stru(clientenv *clenv)
     char *args[3];
 
     if ((mm_straspl(args, clenv->buffer, 2)) == 2) {
-       if (!(mm_strcasecmp(args[1], "F")))
+       if (!(strcasecmp(args[1], "F")))
            reply(clenv, 200, FALSE, "Structure FILE set");
        else {
            reply(clenv, 504, FALSE, "Unimplemented structure");
@@ -1217,7 +1217,7 @@ main_mode(clientenv *clenv)
     char *args[3];
 
     if ((mm_straspl(args, clenv->buffer, 2)) == 2) {
-       if (!(mm_strcasecmp(args[1], "S")))
+       if (!(strcasecmp(args[1], "S")))
            reply(clenv, 200, FALSE, "Mode STREAM set");
        else {
            reply(clenv, 502, FALSE, "Unimplemented mode");
@@ -1320,7 +1320,7 @@ main_stor(clientenv *clenv)
     if (clenv->upload) {
        if (path_valid(path, cpath, clenv->home, clenv->cwd,
                    &clenv->buffer[4], FALSE, FALSE, FALSE)
-               && (mm_strlen(path) < MMPATH_MAX - 2)) {
+               && (strlen(path) < MMPATH_MAX - 2)) {
            if ((i = path_exists(path, &fsize, NULL, clenv->checkowner)) !=
                    MMPATH_DIR && i != MMPATH_DENIED) {
                if ((i != MMPATH_NONE && clenv->modify) || i == MMPATH_NONE) {
@@ -1454,13 +1454,13 @@ main_stou(clientenv *clenv)
            if (path_exists(path, NULL, NULL, clenv->checkowner) ==
                    MMPATH_DIR) {
                /* Directory specified, generate our own filename prefix */
-               i = mm_strlen(path);
+               i = strlen(path);
                if (i && path[i - 1] != '/') {
                    *prefix = '/';
                    prefix[1] = '\0';
                } else
                    *prefix = '\0';
-               mm_strcat(prefix, "unique");
+               strncat(prefix, "unique", MMPATH_MAX - 1);
            } else {
                /* Keep the specified name as prefix */
                *prefix = '\0';
@@ -1474,7 +1474,7 @@ main_stou(clientenv *clenv)
                for (i = 0; i < i3; i++) unique += rand();
                snprintf(uniquepath, MMPATH_MAX - 1, "%s%s.%08X", path,
                        prefix, unique);
-               i = mm_strlen(uniquepath);
+               i = strlen(uniquepath);
                if (!(i < MMPATH_MAX - 2)) break;
            } while ((path_exists(uniquepath, NULL, NULL, clenv->checkowner)
                        != MMPATH_NONE) && i2 < 50);
@@ -1571,7 +1571,7 @@ main_appe(clientenv *clenv)
     if (clenv->upload) {
        if (path_valid(path, cpath, clenv->home, clenv->cwd,
                    &clenv->buffer[4], FALSE, FALSE, FALSE)
-               && (mm_strlen(path) < MMPATH_MAX - 2)) {
+               && (strlen(path) < MMPATH_MAX - 2)) {
            if ((i = path_exists(path, NULL, NULL, clenv->checkowner)) !=
                    MMPATH_DIR && i != MMPATH_DENIED) {
                if ((i != MMPATH_NONE && clenv->modify)
@@ -1751,7 +1751,7 @@ main_rnto(clientenv *clenv)
        if (clenv->rnfr) {
            if (path_valid(path, NULL, clenv->home, clenv->cwd,
                        &clenv->buffer[4], FALSE, FALSE, FALSE)
-                   && (mm_strlen(path) < MMPATH_MAX - 2)) {
+                   && (strlen(path) < MMPATH_MAX - 2)) {
                /* Make sure file does not exist */
                if (path_exists(path, NULL, NULL, clenv->checkowner) ==
                        MMPATH_NONE) {
@@ -1951,7 +1951,7 @@ main_mkd(clientenv *clenv)
     if (clenv->modify) {
        if (path_valid(path, NULL, clenv->home, clenv->cwd,
                    &clenv->buffer[3], FALSE, FALSE, FALSE) &&
-               (mm_strlen(path) < MMPATH_MAX - 2)) {
+               (strlen(path) < MMPATH_MAX - 2)) {
            if (path_exists(path, NULL, NULL, clenv->checkowner) ==
                    MMPATH_NONE) {
                mode = ~clenv->umask;
@@ -2095,7 +2095,7 @@ main_site(clientenv *clenv)
     mode_t mode;
 
     if ((i = mm_straspl(args, clenv->buffer, 4)) >= 2) {
-       if (!(mm_strcasecmp(args[1], "UMASK"))) {
+       if (!(strcasecmp(args[1], "UMASK"))) {
            if (clenv->modify && clenv->mumask) {
                if (i == 2)
                    reply(clenv, 200, FALSE, "Current UMASK is %04o",
@@ -2115,7 +2115,7 @@ main_site(clientenv *clenv)
                REGISTER_PERMISSION();
                REGISTER_ERROR();
            }
-       } else if (!(mm_strcasecmp(args[1], "CHMOD"))) {
+       } else if (!(strcasecmp(args[1], "CHMOD"))) {
            if (clenv->modify && clenv->mumask) {
                if (i == 4) {
                    if (path_valid(path, NULL, clenv->home, clenv->cwd,
@@ -2441,15 +2441,15 @@ main(int argc, char **argv)
 
     /* Set defaults */
     *CONF.CHROOT_DIR = '\0';
-    mm_strcpy(CONF.PASSWD_FILE, "/usr/local/etc/mmftpdpasswd");
-    mm_strcpy(CONF.PID_PATH, "/var/run/mmftpd.pid");
-    mm_strcpy(CONF.USER, "mmftpd");
-    mm_strcpy(CONF.GROUPS, "mmftpd,mmstat");
-    mm_strcpy(CONF.LOG_FACILITY, "LOG_AUTHPRIV");
-    mm_strcpy(CONF.SERVER_NAMES, "ftp.localhost");
-    mm_strcpy(CONF.LISTEN_IPS, "127.0.0.1");
+    strcpy(CONF.PASSWD_FILE, "/usr/local/etc/mmftpdpasswd");
+    strcpy(CONF.PID_PATH, "/var/run/mmftpd.pid");
+    strcpy(CONF.USER, "mmftpd");
+    strcpy(CONF.GROUPS, "mmftpd,mmstat");
+    strcpy(CONF.LOG_FACILITY, "LOG_AUTHPRIV");
+    strcpy(CONF.SERVER_NAMES, "ftp.localhost");
+    strcpy(CONF.LISTEN_IPS, "127.0.0.1");
     *CONF.PASV_REMAP = '\0';
-    mm_strcpy(CONF.DISPLAY_FILE, "README");
+    strcpy(CONF.DISPLAY_FILE, "README");
     *CONF.WELCOME_FILE = '\0';
     *CONF.MOTD_FILE = '\0';
     CONF.ASYNC_PROCESSES = 3;
@@ -2591,7 +2591,7 @@ main(int argc, char **argv)
            sizeof(lusernode),
            (32768 * CONF.ALLOC_BUFFERS) / sizeof(lusernode), 0, 0);
     hashtable_init(&lusers_table, "lusers_table", HT_DEFAULT_CAPACITY,
-           HT_DEFAULT_FACTOR, malloc, free, mm_memcmp, mm_memhash32, TRUE);
+           HT_DEFAULT_FACTOR, malloc, free, memcmp, mm_memhash32, TRUE);
     /* Mutexes pool for mmfd */
     pool_init(&mutexes_pool, "mutexes_pool", malloc, free, NULL, NULL,
            sizeof(struct mutexnode),
@@ -2606,7 +2606,7 @@ main(int argc, char **argv)
     pool_init(&quota_pool, "quota_pool", malloc, free, NULL, NULL,
            sizeof(struct quotanode), 16384 / sizeof(struct quotanode), 0, 0);
     hashtable_init(&quota_table, "quota_table", HT_DEFAULT_CAPACITY,
-           HT_DEFAULT_FACTOR, malloc, free, mm_memcmp, mm_memhash32, TRUE);
+           HT_DEFAULT_FACTOR, malloc, free, memcmp, mm_memhash32, TRUE);
 
     if (hash_commands(commands, 3) && POOL_VALID(&clenvs_pool) &&
            POOL_VALID(&lusers_pool) && HASHTABLE_VALID(&lusers_table) &&
@@ -2835,7 +2835,7 @@ recursive_treesize(char *path, off_t minfilesize)
     int len;
     char *newpath;
 
-    len = mm_strlen(path);
+    len = strlen(path);
     len--;
     if (len && path[len] == '/') path[len] = '\0';
 
@@ -2843,9 +2843,9 @@ recursive_treesize(char *path, off_t minfilesize)
 
        while ((de = readdir(dh)) != NULL) {
 
-           if ((mm_strcmp(de->d_name, "."))
-                   && (mm_strcmp(de->d_name, ".."))) {
-               len = mm_strlen(path) + mm_strlen(de->d_name) + 2;
+           if ((strcmp(de->d_name, "."))
+                   && (strcmp(de->d_name, ".."))) {
+               len = strlen(path) + strlen(de->d_name) + 2;
                if ((newpath = (char *)alloca(len + 2))) {
                    snprintf(newpath, len, "%s/%s", path, de->d_name);
                    if (!(lstat(newpath, &st))) {
@@ -2932,7 +2932,7 @@ checkuser(clientenv *clenv, const char *name)
                        if ((clenv->gid = mmgetgid(columns[CONF_GROUP]))
                                != -1) {
 
-                           mm_strcpy(clenv->cwd, "/");
+                           strcpy(clenv->cwd, "/");
 
                            /* Boolean values */
 #define TOBOOL(i) ((i) != 0 ? TRUE : FALSE)
@@ -3073,7 +3073,7 @@ free_clientenv(clientenv *clenv)
                /* Note: mmstrdup() only allows strings of 255 characters max,
                 * so we can assume that the admin-supplied path is safe here.
                 */
-               len = mm_strlen(home) + 1;
+               len = strlen(home) + 1;
                t = time(NULL);
                pthread_mutex_lock(&quota_lock);
                if ((qnod = (quotanode *)hashtable_lookup(&quota_table, home,
@@ -3083,7 +3083,7 @@ free_clientenv(clientenv *clenv)
                } else {
                    if ((qnod = (quotanode *)pool_alloc(&quota_pool, FALSE))
                            != NULL) {
-                       mm_memcpy(qnod->dir, home, len);
+                       memcpy(qnod->dir, home, len);
                        qnod->homesize = clenv->unode->homesize;
                        qnod->updated = t;
                        hashtable_link(&quota_table, (hashnode_t *)qnod,
@@ -3345,8 +3345,8 @@ pasv_remap_parse(void)
     int                                i, entries;
     struct server_sockaddr     adv;
 
-    if ((pasv_map_string = _mm_strdup(CONF.PASV_REMAP)) == NULL) {
-       (void) fprintf(stderr, "pasv_remap_parse() - mm_strdup()\n");
+    if ((pasv_map_string = strdup(CONF.PASV_REMAP)) == NULL) {
+       (void) fprintf(stderr, "pasv_remap_parse() - strdup()\n");
        return FALSE;
     }
 
@@ -3376,8 +3376,8 @@ pasv_remap_parse(void)
        }
 
        adv.ss_family = pasv_map[i].bind.ss_family =
-           ((mm_strchr(cols2[1], ':') != NULL ||
-             mm_strchr(cols2[2], ':') != NULL) ?  AF_INET6 : AF_INET);
+           ((strchr(cols2[1], ':') != NULL ||
+             strchr(cols2[2], ':') != NULL) ?  AF_INET6 : AF_INET);
 
        if (inet_pton(*(SERVER_SOCKADDR_FAMILY(&pasv_map[i].bind)),
                    cols2[1], SERVER_SOCKADDR_ADDRESS(&pasv_map[i].bind))
@@ -3440,7 +3440,7 @@ pasv_remap(struct server_sockaddr *bind, char **advertize_l,
     int                        i, cur, max, af;
     struct pasv_remap  *entry = NULL;
 
-    af = (mm_strchr(client, ':') != NULL ? AF_INET6 : AF_INET);
+    af = (strchr(client, ':') != NULL ? AF_INET6 : AF_INET);
 
     /* Run through patterns to find the best matching entry.
      * If no patterns match, we'll return FALSE.
@@ -3457,7 +3457,7 @@ pasv_remap(struct server_sockaddr *bind, char **advertize_l,
     }
 
     if (entry != NULL) {
-       (void) mm_memcpy(bind, &entry->bind, sizeof(struct server_sockaddr));
+       (void) memcpy(bind, &entry->bind, sizeof(struct server_sockaddr));
        *advertize_l = entry->advertize_l;
        *advertize_s = entry->advertize_s;
        return TRUE;
@@ -3498,7 +3498,7 @@ handleclient(unsigned long cid, int fd, clientlistnode *clientlnode,
     saddr = &clientlnode->client;
     if (inet_ntop(*(SERVER_SOCKADDR_FAMILY(saddr)),
                SERVER_SOCKADDR_ADDRESS(saddr), ipaddr, 64) == NULL)
-       mm_strcpy(ipaddr, "0.0.0.0");
+       strcpy(ipaddr, "0.0.0.0");
 
     if (clientlnode->hostname)
        /* Log user's IP and hostname */
@@ -3551,7 +3551,7 @@ handleclient(unsigned long cid, int fd, clientlistnode *clientlnode,
                if (getsockname(fd, (struct sockaddr *)&sname, &slen) == 0) {
                    (void) foobar_address(advaddr_l, 255, &clenv->advaddr_s,
                            &sname);
-                   (void) mm_memcpy(&clenv->uipaddr, &sname,
+                   (void) memcpy(&clenv->uipaddr, &sname,
                            sizeof(struct server_sockaddr));
                }
                else {
@@ -3794,7 +3794,7 @@ pasv_bind(clientenv *clenv, struct server_sockaddr *server, int *sock,
        if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int)) == -1)
            DEBUG_PRINTF("pasv_bind", "setsockopt(SO_REUSEADDR)");
 
-       (void) mm_memcpy(server, &clenv->uipaddr,
+       (void) memcpy(server, &clenv->uipaddr,
                sizeof(struct server_sockaddr));
 
        if (!CONF.PASV_RANGE) {
@@ -4111,7 +4111,7 @@ transferthread_main(clientenv *clenv, fdbuf *fdb)
                                        FDBP_RRATE);
                                fdbparam_set(fdb, msg->wrate * 1024,
                                        FDBP_WRATE);
-                               if (msg->path) mm_strncpy(path, msg->path,
+                               if (msg->path) strncpy(path, msg->path,
                                        MMPATH_MAX - 1);
                                else *path = '\0';
                                if (msg->list != 0) {
@@ -4168,7 +4168,7 @@ transferthread_main(clientenv *clenv, fdbuf *fdb)
                    /* Start connection to the client */
                    if ((fd = socket(*(SERVER_SOCKADDR_FAMILY(clenv->cipaddr)),
                                    SOCK_STREAM, 0)) != -1) {
-                       mm_memcpy(&client, clenv->cipaddr,
+                       memcpy(&client, clenv->cipaddr,
                                sizeof(struct server_sockaddr));
                        *(SERVER_SOCKADDR_PORT(&client)) = htons(port);
                        /*
@@ -4281,7 +4281,7 @@ transferthread_main(clientenv *clenv, fdbuf *fdb)
                             * connected client and continue listening on this
                             * socket for the expected client.
                             */
-                           if (mm_memcmp(SERVER_SOCKADDR_ADDRESS(&addr),
+                           if (memcmp(SERVER_SOCKADDR_ADDRESS(&addr),
                                    SERVER_SOCKADDR_ADDRESS(clenv->cipaddr),
                                    SERVER_SOCKADDR_ADDRLEN(&addr)) == 0)
                                state = TTSTATE_TRANSFER;
@@ -4734,7 +4734,7 @@ async_checkpw(struct async_msg *msg)
     char *hash;
 
     if ((hash = crypt(amsg->un.args.passwd, amsg->un.args.hash)) != NULL) {
-       if ((mm_strcmp(hash, amsg->un.args.hash)) == 0)
+       if ((strcmp(hash, amsg->un.args.hash)) == 0)
            amsg->un.res.matching = TRUE;
        else
            amsg->un.res.matching = FALSE;
@@ -4792,7 +4792,7 @@ async_getuserline(struct async_msg *msg)
        char username[32];
        int fd;
 
-       mm_strncpy(username, amsg->un.args.username, 31);
+       strncpy(username, amsg->un.args.username, 31);
        if ((fd = open(CONF.PASSWD_FILE, O_RDONLY)) != -1) {
            char *columns[CONF_COLUMNS + 1];
            int cols;
@@ -4802,7 +4802,7 @@ async_getuserline(struct async_msg *msg)
            while ((cols = readconfline(line, getuserline_fdb, CONF_COLUMNS,
                            CONF_COLUMNS, columns)) != -1) {
                if (cols == CONF_COLUMNS) {
-                   if ((mm_strcmp(columns[CONF_USER], username)) == 0) {
+                   if ((strcmp(columns[CONF_USER], username)) == 0) {
                        /* User matches. Because we want to pass pointers
                         * to the various fields of the user configuration
                         * line to another process, map columns to index
@@ -4843,8 +4843,8 @@ checkpw(clientenv *clenv, const char *passwd, const char *hash)
 {
     struct async_checkpw_msg *amsg = (void *)clenv->aclenv->msg;
 
-    mm_strncpy(amsg->un.args.passwd, passwd, 255);
-    mm_strncpy(amsg->un.args.hash, hash, 47);
+    strncpy(amsg->un.args.passwd, passwd, 255);
+    strncpy(amsg->un.args.hash, hash, 47);
     async_call(clenv->aclenv, ASYNC_CHECKPW);
 
     return (amsg->un.res.matching);
@@ -4868,7 +4868,7 @@ treesize(clientenv *clenv, const char *path, off_t min)
      */
     found = FALSE;
     size = 0;
-    len = mm_strlen(path) + 1;
+    len = strlen(path) + 1;
     pthread_mutex_lock(&quota_lock);
     if ((qnod = (quotanode *)hashtable_lookup(&quota_table, path, len))
            != NULL) {
@@ -4892,7 +4892,7 @@ treesize(clientenv *clenv, const char *path, off_t min)
     if (found)
        return (size);
 
-    mm_strncpy(amsg->un.args.path, path, 255);
+    strncpy(amsg->un.args.path, path, 255);
     async_call(clenv->aclenv, ASYNC_TREESIZE);
 
     /* If this function was invoked it means that at least one user is logged
@@ -4916,7 +4916,7 @@ getuserline(clientenv *clenv, char **cols, char **line, const char *username)
     struct async_getuserline_msg *amsg = (void *)clenv->aclenv->msg;
     bool ok = FALSE;
 
-    mm_strncpy(amsg->un.args.username, username, 31);
+    strncpy(amsg->un.args.username, username, 31);
     async_call(clenv->aclenv, ASYNC_GETUSERLINE);
     if (*(amsg->un.res.line)) {
        int *index = amsg->un.res.cols, i;
index ac47628..9a196e5 100644 (file)
@@ -69,7 +69,7 @@
 /* DEFINITIONS */
 
 #define DAEMON_NAME            "mmftpd"
-#define DAEMON_VERSION         "0.3.2"
+#define DAEMON_VERSION         "0.4.0"
 
 /* Transfer buffer size */
 #define T_BUFSIZE              16384
index accf91e..e74a61b 100644 (file)
@@ -52,6 +52,7 @@
 /* The number of bits held into a standard long for this architecture and
  * compiler.
  */
+#ifdef MMSTRING_OBSOLETE
 #define ARCH_LONG_BITS 32
 
 /* Define if no loop unrolling should be performed. Although performance can
@@ -69,6 +70,9 @@
  * optimization parameters passed to it.
  */
 #define ARCH_USEINDEXING
+#else
+#define ARCH_LOWCACHE
+#endif /* MMSTRING_OBSOLETE */
 
 /* The endian byte order of the architecture. This for example is little
  * endian on i386, and big endian (network byte order) on m68k. Must be
  * already using the network format will not have to perform any type of
  * conversions and performance will be higher on them.
  */
+#ifdef MMSTRING_OBSOLETE
 #define ARCH_LITTLE_ENDIAN
 /* #define ARCH_BIG_ENDIAN */
+#else
+#if BYTE_ORDER == LITTLE_ENDIAN
+#define ARCH_LITTLE_ENDIAN
+#elif BYTE_ORDER == BIG_ENDIAN
+#define ARCH_BIG_ENDIAN
+#endif
+#endif
 
 
 
 
 /* No user serviceable parts below this point */
 
+#ifdef MMSTRING_OBSOLETE
 #ifndef ARCH_LONG_BITS
 error "Undefined ARCH_LONG_BITS (8, 16, 32, 64)";
 #endif
+#endif
 
 #if defined(ARCH_LITTLE_ENDIAN)
 
index a7e0943..711aaac 100644 (file)
@@ -50,9 +50,9 @@
 #include <stdlib.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <string.h>
 
 #include <mmtypes.h>
-#include <mmstring.h>
 #include <mmfd.h>
 
 
@@ -161,7 +161,7 @@ fdputs(fdfuncs *fdf, int fd, const char *buf)
     int len = FDB_ERROR;
 
     if (buf && fd)
-       len = fdf->write(fd, buf, mm_strlen(buf));
+       len = fdf->write(fd, buf, strlen(buf));
 
     return (len);
 }
@@ -178,7 +178,7 @@ fdprintf(fdfuncs *fdf, int fd, const char *fmt, ...)
     vsnprintf(buf, 1023, fmt, arg_ptr);
     va_end(arg_ptr);
 
-    return (fdf->write(fd, buf, mm_strlen(buf)));
+    return (fdf->write(fd, buf, strlen(buf)));
 }
 
 
@@ -281,7 +281,7 @@ fdbopen(fdfuncs *fdf, fdbcontext *fdbc, int fd, size_t rbytes,
        fdb->fd = fd;
        fdb->rsize = rbytes;
        fdb->wsize = wbytes;
-       /* int-align buffers for possible optimizations in mm_memcpy() */
+       /* int-align buffers for possible optimizations in memcpy() */
        fdb->rbuf = fdb->wbuf =
            (char *)OALIGN_CEIL(((char *)fdb + sizeof(fdbuf)), int);
        fdb->wbuf += (int)OALIGN_CEIL(rbytes, int);
@@ -777,7 +777,7 @@ fdbread(fdbuf *fdb, void *buf, size_t size)
        if ((cur = fdb->rendbuf - fdb->rptr) > 0) {
            if (cur > size)
                cur = size;
-           mm_memcpy(buf, fdb->rptr, (size_t)cur);
+           memcpy(buf, fdb->rptr, (size_t)cur);
            fdb->rptr += cur;
            len += cur;
        } else {
@@ -830,7 +830,7 @@ fdbwrite(fdbuf *fdb, const void *buf, size_t size)
        }
        /* We know that there is some room, fill what we can */
        cur = (remaining > space) ? space : remaining;
-       mm_memcpy(fdb->wptr, pos, cur);
+       memcpy(fdb->wptr, pos, cur);
        remaining -= cur;
        pos += cur;
        fdb->wptr += cur;
@@ -931,7 +931,7 @@ endfdbgets:
 bool
 fdbputs(fdbuf *fdb, const char *buf)
 {
-    return (fdbwrite(fdb, buf, mm_strlen(buf)));
+    return (fdbwrite(fdb, buf, strlen(buf)));
 }
 
 
@@ -946,7 +946,7 @@ fdbprintf(fdbuf *fdb, const char *fmt, ...)
     vsnprintf(buf, 1023, fmt, arg_ptr);
     va_end(arg_ptr);
 
-    return (fdbwrite(fdb, buf, mm_strlen(buf)));
+    return (fdbwrite(fdb, buf, strlen(buf)));
 }
 
 
index 6cf7ee5..c983f73 100644 (file)
@@ -92,7 +92,7 @@ struct hashtable {
 #define HT_DEFAULT_FACTOR      0.75f
 
 #define HASHTABLE_NODES(t)     ((t)->nodes)
-#define HASHTABLE_VALID(t)     ((t) != NULL && (t)->magic == MAGIC_HASHTABLE)
+#define HASHTABLE_VALID(t)     ((void *)(t) != NULL && (t)->magic == MAGIC_HASHTABLE)
 
 
 
index 2372461..dbfbf79 100644 (file)
@@ -48,6 +48,7 @@
 #include <dirent.h>
 #include <time.h>
 #include <fnmatch.h>
+#include <string.h>
 
 #include <mmtypes.h>
 #include <mmpath.h>
@@ -170,7 +171,7 @@ path_valid(char *to, char *clean, const char *root, const char *cwd,
     *to = '\0';
     if (chd)
        glob = FALSE;
-    mm_strncpy(tcwd, cwd, MMPATH_MAX);
+    strncpy(tcwd, cwd, MMPATH_MAX);
 
     /* First strip starting and trailing spaces from supplied path,
      * as well as trailing '/' characters. Also get rid of any starting '.',
@@ -250,7 +251,7 @@ path_parent(char *cwd)
 {
     register size_t i;
 
-    i = mm_strlen(cwd);
+    i = strlen(cwd);
     if (i < 2 || *cwd != '/')
        return FALSE;
 
@@ -371,7 +372,7 @@ path_ls(fdbuf *fdb, const char *path, const char *user, const char *group,
            /* Requesting listing for a single file, first isolate
             * filename from path, then display it
             */
-           len = mm_strlen(path);
+           len = strlen(path);
            for (tmp = &path[(len > 0 ? len - 1 : 0)];
                    *tmp != '\0' && *tmp != '/'; tmp--) ;
            if (*tmp == '/')
@@ -390,12 +391,12 @@ path_ls(fdbuf *fdb, const char *path, const char *user, const char *group,
             * first isolate pattern and directory, make sure we only allow
             * patterns on files (last path component)
             */
-           len = mm_strlen(path);
+           len = strlen(path);
            for (tmp = &path[(len > 0 ? len - 1 : 0)];
                    *tmp != '\0' && *tmp != '/'; tmp--) ;
            if (*tmp == '/')
                tmp++;
-           mm_strncpy(p, tmp, MMPATH_MAX - 1);
+           strncpy(p, tmp, MMPATH_MAX - 1);
            i = mm_strncpy(d, path, tmp - path);
            i--;
            if (i && d[i] == '/')
index 0c90c82..fea2691 100644 (file)
@@ -58,10 +58,10 @@ typedef struct pool pool_t;
 #define MAGIC_PAGE     0x50414745      /* PAGE */
 #define MAGIC_PNODE    0x504e4f44      /* PNOD */
 
-#define POOL_VALID(p)  ((p) != NULL && (p)->magic == MAGIC_POOL)
-#define PNODE_VALID(p) ((p) != NULL && (p)->magic == MAGIC_PNODE && \
-       (p)->page != NULL && (p)->page->magic == MAGIC_PAGE && \
-       (p)->page->pool != NULL && (p)->page->pool->magic == MAGIC_POOL)
+#define POOL_VALID(p)  ((void *)(p) != NULL && (p)->magic == MAGIC_POOL)
+#define PNODE_VALID(p) ((void *)(p) != NULL && (p)->magic == MAGIC_PNODE && \
+       (void *)(p)->page != NULL && (p)->page->magic == MAGIC_PAGE && \
+       (void *)(p)->page->pool != NULL && (p)->page->pool->magic == MAGIC_POOL)
 
 
 
index bdf9031..ac343d8 100644 (file)
@@ -49,6 +49,7 @@
 #include <grp.h>
 #include <ctype.h>
 #include <syslog.h>
+#include <string.h>
 
 #include <mmtypes.h>
 #include <mmstring.h>
@@ -130,7 +131,7 @@ mmreadcfg(cres_t *res, carg_t *arg, const char *cfg)
     }
     if (!hashtable_init(&table, "keyword_table",
                HT_DEFAULT_CAPACITY, HT_DEFAULT_FACTOR, malloc, free,
-               mm_memcmp, mm_memhash32, TRUE)) {
+               memcmp, mm_memhash32, TRUE)) {
        res->CR_Err = CRE_OUT_OF_MEM;
        goto end;
     }
@@ -143,7 +144,7 @@ mmreadcfg(cres_t *res, carg_t *arg, const char *cfg)
        mm_strupper(nod->keyword);
        nod->args = argptr;
        if (!hashtable_link(&table, (hashnode_t *)nod, nod->keyword,
-                   mm_strlen(nod->keyword), TRUE)) {
+                   strlen(nod->keyword), TRUE)) {
            /* Programming bug */
            res->CR_Err = CRE_MULT_DEF_KEYWD;
            res->CR_Keyword = argptr;
@@ -275,13 +276,13 @@ mmreadcfg(cres_t *res, carg_t *arg, const char *cfg)
                    goto end;
                }
                /* Length sanity already done, efficiently copy */
-               mm_memcpy(nod->args->CA_Data, wptr, len);
+               memcpy(nod->args->CA_Data, wptr, len);
                ((char *)nod->args->CA_Data)[len] = '\0';
                break;
            case CAT_BOOL:
-               if (mm_strcasecmp(wptr, "TRUE") == 0)
+               if (strcasecmp(wptr, "TRUE") == 0)
                    *((bool *)nod->args->CA_Data) = TRUE;
-               else if (mm_strcasecmp(wptr, "FALSE") == 0)
+               else if (strcasecmp(wptr, "FALSE") == 0)
                    *((bool *)nod->args->CA_Data) = FALSE;
                else {
                    /* Not a valid boolean */
@@ -381,7 +382,7 @@ bool
 mmmapstring(const cmap_t *cmap, const char *str, long *res)
 {
     while (cmap->CM_Str) {
-       if (!mm_strcmp(cmap->CM_Str, str)) {
+       if (!strcmp(cmap->CM_Str, str)) {
            *res = cmap->CM_Val;
            return (TRUE);
        }
index e622bc7..80ce357 100644 (file)
@@ -188,7 +188,7 @@ tcp_server(char *message, char *server_names, char *listen_ips, uid_t uid,
     handleclientfunc = handleclient1;
     id = (unsigned long)time(NULL);
     msgsock = -1;
-    msglen = mm_strlen(message);
+    msglen = strlen(message);
     fds = NULL;
     fdsi = NULL;
     ifaces = NULL;
@@ -300,7 +300,7 @@ tcp_server(char *message, char *server_names, char *listen_ips, uid_t uid,
                            "Error on setsockopt(%s:%d, TCP_NODELAY) - (%s)",
                            tif->address_str, port, tif->hostname);
            }
-           (void) mm_memcpy(&server, &tif->address,
+           (void) memcpy(&server, &tif->address,
                    sizeof(struct server_sockaddr));
            *(SERVER_SOCKADDR_PORT(&server)) = htons(port);
            if ((bind(tif->sock, (struct sockaddr *)(void *)&server,
@@ -422,7 +422,7 @@ tcp_server(char *message, char *server_names, char *listen_ips, uid_t uid,
                                        LR_INIT(&clnode->lr, ratemax,
                                                (time_t)rateper, curtime);
                                    clnode->timeout = (timeout * 1000);
-                                   (void) mm_memcpy(&clnode->client, &addr,
+                                   (void) memcpy(&clnode->client, &addr,
                                            sizeof(struct server_sockaddr));
                                    clnode->resolve = resolve;
                                    hashtable_link(&ctable,
@@ -496,7 +496,7 @@ tcp_server(char *message, char *server_names, char *listen_ips, uid_t uid,
                            (void) write(msgsock, message, msglen);
                            shutdown(msgsock, 2);
                            close(msgsock);
-                           mm_strcpy(ipaddr, "0.0.0.0");
+                           strcpy(ipaddr, "0.0.0.0");
                            inet_ntop(*(SERVER_SOCKADDR_FAMILY(&addr)),
                                    SERVER_SOCKADDR_ADDRESS(&addr),
                                    ipaddr, 63);
@@ -535,7 +535,7 @@ writepidfile(const char *file)
 
     if ((fd = open(file, O_CREAT | O_TRUNC | O_WRONLY, 0600)) != -1) {
        snprintf(str, 15, "%d\n", getpid());
-       write(fd, str, mm_strlen(str));
+       write(fd, str, strlen(str));
        close(fd);
     } else
        syslog(LOG_NOTICE, "writepidfile() - open(%s)", file);
@@ -727,12 +727,12 @@ parse_ifaces(char *hostnames, char *addresses)
                     * IPv6, assume IPv4 otherwise.
                     */
                    *(SERVER_SOCKADDR_FAMILY(&saddr)) =
-                       (mm_strchr(ips[i], ':') == NULL ? AF_INET : AF_INET6);
+                       (strchr(ips[i], ':') == NULL ? AF_INET : AF_INET6);
                    /* Parse user supplied address */
                    if ((inet_pton(*(SERVER_SOCKADDR_FAMILY(&saddr)), ips[i],
                                    SERVER_SOCKADDR_ADDRESS(&saddr))) == 1) {
-                       mm_strncpy(ifaces[i].hostname, hosts[i], 255);
-                       mm_strncpy(ifaces[i].address_str, ips[i], 63);
+                       strncpy(ifaces[i].hostname, hosts[i], 255);
+                       strncpy(ifaces[i].address_str, ips[i], 63);
                        ifaces[i].sock = -1;
                        ifaces[i].address = saddr;
                        *(ifaces[i + 1].hostname) = '\0';
@@ -764,7 +764,7 @@ static void
 phandleclient(pthread_object_t *obj, void *args, void *udata)
 {
     phandleinfo *phi;
-    int socket, ret;
+    int socket;
     clientlistnode *clnode;
     char *tmp;
     struct iface *iface;
@@ -781,8 +781,6 @@ phandleclient(pthread_object_t *obj, void *args, void *udata)
     pool_free((pnode_t *)phi);
     pthread_mutex_unlock(&ppool_lock);
 
-    ret = 0;
-
     if ((aclenv = async_open_clenv())) {
        if (clnode->resolve) {
            /* We want to resolve the client's IP address' hostname, but not
@@ -808,7 +806,7 @@ phandleclient(pthread_object_t *obj, void *args, void *udata)
        }
 
        /* Handle the client */
-       ret = handleclientfunc(id, socket, clnode, iface, aclenv, udata);
+       (void) handleclientfunc(id, socket, clnode, iface, aclenv, udata);
 
        async_close_clenv(aclenv);
     } else
@@ -898,8 +896,8 @@ async_thread(void *args)
        pfds = (struct pollfd *)ptr;
     } else {
        /* Fatal error */
-       syslog(LOG_NOTICE, "async_thread() - malloc(%d)",
-               idx_size + pfd_size);
+       syslog(LOG_NOTICE, "async_thread() - malloc(%llu)",
+               (unsigned long long)idx_size + pfd_size);
        pthread_exit(NULL);
     }
     i = 0;
@@ -1055,8 +1053,8 @@ async_init(struct async_func *funcs, int procs, uid_t uid, gid_t *gids,
        } else
            syslog(LOG_NOTICE, "async_init() - pool_init(freeprocs_pool)");
     } else
-       syslog(LOG_NOTICE, "async_init() - calloc(%d)",
-               env_len + funcs_len + msg_len);
+       syslog(LOG_NOTICE, "async_init() - calloc(%llu)",
+               (unsigned long long)env_len + funcs_len + msg_len);
 
     if (res) {
        /* Start async slave processes */
@@ -1390,7 +1388,7 @@ async_resolvehostname(struct async_msg *msg)
     if ((getnameinfo(SERVER_SOCKADDR(saddr), SERVER_SOCKADDR_SOCKLEN(saddr),
                    amsg->un.res.hostname, 255, NULL, 0, 0)) != 0) {
        DEBUG_PRINTF("getnameinfo()");
-       mm_strcpy(amsg->un.res.hostname, "unknown");
+       strcpy(amsg->un.res.hostname, "unknown");
     }
 }
 
@@ -1409,10 +1407,10 @@ resolve_hostname(struct async_clenv *aclenv, struct server_sockaddr *saddr)
     struct async_resolvehostname_msg *amsg = (void *)aclenv->msg;
 
     if ((tmp = mmstralloc(255)) != NULL) {
-       mm_memcpy(&(amsg->un.args.saddr), saddr,
+       memcpy(&(amsg->un.args.saddr), saddr,
                  sizeof(struct server_sockaddr));
        async_call(aclenv, ASYNC_RESOLVEHOSTNAME);
-       mm_strncpy(tmp, amsg->un.res.hostname, 255);
+       strncpy(tmp, amsg->un.res.hostname, 255);
     } else
        syslog(LOG_NOTICE, "resolve_hostname() - mmstralloc()");
 
index c3d74ff..bf7ccb9 100644 (file)
@@ -51,6 +51,7 @@
 #include <stdarg.h>
 #include <errno.h>
 #include <syslog.h>
+#include <string.h>
 
 #include <pthread.h>
 
index 0ed79ee..6e19dda 100644 (file)
@@ -41,9 +41,9 @@
 #include <sys/types.h>
 #include <stdbool.h>
 #include <pthread.h>
+#include <string.h>
 
 #include <mmtypes.h>
-#include <mmstring.h>
 #include <mmlist.h>
 #include <mmstr.h>
 
@@ -119,7 +119,7 @@ mmstrdup(const char *str)
        nod = (mmstrnode *)pool_alloc(&mmstrp, false);
        pthread_mutex_unlock(&mmstrp_lock);
        if (nod != NULL) {
-           mm_memcpy(nod->string, str, len);
+           memcpy(nod->string, str, len);
            return nod->string;
        }
     }
index b047e89..a5f6edb 100644 (file)
@@ -59,6 +59,7 @@ MMCOPYRIGHT("@(#) Copyright (c) 1989-2004\n\
 \tMatthew Mondor. All rights reserved.\n");
 MMRCSID("$Id: mmstring.c,v 1.32 2007/12/05 23:47:56 mmondor Exp $");
 
+
 static const unsigned char toupper_table[] = {
     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 
     0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 
@@ -118,8 +119,6 @@ static const unsigned char tolower_table[] = {
 };
 
 
-
-
 /* Splits columns of a string delimited by spaces and/or tabs, and fills
  * char **argv with pointers to each column. Returns the number of columns
  * that could be filled in. The supplied string IS modified.
@@ -255,6 +254,7 @@ mm_strcat(char *dest, const char *src)
 }
 
 
+#ifdef MMSTRING_OBSOLETE
 char *
 mm_strchr(const char *str, int c)
 {
@@ -263,7 +263,6 @@ mm_strchr(const char *str, int c)
     return (*str != '\0' ? (char *)str : NULL);
 }
 
-
 int
 mm_strcmp(const char *s1, const char *s2)
 {
@@ -271,6 +270,7 @@ mm_strcmp(const char *s1, const char *s2)
 
     return ((int)((const unsigned char)*s1 - (const unsigned char)*s2));
 }
+#endif
 
 
 /* XXX Unlike standard strcpy(), returns pointer to end of copied string in
@@ -288,6 +288,7 @@ mm_strcpy(char *dest, const char *src)
 
 
 /* XXX Should be mm_strdup() but then conflicts with libmm! */
+#ifdef MMSTRING_OBSOLETE
 char *
 _mm_strdup(const char *str)
 {
@@ -304,7 +305,6 @@ _mm_strdup(const char *str)
     return new;
 }
 
-
 int
 mm_strcasecmp(const char *s1, const char *s2)
 {
@@ -321,7 +321,6 @@ mm_strcasecmp(const char *s1, const char *s2)
     return ((int)(cs1 - cs2));
 }
 
-
 size_t mm_strlen(const char *str)
 {
     register const char *ptr = str;
@@ -336,6 +335,7 @@ size_t mm_strlen(const char *str)
     /* Don't forget to substract 1 */
     return ((size_t)((ptr - 1) - str));
 }
+#endif
 
 
 /* XXX Unlike ANSI, returns pointer at end of destination rather to beginning
@@ -376,7 +376,7 @@ mm_strnchr(const char *str, int c, size_t max)
     return NULL;
 }
 
-
+#ifdef MMSTRING_OBSOLETE
 int
 mm_strncmp(const char *s1, const char *s2, size_t max)
 {
@@ -393,6 +393,7 @@ mm_strncmp(const char *s1, const char *s2, size_t max)
 
     return 0;
 }
+#endif
 
 
 /* XXX This function, unlike the useless return code of the standard ANSI one,
@@ -420,7 +421,7 @@ mm_strncpy(char *dest, const char *src, size_t max)
     return 0;
 }
 
-
+#ifdef MMSTRING_OBSOLETE
 char *
 mm_strndup(const char *str, size_t max)
 {
@@ -439,7 +440,6 @@ mm_strndup(const char *str, size_t max)
     return new;
 }
 
-
 int
 mm_strncasecmp(const char *s1, const char *s2, size_t max)
 {
@@ -460,6 +460,7 @@ mm_strncasecmp(const char *s1, const char *s2, size_t max)
     return (us1 < toptr ? ((int)(cs1 - cs2)) : 0);
 }
 
+#endif
 
 size_t
 mm_strnlen(const char *str, size_t max)
@@ -487,7 +488,7 @@ mm_strnrchr(const char *str, int c, size_t max)
     return (char *)found;
 }
 
-
+#ifdef MMSTRING_OBSOLETE
 char *
 mm_strrchr(const char *str, int c)
 {
@@ -500,6 +501,7 @@ mm_strrchr(const char *str, int c)
 
     return (char *)found;
 }
+#endif
 
 
 /* Splits columns of a string delimited by sep, and fills
@@ -789,6 +791,7 @@ mm_memcasecmp(const void *s1, const void *s2, size_t size)
  * Matt
  */
 
+#ifdef MMSTRING_OBSOLETE
 
 int
 mm_memcmp(const void *dest, const void *src, size_t len)
@@ -1400,3 +1403,4 @@ mm_memset(void *mem, int fill, size_t len)
 
     return mem;
 }
+#endif
index 453724c..c014f53 100644 (file)
 #include <stdint.h>
 
 
-#define mm_memclr(a, l)                (void) mm_memset((a), 0, (l))
-
+#ifndef MMSTRING_OBSOLETE
+#include <string.h>
+#define mm_memclr(a, l)                (void) memset((a), 0, (l))
+#endif
 
-extern size_t          mm_strlen(const char *);
-extern size_t          mm_strnlen(const char *, size_t);
+#ifdef MMSTRING_OBSOLETE
 
-extern char *          mm_strcpy(char *, const char *);
-extern size_t          mm_strncpy(char *, const char *, size_t);
+#define mm_memclr(a, l)                (void) mm_memset((a), 0, (l))
 
-extern char *          mm_strcat(char *, const char *);
-extern char *          mm_strncat(char *, const char *, size_t);
+extern size_t          mm_strlen(const char *);
 
 extern int             mm_strcmp(const char *, const char *);
 extern int             mm_strncmp(const char *, const char *, size_t);
@@ -60,22 +59,36 @@ extern int          mm_strcasecmp(const char *, const char *);
 extern int             mm_strncasecmp(const char *, const char *, size_t);
 
 extern char *          mm_strchr(const char *, int);
-extern char *          mm_strnchr(const char *, int, size_t);
 extern char *          mm_strrchr(const char *, int);
-extern char *          mm_strnrchr(const char *, int, size_t);
 
 /* To not conflict with libmm! */
 extern char *          _mm_strdup(const char *);
 extern char *          mm_strndup(const char *, size_t);
 
+extern int             mm_memcmp(const void *, const void *, size_t);
+extern void *          mm_memcpy(void *, const void *, size_t);
+extern void *          mm_memmove(void *, const void *, size_t);
+extern void *          mm_memset(void *, int, size_t);
+/*extern void          mm_memclr(void *, size_t);*/
+
+#endif /* MMSTRING_OBSOLETE */
+
+extern char *          mm_strcat(char *, const char *);
+extern char *          mm_strncat(char *, const char *, size_t);
+extern char *          mm_strcpy(char *, const char *);
+extern size_t          mm_strncpy(char *, const char *, size_t);
+extern char *          mm_strnchr(const char *, int, size_t);
+extern size_t          mm_strnlen(const char *, size_t);
+extern char *          mm_strnrchr(const char *, int, size_t);
+extern void            mm_strlower(char *);
+extern void            mm_strupper(char *);
+
+extern uint32_t                mm_strpack32(const char *, size_t);
 extern int             mm_straspl(char **, char *, int);
 extern int             mm_strasplq(char **, char *, int);
 extern bool            mm_cmdparse(char **, int *, char **, char *, int);
 extern int             mm_strspl(char **, char *, int, char);
 
-extern void            mm_strlower(char *);
-extern void            mm_strupper(char *);
-extern uint32_t                mm_strpack32(const char *, size_t);
 extern unsigned long   mm_htol(const char *);
 extern void            mm_strrev(char *);
 extern void            mm_strrevto(char *, const char *);
@@ -86,11 +99,5 @@ extern uint32_t              mm_memhash32(const void *, size_t);
 extern uint32_t                mm_memcasehash32(const void *, size_t);
 extern int             mm_memcasecmp(const void *, const void *, size_t);
 
-extern int             mm_memcmp(const void *, const void *, size_t);
-extern void *          mm_memcpy(void *, const void *, size_t);
-extern void *          mm_memmove(void *, const void *, size_t);
-extern void *          mm_memset(void *, int, size_t);
-/*extern void          mm_memclr(void *, size_t);*/
-
 
 #endif
index d2e3cd1..31ec947 100644 (file)
@@ -1,5 +1,10 @@
 $Id: ChangeLog,v 1.61 2008/02/13 02:03:52 mmondor Exp $
 
+Release: mmmail 0.4.0 devl
+Date   : August 13, 2016
+By     : Matthew Mondor
+
+* Re-port to 64-bit
 
 
 Release: mmmail 0.3.0 devl
index 6ebefcb..07f45c6 100644 (file)
@@ -563,7 +563,7 @@ auth_pass(clientenv *clenv)
                mmstat(&clenv->pstat, STAT_UPDATE, 1, "mmpop3d|total|logins");
                mmstat(&clenv->pstat, STAT_UPDATE, 1, "mmmail|box|%s|logins",
                        clenv->mailbox);
-               domptr = mm_strchr(clenv->mailbox, '@');
+               domptr = strchr(clenv->mailbox, '@');
                domptr++;
                mmstat(&clenv->pstat, STAT_UPDATE, 1,
                        "mmmail|domain|%s|logins", domptr);
@@ -1722,7 +1722,7 @@ handleclient(unsigned long id, int fd, clientlistnode *clientlnode,
                 * to be there because we forged the address ourselves from the
                 * user login string, previously.
                 */
-               domptr = mm_strchr(clenv->mailbox, '@');
+               domptr = strchr(clenv->mailbox, '@');
                domptr++;
                mmstat(&clenv->pstat, STAT_UPDATE, messages_out,
                        "mmmail|domain|%s|messages-out", domptr);
@@ -1857,7 +1857,7 @@ async_checkpw(struct async_msg *msg)
     char *hash;
     
     if ((hash = crypt(amsg->un.args.passwd, amsg->un.args.hash)) != NULL) {
-       if ((mm_strcmp(hash, amsg->un.args.hash)) == 0)
+       if ((strcmp(hash, amsg->un.args.hash)) == 0)
            amsg->un.res.matching = true;
        else
            amsg->un.res.matching = false;
index cf468c2..cb276ad 100644 (file)
@@ -68,7 +68,7 @@
 /* DEFINITIONS */
 
 #define DAEMON_NAME    "mmpop3d"
-#define DAEMON_VERSION "mmmail-0.3.7"
+#define DAEMON_VERSION "mmmail-0.4.0"
 
 /* Negative states are used by the state swapper, others are real states */
 #define STATE_ERROR    -3
index 0bff0ce..2621add 100644 (file)
@@ -306,17 +306,17 @@ config_read(const char *file)
         * Set defaults
         */
        *CONF.CHROOT_DIR = '\0';
-       (void) mm_strcpy(CONF.LOCK_PATH, "/var/run/mmrelayd.lock");
-       (void) mm_strcpy(CONF.PID_PATH, "/var/run/mmrelayd.pid");
-       (void) mm_strcpy(CONF.USER, "mmmail");
-       (void) mm_strcpy(CONF.GROUPS, "mmmail,mmstat");
-       (void) mm_strcpy(CONF.LOG_FACILITY, "LOG_AUTHPRIV");
-       (void) mm_strcpy(CONF.DB_HOST, "localhost");
-       (void) mm_strcpy(CONF.DB_USER, "mmmail");
-       (void) mm_strcpy(CONF.DB_PASSWORD, "mmmailpassword");
-       (void) mm_strcpy(CONF.DB_DATABASE, "mmmail");
-       (void) mm_strcpy(CONF.MAIL_DIR, "/var/mmmail-dir");
-       (void) mm_strcpy(CONF.SOCKET_PATH, "/var/run/mmrelayd.sock");
+       (void) strcpy(CONF.LOCK_PATH, "/var/run/mmrelayd.lock");
+       (void) strcpy(CONF.PID_PATH, "/var/run/mmrelayd.pid");
+       (void) strcpy(CONF.USER, "mmmail");
+       (void) strcpy(CONF.GROUPS, "mmmail,mmstat");
+       (void) strcpy(CONF.LOG_FACILITY, "LOG_AUTHPRIV");
+       (void) strcpy(CONF.DB_HOST, "localhost");
+       (void) strcpy(CONF.DB_USER, "mmmail");
+       (void) strcpy(CONF.DB_PASSWORD, "mmmailpassword");
+       (void) strcpy(CONF.DB_DATABASE, "mmmail");
+       (void) strcpy(CONF.MAIL_DIR, "/var/mmmail-dir");
+       (void) strcpy(CONF.SOCKET_PATH, "/var/run/mmrelayd.sock");
        *CONF.RELAY_SMARTHOST = '\0';
        CONF.BANDWIDTH_IN = 0;
        CONF.BANDWIDTH_OUT = 0;
@@ -348,7 +348,7 @@ config_read(const char *file)
                return -1;
        }
 
-       if (mm_strcmp(CONF.DB_HOST, "localhost") == 0)
+       if (strcmp(CONF.DB_HOST, "localhost") == 0)
                db_host = NULL;
        else
                db_host = CONF.DB_HOST;
@@ -420,7 +420,7 @@ pidfile_write(const char *file)
 
        if ((fd = open(file, O_CREAT | O_TRUNC | O_WRONLY, 0600)) != -1) {
                (void) snprintf(str, 15, "%d\n", getpid());
-               (void) write(fd, str, mm_strlen(str));
+               (void) write(fd, str, strlen(str));
                (void) close(fd);
        } else
                syslog(LOG_NOTICE, "pidfile_write() - open(%s) - %s",
@@ -441,7 +441,7 @@ notify_open(const char *path, gid_t group)
 
        (void) unlink(path);
        if ((sock = socket(AF_LOCAL, SOCK_DGRAM, 0)) != -1) {
-               mm_strncpy(sau.sun_path, path, 100);
+               strncpy(sau.sun_path, path, 100);
                sau.sun_family = AF_UNIX;
                if (bind(sock, (struct sockaddr *)&sau,
                    sizeof(struct sockaddr_un)) != -1) {
index 84caa6e..f965fa2 100644 (file)
@@ -525,7 +525,7 @@ main(int argc, char **argv)
        pool_init(&hosts_pool, "hosts_pool", malloc, free, NULL, NULL,
                sizeof(hostnode), CONF.FLOOD_CACHE, 1, 1);
        hashtable_init(&hosts_table, "hosts_table", CONF.FLOOD_CACHE, 1,
-               malloc, free, mm_memcmp, mm_memhash32, false);
+               malloc, free, memcmp, mm_memhash32, false);
        pthread_create(&hosts_table_thread, &threadattr, hosts_expire_thread,
                       NULL);
     }
@@ -747,7 +747,7 @@ all_mail(clientenv *clenv)
     if (clenv->from == NULL) {
 
        valid = false;
-       if ((mm_strncasecmp(" FROM:<>", &clenv->buffer[4], 8)) == 0) {
+       if ((strncasecmp(" FROM:<>", &clenv->buffer[4], 8)) == 0) {
            /* Some systems use empty MAIL FROM like this, make sure
             * that IP address or hostname is allowed to do this.
             * If so, we also want to make sure not to perform any type
@@ -946,7 +946,7 @@ all_rcpt(clientenv *clenv)
            entry = clenv->c_hostname;
        else
            entry = clenv->c_ipaddr;
-       len = mm_strlen(entry);
+       len = strlen(entry);
 
        valid = true;
        pthread_mutex_lock(&hosts_lock);
@@ -955,7 +955,7 @@ all_rcpt(clientenv *clenv)
                == NULL) {
            /* Create a new entry */
            if ((hnod = (hostnode *)pool_alloc(&hosts_pool, false)) != NULL) {
-               mm_memcpy(hnod->host, entry, len + 1);
+               memcpy(hnod->host, entry, len + 1);
                LR_INIT(&hnod->lr, CONF.FLOOD_MESSAGES,
                        CONF.FLOOD_EXPIRES * 60, time(NULL));
                hashtable_link(&hosts_table, (hashnode_t *)hnod, entry,
@@ -1679,7 +1679,7 @@ validate_msg_line(char *line, ssize_t *len, int *res, void *udata)
        }
 
        /* Block some ad software which have identifyable Message-ID */
-       if (mm_strcmp(header, "MESSAGE-ID") == 0) {
+       if (strcmp(header, "MESSAGE-ID") == 0) {
            if (best_match(data, "*adehost*") != -1) {
                *res = CFDBRB_HEADER;
                return FDBRB_STOP;
@@ -1694,7 +1694,7 @@ validate_msg_line(char *line, ssize_t *len, int *res, void *udata)
         * Permit admin-supplied table to filter unwanted headers here.
         */
        /* Drop popular spam agent */
-       if (mm_strcmp(header, "X-MAILER") == 0) {
+       if (strcmp(header, "X-MAILER") == 0) {
            if (best_match(data, "*the*bat*") != -1) {
                *res = CFDBRB_HEADER;
                return FDBRB_STOP;
@@ -1702,7 +1702,7 @@ validate_msg_line(char *line, ssize_t *len, int *res, void *udata)
        }
        /* Drop html-only mail */
        /*
-       if (mm_strcmp(header, "CONTENT-TYPE") == 0) {
+       if (strcmp(header, "CONTENT-TYPE") == 0) {
            if (best_match(data, "*text/html*") != -1) {
                *res = CFDBRB_HEADER;
                return FDBRB_STOP;
@@ -1711,7 +1711,7 @@ validate_msg_line(char *line, ssize_t *len, int *res, void *udata)
        */
 
        /* Count number of Received: headers (SMTP hops) */
-       if (mm_strcmp(header, "RECEIVED") == 0) {
+       if (strcmp(header, "RECEIVED") == 0) {
            /* Drop PowerMTA(TM) processed wintendo mail */
            if (best_match(data, "*powermta*") != -1) {
                *res = CFDBRB_HEADER;
@@ -1735,26 +1735,26 @@ validate_msg_line(char *line, ssize_t *len, int *res, void *udata)
        /* Now verify for existance of headers we consider mandatory.
         * We'll create them if necessary.
         */
-       if (mm_strcmp(header, "MESSAGE-ID") == 0 && !ud->msgid) {
+       if (strcmp(header, "MESSAGE-ID") == 0 && !ud->msgid) {
            if ((ud->h_id = mmstrdup(data)) != NULL)
                ud->msgid = true;
 
-       } else if (mm_strcmp(header, "DATE") == 0 && !ud->date)
+       } else if (strcmp(header, "DATE") == 0 && !ud->date)
            ud->date = true;
 
-       else if (mm_strcmp(header, "FROM") == 0 && !ud->from) {
+       else if (strcmp(header, "FROM") == 0 && !ud->from) {
            if ((ud->h_from = mmstrdup(data)) != NULL)
                ud->from = true;
 
-       } else if (mm_strcmp(header, "TO") == 0 && !ud->to) {
+       } else if (strcmp(header, "TO") == 0 && !ud->to) {
            if ((ud->h_to = mmstrdup(data)) != NULL)
                ud->to = true;
 
-       } else if (mm_strcmp(header, "SUBJECT") == 0 && !ud->subject) {
+       } else if (strcmp(header, "SUBJECT") == 0 && !ud->subject) {
            if ((ud->h_subject = mmstrdup(data)) != NULL)
                ud->subject = true;
 
-       } else if (mm_strcmp(header, "IN-REPLY-TO") == 0 && !ud->inreply) {
+       } else if (strcmp(header, "IN-REPLY-TO") == 0 && !ud->inreply) {
            if ((ud->h_reply = mmstrdup(data)) != NULL)
                ud->inreply = true;
        }
@@ -1843,7 +1843,7 @@ endheader:
            if (cptr > tline) {
                *cptr++ = '\0';
                *len = cptr - tline;
-               mm_memcpy(line, tline, *len);
+               memcpy(line, tline, *len);
                (*len)--;
            }
        } else {
@@ -1979,14 +1979,14 @@ do_data_received(char *line, size_t len, clientenv *clenv, rcptnode *rnode,
            "\tfor <%s>; %s\r\n",
            (clenv->helo != NULL ? clenv->helo : "(unidentified)"),
            (clenv->c_hostname != NULL ? clenv->c_hostname : "(unresolved)"),
-           (mm_strchr(clenv->c_ipaddr, ':') != NULL ? "IPv6:" : ""),
+           (strchr(clenv->c_ipaddr, ':') != NULL ? "IPv6:" : ""),
            clenv->c_ipaddr,
            clenv->iface->hostname, DAEMON_VERSION,
            clenv->from,
            clenv->id, clenv->messages,
            rnode->foraddress, smtptime);
 
-    return mm_strlen(line);
+    return strlen(line);
 }
 
 
@@ -2009,9 +2009,9 @@ do_data_stats(clientenv *clenv, rcptnode *rnode, size_t len)
            rnode->address);
 
     /* And per-domain ones. The address was previously validated successfully
-     * and the '@' character is guarenteed to be present for mm_strchr().
+     * and the '@' character is guarenteed to be present for strchr().
      */
-    domptr = mm_strchr(rnode->address, '@');
+    domptr = strchr(rnode->address, '@');
     domptr++;
     mmstat(&clenv->pstat, STAT_UPDATE, 1, "mmmail|domain|%s|messages-in",
            domptr);
@@ -2132,13 +2132,10 @@ message_write(char *path, const char *recvline, size_t recvlen,
     char       filetime[16], *box = "relayqueue";
     int                i, fd;
     uint32_t   r;
-    bool       list = false;
 
     fd = -1;
-    if (rnode != NULL) {
+    if (rnode != NULL)
        box = rnode->address;
-       list = rnode->list;
-    }
 
     /* Make sure that directory exists, performing an mkdir(2) which will
      * fail if it already does.
index 55455e8..b50571c 100644 (file)
@@ -68,7 +68,7 @@
 
 /* DEFINITIONS */
 #define DAEMON_NAME    "mmsmtpd"
-#define DAEMON_VERSION "mmmail-0.3.7"
+#define DAEMON_VERSION "mmmail-0.4.0"
 
 /* Negative states are used by the state swapper, others are real states */
 #define STATE_ERROR    -3
index fe9850c..5491938 100644 (file)
@@ -1,5 +1,10 @@
 $Id: ChangeLog,v 1.21 2005/11/17 07:38:07 mmondor Exp $
 
+Release: mmstatd 0.1.0 devl
+Date   : August 13, 2016
+By     : Matthew Mondor
+
+* 64-bit re-porting
 
 
 Release: mmstatd 0.0.9 devl
index aa6611b..915fda7 100644 (file)
@@ -97,17 +97,17 @@ main(int argc, char **argv)
     setvbuf(stdout, NULL, 0, _IOFBF);
     setvbuf(stderr, NULL, 0, _IOFBF);
     if (argc >= 2) {
-       if (!mm_strcasecmp(argv[1], "report"))
+       if (!strcasecmp(argv[1], "report"))
            ret = stat_report(argc, argv);
-       else if (!mm_strcasecmp(argv[1], "hreport"))
+       else if (!strcasecmp(argv[1], "hreport"))
            ret = stat_hreport(argc, argv);
-       else if (!mm_strcasecmp(argv[1], "reset"))
+       else if (!strcasecmp(argv[1], "reset"))
            ret = stat_reset(argc, argv);
-       else if (!mm_strcasecmp(argv[1], "update"))
+       else if (!strcasecmp(argv[1], "update"))
            ret = stat_update(argc, argv);
-       else if (!mm_strcasecmp(argv[1], "delete"))
+       else if (!strcasecmp(argv[1], "delete"))
            ret = stat_delete(argc, argv);
-       else if (!mm_strcasecmp(argv[1], "rotate"))
+       else if (!strcasecmp(argv[1], "rotate"))
            ret = stat_rotate(argc, argv);
        else usage();
     } else usage();
@@ -162,7 +162,7 @@ int stat_report(int argc, char **argv)
                while ((ent = mmstat_nextres(res))) {
                    if ((entnod = (struct entnode *)pool_alloc(&pool,
                                    FALSE))) {
-                       mm_memcpy(&entnod->ent, ent, sizeof(mmstatent_t));
+                       memcpy(&entnod->ent, ent, sizeof(mmstatent_t));
                        DLIST_APPEND(&list, (node_t *)entnod);
                    } else
                        break;
@@ -177,7 +177,7 @@ int stat_report(int argc, char **argv)
                    printf("%c %d %ld %ld %lld %s\n",
                           ent->persistent ? 'p' : 'v', ent->uid,
                           (long)ent->created, (long)ent->modified,
-                          ent->value, ent->key);
+                          (long long)ent->value, ent->key);
                }
            } else {
                printf("Error connecting to mmstatd\n");
@@ -227,7 +227,7 @@ int stat_hreport(int argc, char **argv)
                while ((ent = mmstat_nextres(res))) {
                    if ((entnod = (struct entnode *)pool_alloc(&pool,
                                    FALSE))) {
-                       mm_memcpy(&entnod->ent, ent, sizeof(mmstatent_t));
+                       memcpy(&entnod->ent, ent, sizeof(mmstatent_t));
                        DLIST_APPEND(&list, (node_t *)entnod);
                    } else
                        break;
@@ -255,8 +255,8 @@ int stat_hreport(int argc, char **argv)
                    }
                    index[i] = NULL;
 
-                   (void) snprintf(fmt, 31, "%lld", max);
-                   i = mm_strlen(fmt) + 1;
+                   (void) snprintf(fmt, 31, "%lld", (long long)max);
+                   i = strlen(fmt) + 1;
                    (void) snprintf(fmt, 31, "%%%dlld %%s %%s\n", i);
 
                    qsort(index, DLIST_NODES(&list), sizeof(struct entnode *),
@@ -302,9 +302,9 @@ int stat_reset(int argc, char **argv)
     bool persistent = FALSE, autoflush = FALSE, ok = TRUE;
 
     if (argc > 3) {
-       if (mm_strchr(argv[2], 'p')) persistent = TRUE;
-       if (mm_strchr(argv[2], 'v')) persistent = FALSE;
-       if (mm_strchr(argv[2], 'a')) autoflush = TRUE;
+       if (strchr(argv[2], 'p')) persistent = TRUE;
+       if (strchr(argv[2], 'v')) persistent = FALSE;
+       if (strchr(argv[2], 'a')) autoflush = TRUE;
        if (mmstat_init(&mms, persistent, autoflush)) {
            mmstat_transact(&mms, TRUE);
            for (i = 3; i < argc; i++) {
@@ -340,9 +340,9 @@ stat_update(int argc, char **argv)
     bool persistent = FALSE, autoflush = FALSE, ok = TRUE;
 
     if (argc > 3) {
-       if (mm_strchr(argv[2], 'p')) persistent = TRUE;
-       if (mm_strchr(argv[2], 'v')) persistent = FALSE;
-       if (mm_strchr(argv[2], 'a')) autoflush = TRUE;
+       if (strchr(argv[2], 'p')) persistent = TRUE;
+       if (strchr(argv[2], 'v')) persistent = FALSE;
+       if (strchr(argv[2], 'a')) autoflush = TRUE;
        if (mmstat_init(&mms, persistent, autoflush)) {
            mmstat_transact(&mms, TRUE);
            for (i = 3; i < argc; i++) {
@@ -423,5 +423,5 @@ compar_entnode(const void *from, const void *to)
     const struct entnode **f = (const struct entnode **)from,
        **t = (const struct entnode **)to;
 
-    return (mm_strcmp((*f)->ent.key, (*t)->ent.key));
+    return (strcmp((*f)->ent.key, (*t)->ent.key));
 }
index 1c371d5..fdddace 100644 (file)
@@ -67,6 +67,7 @@
 #include <pwd.h>
 #include <grp.h>
 #include <errno.h>
+#include <string.h>
 
 #include <mmtypes.h>
 #include <mmpool.h>
@@ -563,7 +564,7 @@ logentry_process(struct log_entry *entry, bool tmp)
        for (ptr = entry->key; *ptr != '\0'; ptr++)
            if (*ptr == '?' || *ptr == '*')
                break;
-       len = mm_strlen(entry->key);
+       len = strlen(entry->key);
 
        if (*ptr == '\0') {     /* Operation on single key */
            struct key_node *knod;
@@ -609,7 +610,7 @@ logentry_process(struct log_entry *entry, bool tmp)
                        /* Create new entry */
                        if ((knod = (struct key_node *)pool_alloc(&key_pool,
                                        FALSE)) != NULL) {
-                           mm_memcpy(knod->entry.key, entry->key, len + 1);
+                           memcpy(knod->entry.key, entry->key, len + 1);
                            knod->entry.value = (type == STAT_UPDATE ?
                                entry->un.update.modifier :
                                entry->un.reset.value);
@@ -742,7 +743,7 @@ db_load(uint32_t *lognum, off_t *logpos)
                0, 0)) {
        if (hashtable_init(&key_table, "key_table", HT_DEFAULT_CAPACITY,
                    HT_DEFAULT_FACTOR, malloc, free,
-                   mm_memcmp, mm_memhash32, TRUE)) {
+                   memcmp, mm_memhash32, TRUE)) {
            if ((fh = fopen(filename, "rb")) != NULL) {
                /* We now remember how to load old mmstatd database files,
                 * since at times the format changes accross versions.
@@ -1382,7 +1383,7 @@ db_sync_iterator(hashnode_t *hnod, void *udata)
            return FALSE;
 
        /* Key name string size */
-       len = mm_strlen(knod->entry.key);
+       len = strlen(knod->entry.key);
        val32 = BYTEORDER_NETWORK32((uint32_t)len);
        if (fwrite(&val32, sizeof(uint32_t), 1, fh) != 1)
            return FALSE;
@@ -1422,14 +1423,12 @@ db_recover(void)
     int len, total;
     char filename[256];
     struct log_entry lentry[MAX_TRANSACT + 1];
-    bool ok;
 
     syslog(LOG_NOTICE, "Recovering last db modifications from logs");
 
     /* First obtain our last position in the last logfile so that we do not
      * process logs which have already been applied to the db before last sync.
      */
-    ok = FALSE;
     snprintf(filename, 255, "%s/%s", CONF.ENV_DIR, "mmstatd.db");
     db_load(&lognum, &logpos);
 
@@ -1497,7 +1496,7 @@ stats_write(int fd, const char *key)
            } else {
                /* Absolute key report request */
                if ((knod = (struct key_node *)hashtable_lookup(&key_table,
-                               key, mm_strlen(key) + 1)) != NULL) {
+                               key, strlen(key) + 1)) != NULL) {
                    if (pipesend)
                        write(fd, &knod->entry, sizeof(mmstatent_t));
                }
@@ -1573,19 +1572,19 @@ stats_rotate_iterator_process(hashnode_t *hnod, void *udata)
     if (knod->processed == FALSE && knod->entry.persistent &&
            log_match(knod->entry.key, data->pattern)) {
        knod->processed = TRUE;
-       mm_memcpy(data->okey, knod->entry.key, KEY_SIZE);
+       memcpy(data->okey, knod->entry.key, KEY_SIZE);
        hashtable_unlink(&key_table, (hashnode_t *)knod);
        snprintf(data->nkey, KEY_SIZE - 1, "%s%s", data->prefix,
                knod->entry.key);
-       mm_memcpy(knod->entry.key, data->nkey, KEY_SIZE);
+       memcpy(knod->entry.key, data->nkey, KEY_SIZE);
        if (!hashtable_link(&key_table, (hashnode_t *)knod, knod->entry.key,
-                   mm_strlen(data->nkey) + 1, TRUE)) {
+                   strlen(data->nkey) + 1, TRUE)) {
            /* Would cause a duplicate, restore entry */
            syslog(LOG_NOTICE, "stats_rotate() - Rename of key '%s' to '%s' \
 would cause a duplicate", data->okey, data->nkey);
-           mm_memcpy(knod->entry.key, data->okey, KEY_SIZE);
+           memcpy(knod->entry.key, data->okey, KEY_SIZE);
            hashtable_link(&key_table, (hashnode_t *)knod, knod->entry.key,
-                   mm_strlen(data->okey), FALSE);
+                   strlen(data->okey), FALSE);
        }
     }
 
@@ -1768,7 +1767,7 @@ librarian_init(void *args)
     if ((fd = open(CONF.PID_FILE, O_CREAT | O_TRUNC | O_WRONLY, 0600)) != -1) {
        char str[16];
        snprintf(str, 15, "%d", getpid());
-       write(fd, str, mm_strlen(str));
+       write(fd, str, strlen(str));
        close(fd);
     } else
        DEBUG_PRINTF("librarian_init", "Cannot write pid file");
@@ -2007,7 +2006,7 @@ logger_main(int pfd, int ufd, int lfd, uint32_t *lognum, off_t *logpos)
     entries = &(aentries[1]);
     mm_memclr(aentries, sizeof(struct log_entry));
     aentries->type = STAT_TRANSACT;
-    mm_memcpy(&(aentries[MAX_TRANSACT + 1]), aentries,
+    memcpy(&(aentries[MAX_TRANSACT + 1]), aentries,
            sizeof(struct log_entry));
     aentries->un.transact.begin = TRUE;
 
@@ -2066,7 +2065,7 @@ logger_main(int pfd, int ufd, int lfd, uint32_t *lognum, off_t *logpos)
                        } else {
                            t = len / sizeof(struct log_entry);
                            if (t < MAX_TRANSACT)
-                               mm_memcpy(&entries[t],
+                               memcpy(&entries[t],
                                        &aentries[MAX_TRANSACT + 1],
                                        sizeof(struct log_entry));
                            t += 2;
index 3efb4e6..b103008 100644 (file)
@@ -53,7 +53,7 @@
 
 
 #define DAEMON_NAME    "mmstatd"
-#define DAEMON_VERSION "0.0.10/mmondor"
+#define DAEMON_VERSION "0.1.0/mmondor"