checkpoint
authorThomas Walker Lynch <thomas.lynch@reasoningtechnology.com>
Mon, 11 Mar 2019 00:32:08 +0000 (01:32 +0100)
committerThomas Walker Lynch <thomas.lynch@reasoningtechnology.com>
Mon, 11 Mar 2019 00:32:08 +0000 (01:32 +0100)
src/5_scratch/subu-config.lib.h
src/5_scratch/subu-get.cli.h
src/5_scratch/subu-mk-0.cli.h
src/5_scratch/subu-number.cli.h
src/5_scratch/subu-rm.cli.h [new file with mode: 0644]
src/5_scratch/subu.lib.h
src/subu-config.lib.c
src/subu-number.cli.c
src/subu.lib.c

index 873991f..482d289 100644 (file)
@@ -1,9 +1,12 @@
 /* \aThis file was automatically generated.  Do not edit! */
 #undef INTERFACE
 #include <sqlite3.h>
+int subu_rm_masteru_subu(sqlite3 *db,char *masteru_name,char *subuname,char *subu_username);
 int subu_get_masteru_subu(sqlite3 *db,char *masteru_name,char *subuname,char **subu_username);
 int subu_put_masteru_subu(sqlite3 *db,char *masteru_name,char *subuname,char *subu_username);
-int subu_number_get(sqlite3 *db,char **nsp,char **errmsg);
+int subu_number_set(sqlite3 *db,int n);
+int subu_number_get(sqlite3 *db,int *n);
+int subu_number_next(sqlite3 *db,char **nsp,char **mess);
 typedef unsigned int uint;
 int schema(sqlite3 *db,uint max_subu_number);
 #define ERR_CONFIG_FILE 1
index 5944685..163709f 100644 (file)
@@ -1,6 +1,6 @@
 /* \aThis file was automatically generated.  Do not edit! */
 #undef INTERFACE
 #include <sqlite3.h>
-int subu_get_masteru_subu(sqlite3 *db,char *masteru_name,char *subuname,char **subu_username);
+int subu_put_masteru_subu(sqlite3 *db,char *masteru_name,char *subuname,char *subu_username);
 #define ERR_CONFIG_FILE 1
 extern char Config_File[];
index 165741f..56f6cf6 100644 (file)
@@ -7,4 +7,4 @@ void subu_err(char *fname,int err,char *mess);
 int subu_mk_0(char **mess,sqlite3 *db,char *subuname);
 #define SUBU_ERR_CONFIG_FILE 8
 extern char Config_File[];
-#define SUBU_ERR_ARG_CNT 2
+#define SUBU_ERR_ARG_CNT 1
index 2e2e6fd..ac69056 100644 (file)
@@ -1,6 +1,11 @@
 /* \aThis file was automatically generated.  Do not edit! */
 #undef INTERFACE
 #include <sqlite3.h>
-int subu_number_get(sqlite3 *db,char **nsp,char **errmsg);
-#define ERR_CONFIG_FILE 1
+int subu_number_get(sqlite3 *db,int *n);
+int subu_number_set(sqlite3 *db,int n);
+#include <stdbool.h>
+#include <errno.h>
+#define SUBU_ERR_N 14
+#define SUBU_ERR_CONFIG_FILE 8
 extern char Config_File[];
+#define SUBU_ERR_ARG_CNT 1
diff --git a/src/5_scratch/subu-rm.cli.h b/src/5_scratch/subu-rm.cli.h
new file mode 100644 (file)
index 0000000..163709f
--- /dev/null
@@ -0,0 +1,6 @@
+/* \aThis file was automatically generated.  Do not edit! */
+#undef INTERFACE
+#include <sqlite3.h>
+int subu_put_masteru_subu(sqlite3 *db,char *masteru_name,char *subuname,char *subu_username);
+#define ERR_CONFIG_FILE 1
+extern char Config_File[];
index aa24bbc..199daab 100644 (file)
@@ -1,6 +1,11 @@
 /* \aThis file was automatically generated.  Do not edit! */
 #undef INTERFACE
 #include <sqlite3.h>
+int subu_rm_masteru_subu(sqlite3 *db,char *masteru_name,char *subuname,char *subu_username);
+int subu_get_masteru_subu(sqlite3 *db,char *masteru_name,char *subuname,char **subu_username);
+#include <stdbool.h>
+#include <errno.h>
+int subu_rm_0(char **mess,sqlite3 *db,char *subuname);
 int subu_put_masteru_subu(sqlite3 *db,char *masteru_name,char *subuname,char *subu_username);
 #include <sys/types.h>
 #include <unistd.h>
@@ -10,25 +15,27 @@ void dispatch_f_mess(char *fname,int err,char *dispatchee);
 #define ERR_DISPATCH -1024
 int dispatch_f_euid_egid(char *fname,int(*f)(void *arg),void *f_arg,uid_t euid,gid_t egid);
 int dbprintf(const char *format,...);
-#include <stdbool.h>
-#include <errno.h>
 int subu_mk_0(char **mess,sqlite3 *db,char *subuname);
 extern char Subuland_Extension[];
-int subu_number_get(sqlite3 *db,char **nsp,char **errmsg);
+int subu_number_next(sqlite3 *db,char **nsp,char **mess);
 typedef unsigned int uint;
 extern uint Subuhome_Perms;
 extern char Config_File[];
 void subu_err(char *fname,int err,char *mess);
+#define SUBU_ERR_N 14
+#define SUBU_ERR_CONFIG_SUBU_NOT_FOUND 13
+#define SUBU_ERR_FAILED_USERDEL 12
 #define SUBU_ERR_FAILED_USERADD 11
 #define SUBU_ERR_BUG_SSS 10
 #define SUBU_ERR_SUBUHOME_EXISTS 9
 #define SUBU_ERR_CONFIG_FILE 8
 #define SUBU_ERR_MASTERU_HOMELESS 7
-#define SUBU_ERR_SUBUNAME_MALFORMED 5
-#define SUBU_ERR_RMDIR_SUBUHOME 4
-#define SUBU_ERR_MKDIR_SUBUHOME 3
-#define SUBU_ERR_MALLOC 1
-#define SUBU_ERR_SETUID_ROOT 6
-#define SUBU_ERR_ARG_CNT 2
+#define SUBU_ERR_SUBUNAME_MALFORMED 6
+#define SUBU_ERR_RMDIR_SUBUHOME 5
+#define SUBU_ERR_MKDIR_SUBUHOME 4
+#define SUBU_ERR_MALLOC 3
+#define SUBU_ERR_SETUID_ROOT 2
+#define SUBU_ERR_ARG_CNT 1
+char *userdel_mess(int err);
 char *useradd_mess(int err);
 #define INTERFACE 0
index 1fc26eb..f459174 100644 (file)
@@ -68,7 +68,7 @@ int subu_number_next(sqlite3 *db, char **nsp, char **mess){
   return rc;
 }
 int subu_number_get(sqlite3 *db, int *n){
-  char *sql = "SELECT value FROM Key_Int WHERE key = 'max_subu_number';"
+  char *sql = "SELECT value FROM Key_Int WHERE key = 'max_subu_number';";
   sqlite3_stmt *stmt;
   sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
   int rc = sqlite3_step(stmt);
@@ -83,11 +83,12 @@ int subu_number_get(sqlite3 *db, int *n){
   return rc;
 }
 int subu_number_set(sqlite3 *db, int n){
-  char *sql = "UPDATE Key_Int SET value = ?1 WHERE key = 'max_subu_number';"
+  char *sql = "UPDATE Key_Int SET value = ?1 WHERE key = 'max_subu_number';";
   sqlite3_stmt *stmt;
   sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
   sqlite3_bind_int(stmt, 1, n);
   int rc = sqlite3_step(stmt);
+  sqlite3_finalize(stmt);
   return rc;
 }
 
@@ -138,7 +139,7 @@ int subu_rm_masteru_subu(sqlite3 *db, char *masteru_name, char *subuname, char *
   if( rc != SQLITE_OK ) return rc;
   sqlite3_bind_text(stmt, 1, masteru_name, -1, SQLITE_STATIC);
   sqlite3_bind_text(stmt, 2, subuname, -1, SQLITE_STATIC);
-  sqlite3_bind_text(stmt, 3, sub_username, -1, SQLITE_STATIC);
+  sqlite3_bind_text(stmt, 3, subu_username, -1, SQLITE_STATIC);
   rc = sqlite3_step(stmt);
   sqlite3_finalize(stmt);
   return rc;
index 10a80c2..c4690e4 100644 (file)
@@ -5,6 +5,7 @@ Set or get a new maximum subu number. Currently doesn't do the setting part.
 #include "subu-number.cli.h"
 #include <stdio.h>
 #include <stdlib.h>
+#include <limits.h>
 
 int main(int argc, char **argv){
 
@@ -24,7 +25,7 @@ int main(int argc, char **argv){
 
   // then arg[1] holds a number to set the max to
   if(argc == 2){ 
-    long int i = strlol(argc[1], NULL, 10);
+    long int i = strtol(argv[1], NULL, 10);
     if( i < 0 ){
       fprintf(stderr, "n must be positive\n");
       sqlite3_close(db);
@@ -40,16 +41,17 @@ int main(int argc, char **argv){
   }
 
   // read and print the current max
-  char *n;
+  int n;
   rc = subu_number_get(db, &n);
   if( rc == SQLITE_DONE ){
-    printf("%s\n", n);
+    printf("%d\n", n);
   }else{
     sqlite3_close(db);
     return SUBU_ERR_CONFIG_FILE;
   }
-  if( sqlite3_close(db) != SQLITE_OK ){
-    fprintf(stderr, "error exit, strange, we could not close the configuration file\n");
+  rc = sqlite3_close(db);
+  if( rc != SQLITE_OK ){
+    fprintf(stderr, "when closing db, %s\n", sqlite3_errmsg(db));
     return SUBU_ERR_CONFIG_FILE;
   }    
   return 0;
index 6574d89..03c248b 100644 (file)
@@ -474,11 +474,10 @@ int subu_rm_0(char **mess, sqlite3 *db, char *subuname){
   dbprintf("remove the masteru_name, subuname, subu_username relation\n");
   #endif
   {
-    int ret = subu_rm_masteru_subu(db, masteru_name, subuname, ctxp->subu_username);
+    int ret = subu_rm_masteru_subu(db, masteru_name, subuname, subu_username);
     if( ret != SQLITE_DONE ){
-      ctxp->err = SUBU_ERR_RM_0_CONFIG_FILE;
-      ctxp->aux = "insert of masteru subu relation failed";
-      return ctxp;
+      if(mess)*mess = strdup("removal of masteru subu relation failed");
+      RETURN(SUBU_ERR_CONFIG_FILE);
     }
   }
 
@@ -490,7 +489,7 @@ int subu_rm_0(char **mess, sqlite3 *db, char *subuname){
     #ifdef DEBUG
     dbprintf("as masteru, removing the directory \"%s\"\n", subuhome);
     #endif
-    int dispatch_err_rmdir = dispatch_f_euid_egid
+    int dispatch_err = dispatch_f_euid_egid
       (
        "masteru_rmdir_subuhome", 
        masteru_rmdir_subuhome, 
@@ -518,7 +517,7 @@ int subu_rm_0(char **mess, sqlite3 *db, char *subuname){
         dbprintf("setting inherited real uid to 0 to accomodate SSS_CACHE UID BUG\n");
       #endif
       if( setuid(0) == -1 ){
-        ret = SUBU_ERR_RM_0_BUG_SSS;
+        ret = SUBU_ERR_BUG_SSS;
         RETURN(ret);
       }
     #endif
@@ -543,9 +542,8 @@ int subu_rm_0(char **mess, sqlite3 *db, char *subuname){
   }  
 
   #ifdef DEBUG
-  dbprintf("finished subu-mk-0(%s)\n", subuname);
+  dbprintf("finished subu-rm-0(%s)\n", subuname);
   #endif
-  ctxp->err = 0;
-  return ctxp;
+  RETURN(0);
 }
-#endif
+