[27541] in Source-Commits

home help back first fref pref prev next nref lref last post

moira commit: Re-snapshot moira at r4149 (Trac: #1420)

daemon@ATHENA.MIT.EDU (Jonathan D Reed)
Tue Dec 10 10:21:23 2013

Date: Tue, 10 Dec 2013 10:21:15 -0500
From: Jonathan D Reed <jdreed@MIT.EDU>
Message-Id: <201312101521.rBAFLFuR016218@drugstore.mit.edu>
To: source-commits@MIT.EDU

https://github.com/mit-athena/moira/commit/0496574f6de6e526047a4a272eb077840e26219e
commit 0496574f6de6e526047a4a272eb077840e26219e
Author: Jonathan Reed <jdreed@mit.edu>
Date:   Tue Dec 10 10:11:35 2013 -0500

    Re-snapshot moira at r4149 (Trac: #1420)
    
    Re-import moira to bring in latest fixes, including the fix for
    update_filesys in r4145

 afssync/pt_util.c         |   38 ++++++++++++++++++++++++++++++++++++--
 backup/db2bkup.awk        |    4 ++--
 backup/db2rest.awk        |    4 ++--
 clients/moira/attach.c    |   10 +++++-----
 clients/mrtest/qy         |   14 ++++++++++++++
 clients/stanley/stanley.c |    6 +++---
 debian/changelog          |    6 ++++++
 incremental/afs/afs.c     |   38 +++++++++++++++++++++-----------------
 lib/mr_connect.c          |    7 +++++--
 regtape/common.pc         |    6 +++---
 server/mr_main.c          |    7 ++++---
 server/mr_server.h        |    4 ++--
 server/qaccess.pc         |   13 +++++++++----
 server/qrtn.h             |    4 ++--
 14 files changed, 114 insertions(+), 47 deletions(-)

diff --git a/afssync/pt_util.c b/afssync/pt_util.c
index 09371e1..125d6fc 100644
--- a/afssync/pt_util.c
+++ b/afssync/pt_util.c
@@ -861,10 +861,27 @@ int print_id(int id)
 	case 128906:
 	case 130756:
 	case 130781:
+	case 132835:
+	case 137739:
+	case 139937:
+	case 140868:
+	case 141877:
+	case 147840:
+	case 156318:
+	case 164606:
+	case 164607:
+	case 164608:
+	case 196291:
+	case 196317:
+	case 203275:
+	case 230142:
+	case 230143:
+	case 261827:
+	case 261853:
 	  return 0;
 	  break;
 	}
-      if (id > -131073 && id < 131073)
+      if (id > -262145 && id < 262145)
 	return 1;
       else
 	return 0;
@@ -1185,10 +1202,27 @@ int print_id(int id)
 	case 128906:
 	case 130756:
 	case 130781:
+	case 132835:
+	case 137739:
+	case 139937:
+	case 140868:
+	case 141877:
+	case 147840:
+	case 156318:
+	case 164606:
+	case 164607:
+	case 164608:
+	case 196291:
+	case 196317:
+	case 203275:
+	case 230142:
+	case 230143:
+	case 261827:
+	case 261853:
 	  return 1;
 	  break;
 	}
-      if (id < -131072 || id > 131072)
+      if (id < -262144 || id > 262144)
 	return 1;
       else
 	return 0;
diff --git a/backup/db2bkup.awk b/backup/db2bkup.awk
index 4c27a64..6b10e9b 100644
--- a/backup/db2bkup.awk
+++ b/backup/db2bkup.awk
@@ -1,4 +1,4 @@
-#	$Id: db2bkup.awk 3956 2010-01-05 20:56:56Z zacheiss $
+#	$Id: db2bkup.awk 4140 2013-09-06 00:04:24Z zacheiss $
 #
 #	This converts the file used to originally create the database
 #	into a program to back it up.
@@ -56,7 +56,7 @@ NF>=2 {
 			vtype[count]="str";
 		}
 		vsize[count] = temp2[1]+1;
-	} else if ($2 ~ /DATE/) {
+	} else if ($2 ~ /DATE/ || $2 ~ /TIMESTAMP/) {
 		printf "  char\tt_%s[26];\n", vname[count];
 		vtype[count]="date";
 	} else printf "Unknown data type %s\n", $2;
diff --git a/backup/db2rest.awk b/backup/db2rest.awk
index c7d65a7..c9b6bcc 100644
--- a/backup/db2rest.awk
+++ b/backup/db2rest.awk
@@ -1,4 +1,4 @@
-#	$Id: db2rest.awk 3956 2010-01-05 20:56:56Z zacheiss $
+#	$Id: db2rest.awk 4140 2013-09-06 00:04:24Z zacheiss $
 #
 #	This converts the file used to originally create the database
 #	into a program to restore it from a backup.
@@ -55,7 +55,7 @@ NF >= 2 {
 			printf "  EXEC SQL VAR t_%s IS STRING(%d);\n", vname[count], temp2[1]+1;
 		} else vtype[count]="str";
 		vsize[count] = temp2[1]+1;
-	} else if ($2 ~ /DATE/) {
+	} else if ($2 ~ /DATE/ || $2 ~ /TIMESTAMP/) {
 		printf "  char\tt_%s[26];\n", vname[count];
 		vtype[count]="date";
 	} else printf "Unknown data type %s\n", $2;
diff --git a/clients/moira/attach.c b/clients/moira/attach.c
index 7f23ebb..e4a137c 100644
--- a/clients/moira/attach.c
+++ b/clients/moira/attach.c
@@ -1,4 +1,4 @@
-/* $Id: attach.c 4116 2013-06-11 19:24:17Z zacheiss $
+/* $Id: attach.c 4145 2013-09-25 00:20:53Z zacheiss $
  *
  *	This is the file attach.c for the Moira Client, which allows users
  *      to quickly and easily maintain most parts of the Moira database.
@@ -32,7 +32,7 @@
 #include <unistd.h>
 #endif /* HAVE_UNISTD_H */
 
-RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/clients/moira/attach.c $ $Id: attach.c 4116 2013-06-11 19:24:17Z zacheiss $");
+RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/clients/moira/attach.c $ $Id: attach.c 4145 2013-09-25 00:20:53Z zacheiss $");
 
 char *canonicalize_cell(char *c);
 int GetAliasValue(int argc, char **argv, void *retval);
@@ -462,10 +462,10 @@ static char **AskFSInfo(char **info, Bool name)
 		  sprintf(temp_buf, "/afs/%s/%s/%s", info[FS_MACHINE],
 			  lowercase(info[FS_L_TYPE]), info[FS_NAME]);
 		}
-	    }
-
-	  info[FS_PACK] = strdup(temp_buf);
 
+	      info[FS_PACK] = strdup(temp_buf);
+	    }
+	  
 	} 
       else if (!strcasecmp(info[FS_TYPE], "NFS"))
 	{
diff --git a/clients/mrtest/qy b/clients/mrtest/qy
index d7e3fd3..b487f78 100755
--- a/clients/mrtest/qy
+++ b/clients/mrtest/qy
@@ -5,6 +5,7 @@
 
 use IPC::Open2;
 use FileHandle;
+use Socket;
 # use vars qw( @connect @auth @query $debug $align );
 # use vars qw( $mrtest @help @argl @retl @fields @qret $i );
 # use strict;
@@ -152,6 +153,19 @@ if ($query[0] eq "ghst" || $query[0] eq "get_host") {
     if ($name) { $query[1] = $name; }
 }
 
+if ($query[0] eq "asnt" || $query[0] eq "add_subnet" || $query[0] eq "usnt" || $query[0] eq "update_subnet") {
+    my ($decimal_form, $idx);
+    $idx = 0;
+    if ($query[0] eq "usnt" || $query[0] eq "update_subnet") { $idx = 1 };
+    foreach $arg (6..9) {
+	$decimal_form = unpack('N', inet_aton($query[$arg + $idx]));
+	if ($decimal_form) { 
+	    $decimal_form -= 2**32 if $decimal_form >= 2**31;
+	    $query[$arg + $idx] = $decimal_form;
+	}
+    }
+}
+
 # send the query to the Moira server
 @qret = command "qy @query";
 (pop(@qret) =~ /^\d+ tuple/) || die "Unexpected last line from 'qy @query'";
diff --git a/clients/stanley/stanley.c b/clients/stanley/stanley.c
index 2cb60ce..60872ca 100644
--- a/clients/stanley/stanley.c
+++ b/clients/stanley/stanley.c
@@ -1,4 +1,4 @@
-/* $Id: stanley.c 4133 2013-08-22 20:57:48Z zacheiss $
+/* $Id: stanley.c 4144 2013-09-23 13:23:01Z zacheiss $
  *
  * Command line oriented Moira users tool.
  *
@@ -22,7 +22,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/clients/stanley/stanley.c $ $Id: stanley.c 4133 2013-08-22 20:57:48Z zacheiss $");
+RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/clients/stanley/stanley.c $ $Id: stanley.c 4144 2013-09-23 13:23:01Z zacheiss $");
 
 struct owner_type {
   int type;
@@ -347,7 +347,7 @@ int main(int argc, char **argv)
   /* Maybe our 'username' is actually an MIT ID number.
    *  If so, resolve it into a username.
    */
-  if ((!info_flag) && (strlen(username) > 8) && (atoi(username) != 0))
+  if ((!info_flag) && (username != NULL && strlen(username) > 8) && (atoi(username) != 0))
     {
       char *argv[27];
       char *args[1];
diff --git a/debian/changelog b/debian/changelog
index 2791a22..7327bdf 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+debathena-moira (4.0.0-r4149-0debathena1) unstable; urgency=low
+
+  * Snapshot moira at r4149 to pick up changes (Trac: #1420)
+
+ -- Jonathan Reed <jdreed@mit.edu>  Tue, 10 Dec 2013 10:09:17 -0500
+
 debathena-moira (4.0.0-r4138-0debathena2) unstable; urgency=low
 
   * Actually ship qy
diff --git a/incremental/afs/afs.c b/incremental/afs/afs.c
index 7383dd8..1aa1a41 100644
--- a/incremental/afs/afs.c
+++ b/incremental/afs/afs.c
@@ -1,4 +1,4 @@
-/* $Id: afs.c 4113 2013-05-28 14:29:10Z zacheiss $
+/* $Id: afs.c 4143 2013-09-20 23:37:06Z zacheiss $
  *
  * Do AFS incremental updates
  *
@@ -43,7 +43,7 @@
 #define STOP_FILE "/moira/afs/noafs"
 #define file_exists(file) (access((file), F_OK) == 0)
 
-RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/incremental/afs/afs.c $ $Id: afs.c 4113 2013-05-28 14:29:10Z zacheiss $");
+RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/incremental/afs/afs.c $ $Id: afs.c 4143 2013-09-20 23:37:06Z zacheiss $");
 
 char *whoami;
 
@@ -630,21 +630,25 @@ void edit_group(int op, char *group, char *type, char *member)
 
   if (!strcmp(type, "KERBEROS"))
     {
-      /* AFS still uses a v4-style namespace, so convert. */
-      code = krb5_parse_name(context, member, &client);
-      if (code)
-	goto out;
-
-      code = krb5_524_conv_principal(context, client, name, inst, realm);
-      if (code)
-	goto out;
-
-      strcpy(canon_member, mr_kname_unparse(name, inst, realm));
-      member = canon_member;
-
-      p = strchr(member, '@');
-      if (p && !strcasecmp(p+1, local_realm))
-	*p = 0;
+      /* Check if we've been handed an IPv4 address and don't mangle it. */
+      if (inet_addr(member) == INADDR_NONE)
+	{
+	  /* AFS still uses a v4-style namespace, so convert. */
+	  code = krb5_parse_name(context, member, &client);
+	  if (code)
+	    goto out;
+	  
+	  code = krb5_524_conv_principal(context, client, name, inst, realm);
+	  if (code)
+	    goto out;
+	  
+	  strcpy(canon_member, mr_kname_unparse(name, inst, realm));
+	  member = canon_member;
+	  
+	  p = strchr(member, '@');
+	  if (p && !strcasecmp(p+1, local_realm))
+	    *p = 0;
+	}
     }
   else if (strcmp(type, "USER"))
     return;					/* invalid type */
diff --git a/lib/mr_connect.c b/lib/mr_connect.c
index fb7831e..083bd0d 100644
--- a/lib/mr_connect.c
+++ b/lib/mr_connect.c
@@ -1,4 +1,4 @@
-/* $Id: mr_connect.c 4101 2013-03-06 16:37:24Z zacheiss $
+/* $Id: mr_connect.c 4141 2013-09-06 00:04:58Z zacheiss $
  *
  * This routine is part of the client library.  It handles
  * creating a connection to the moira server.
@@ -46,7 +46,7 @@
 struct hostent * WINAPI rgethostbyname(char *name);
 #endif
 
-RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/lib/mr_connect.c $ $Id: mr_connect.c 4101 2013-03-06 16:37:24Z zacheiss $");
+RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/lib/mr_connect.c $ $Id: mr_connect.c 4141 2013-09-06 00:04:58Z zacheiss $");
 
 #define DEFAULT_SERV "moira_db"
 #define DEFAULT_PORT 775
@@ -424,6 +424,7 @@ int mr_cont_accept(int conn, char **buf, int *nread)
 	{
 	  closesocket(conn);
 	  free(*buf);
+	  *buf = NULL;
 	  return 0;
 	}
       break;
@@ -438,11 +439,13 @@ int mr_cont_accept(int conn, char **buf, int *nread)
     {
       closesocket(conn);
       free(*buf);
+      *buf = NULL;
       return 0;
     }
 
   /* good enough */
   free(*buf);
+  *buf = NULL;
 
   if (send(conn, response, sizeof(response), 0) != sizeof(response))
     {
diff --git a/regtape/common.pc b/regtape/common.pc
index d0d0f5a..e7275df 100644
--- a/regtape/common.pc
+++ b/regtape/common.pc
@@ -1,4 +1,4 @@
-/* $Id: common.pc 4111 2013-05-22 20:26:51Z zacheiss $
+/* $Id: common.pc 4151 2013-12-04 14:32:04Z zacheiss $
  *
  * Staff/Student load common code
  *
@@ -20,7 +20,7 @@
 EXEC SQL INCLUDE sqlca;
 extern void sqlglm(char *, unsigned int *, unsigned int *);
 
-RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/regtape/common.pc $ $Id: common.pc 4111 2013-05-22 20:26:51Z zacheiss $");
+RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/regtape/common.pc $ $Id: common.pc 4151 2013-12-04 14:32:04Z zacheiss $");
 
 EXEC SQL BEGIN DECLARE SECTION;
 extern char *prog;
@@ -30,7 +30,7 @@ EXEC SQL END DECLARE SECTION;
 extern char *whoami;
 
 #define MIN_ID_VALUE 100
-#define MAX_ID_VALUE 131072
+#define MAX_ID_VALUE 262144
 
 /* Remove non-digits from a phone number. */
 void fixphone(char *phone)
diff --git a/server/mr_main.c b/server/mr_main.c
index 09c7d8b..ec9ddca 100644
--- a/server/mr_main.c
+++ b/server/mr_main.c
@@ -1,4 +1,4 @@
-/* $Id: mr_main.c 4127 2013-08-05 12:54:39Z zacheiss $
+/* $Id: mr_main.c 4142 2013-09-06 00:05:11Z zacheiss $
  *
  * Moira server process.
  *
@@ -33,7 +33,7 @@
 #endif
 #include <krb5.h>
 
-RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/server/mr_main.c $ $Id: mr_main.c 4127 2013-08-05 12:54:39Z zacheiss $");
+RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/server/mr_main.c $ $Id: mr_main.c 4142 2013-09-06 00:05:11Z zacheiss $");
 
 client *cur_client;
 
@@ -364,7 +364,8 @@ int main(int argc, char **argv)
 	      FD_CLR(clients[i]->con, &xwritefds);
 	      free_rtn_tuples(clients[i]);
 	      free(clients[i]->tuples);
-	      free(clients[i]->hsbuf);
+	      if (clients[i]->hsbuf)
+		free(clients[i]->hsbuf);
 	      old = clients[i];
 	      clients[i] = clients[--nclients];
 	      free(old);
diff --git a/server/mr_server.h b/server/mr_server.h
index cb7694b..525c531 100644
--- a/server/mr_server.h
+++ b/server/mr_server.h
@@ -1,4 +1,4 @@
-/* $Id: mr_server.h 4127 2013-08-05 12:54:39Z zacheiss $
+/* $Id: mr_server.h 4148 2013-10-28 14:36:29Z zacheiss $
  *
  * Copyright (C) 1987-1998 by the Massachusetts Institute of Technology
  * For copying and distribution information, please see the file
@@ -67,7 +67,7 @@ extern char *krb_realm;
 extern int newqueries;
 
 /* Maximum and minimum values that will be used for uids and gids */
-#define MAX_ID_VALUE	131072
+#define MAX_ID_VALUE	262144
 #define MIN_ID_VALUE	100
 
 /* Sleepy states for the server! */
diff --git a/server/qaccess.pc b/server/qaccess.pc
index 1ba8a44..812d817 100644
--- a/server/qaccess.pc
+++ b/server/qaccess.pc
@@ -1,4 +1,4 @@
-/* $Id: qaccess.pc 4110 2013-05-09 15:43:17Z zacheiss $
+/* $Id: qaccess.pc 4149 2013-11-15 00:20:53Z zacheiss $
  *
  * Check access to queries
  *
@@ -25,7 +25,7 @@
 
 EXEC SQL INCLUDE sqlca;
 
-RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/server/qaccess.pc $ $Id: qaccess.pc 4110 2013-05-09 15:43:17Z zacheiss $");
+RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/server/qaccess.pc $ $Id: qaccess.pc 4149 2013-11-15 00:20:53Z zacheiss $");
 
 extern char *whoami;
 extern int dbms_errno, mr_errcode;
@@ -267,7 +267,12 @@ int access_list(struct query *q, char *argv[], client *cl)
        */
       if (!strncasecmp(newname, "owner-", 6))
 	return MR_RESERVED;
-      
+
+      /* Don't allow new lists to end with .service or -service */
+      if (!strncasecmp(&newname[strlen(newname)-8], ".service", 8) ||
+         !strncasecmp(&newname[strlen(newname)-8], "-service", 8))
+       return MR_RESERVED;
+
       EXEC SQL SELECT users_id INTO :users_id FROM users
 	WHERE login = :newname;
       if ((sqlca.sqlcode != SQL_NO_MATCH) && strcmp(strtrim(name), newname) &&
@@ -856,7 +861,7 @@ int access_hwaddr(struct query *q, char *argv[], client *cl)
 
   id = *(int *)argv[0];
   
-  EXEC SQL SELECT count(name) INTO :cnt from hwaddrmap WHERE mach_id = :id;
+  EXEC SQL SELECT count(hwaddr) INTO :cnt from hwaddrmap WHERE mach_id = :id;
   if (dbms_errno)
     return mr_errcode;
 
diff --git a/server/qrtn.h b/server/qrtn.h
index be08e45..289e90a 100644
--- a/server/qrtn.h
+++ b/server/qrtn.h
@@ -1,9 +1,9 @@
-/* $HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/server/qrtn.h $ $Id: qrtn.h 3956 2010-01-05 20:56:56Z zacheiss $
+/* $HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/server/qrtn.h $ $Id: qrtn.h 4150 2013-12-04 01:45:08Z zacheiss $
  *
  *  Used by the SQL query routines of the Moira server.
  */
 
-#define MR_STMTBUF_LEN 1024
+#define MR_STMTBUF_LEN (MAX_FIELD_WIDTH * 2)
 extern char stmt_buf[MR_STMTBUF_LEN];
 
 void dbmserr(void);

home help back first fref pref prev next nref lref last post