[27541] in Source-Commits
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);