Comment 1 for bug 203898

Revision history for this message
Jamie Strandboge (jdstrand) wrote :

Using hard links instead of symlinks is reasonable based on server/slapd.main.c:

static struct {
        char *name;
        MainFunc *func;
} tools[] = {
        {"slapadd", slapadd},
        {"slapcat", slapcat},
        {"slapdn", slapdn},
        {"slapindex", slapindex},
        {"slappasswd", slappasswd},
        {"slaptest", slaptest},
        {"slapauth", slapauth},
        {"slapacl", slapacl},
        /* NOTE: new tools must be added in chronological order,
         * not in alphabetical order, because for backwards
         * compatibility name[4] is used to identify the
         * tools; so name[4]=='a' must refer to "slapadd" and
         * not to "slapauth". Alphabetical order can be used
         * for tools whose name[4] is not used yet */
        {NULL, NULL}
};
...
        serverName = lutil_progname( "slapd", argc, argv );

        if ( strcmp( serverName, "slapd" ) ) {
                for (i=0; tools[i].name; i++) {
                        if ( !strcmp( serverName, tools[i].name ) ) {
                                rc = tools[i].func(argc, argv);
                                MAIN_RETURN(rc);
                        }
                }
        }
...

lutil_progname() simply grabs argv[0] and returns it. Based on the above, slapd doesn't care if they are hardlinks or symlinks.