]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - command.c
command_util: Write array definition in header mode.
[paraslash.git] / command.c
index 2cac57f90637f8aa42635700a58b77a688b3ff5d..e051aae4e627ac1b3ef5f30581700cb9af432928 100644 (file)
--- a/command.c
+++ b/command.c
@@ -36,6 +36,9 @@
 #include "signal.h"
 #include "version.h"
 
+struct server_command afs_cmds[] = {DEFINE_AFS_CMD_ARRAY};
+struct server_command server_cmds[] = {DEFINE_SERVER_CMD_ARRAY};
+
 /** Commands including options must be shorter than this. */
 #define MAX_COMMAND_LEN 32768
 
@@ -1107,19 +1110,17 @@ net_err:
 out:
        free(buf);
        free(command);
-       sc_free(cc->scc.recv);
-       sc_free(cc->scc.send);
        mutex_lock(mmd_mutex);
        if (cc->cmd && (cc->cmd->perms & AFS_WRITE) && ret >= 0)
                mmd->events++;
        mmd->active_connections--;
        mutex_unlock(mmd_mutex);
-       if (ret < 0)
-               exit(EXIT_FAILURE);
-       if (!cc->use_sideband)
-               exit(EXIT_SUCCESS);
-       ret = send_sb(&cc->scc, NULL, 0, SBD_EXIT__SUCCESS, true);
-       if (ret < 0)
-               PARA_NOTICE_LOG("%s\n", para_strerror(-ret));
+       if (ret >= 0 && cc->use_sideband) {
+               ret = send_sb(&cc->scc, NULL, 0, SBD_EXIT__SUCCESS, true);
+               if (ret < 0)
+                       PARA_NOTICE_LOG("%s\n", para_strerror(-ret));
+       }
+       sc_free(cc->scc.recv);
+       sc_free(cc->scc.send);
        exit(ret < 0? EXIT_FAILURE : EXIT_SUCCESS);
 }