[27821] in Source-Commits

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

grenew commit [debian]: Modernize grenew

daemon@ATHENA.MIT.EDU (Alexander Chernyakhovsky)
Sat Mar 8 01:09:25 2014

Date: Sat, 8 Mar 2014 01:09:18 -0500
From: Alexander Chernyakhovsky <achernya@MIT.EDU>
Message-Id: <201403080609.s2869Igu018162@drugstore.mit.edu>
To: source-commits@MIT.EDU

https://github.com/mit-athena/grenew/commit/b36115b7aea1afbf7fbab55edcfd46708936344e
commit b36115b7aea1afbf7fbab55edcfd46708936344e
Author: Alexander Chernyakhovsky <achernya@mit.edu>
Date:   Fri Mar 7 23:28:35 2014 -0500

    Modernize grenew

 Makefile.am  |    6 +++
 Makefile.in  |   44 -------------------
 configure.ac |   31 +++++++++++++
 configure.in |   12 -----
 grenew.c     |  136 ----------------------------------------------------------
 5 files changed, 37 insertions(+), 192 deletions(-)

diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..4cbc3c6
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,6 @@
+bin_PROGRAMS = grenew
+grenew_SOURCES = grenew.c
+grenew_CFLAGS = @GTK_CFLAGS@
+grenew_LDADD = @KRB5_LIBS@ @GTK_LIBS@
+
+dist_man1_MANS = grenew.1
diff --git a/Makefile.in b/Makefile.in
deleted file mode 100644
index 269b8ac..0000000
--- a/Makefile.in
+++ /dev/null
@@ -1,44 +0,0 @@
-# modified from /mit/source/athena/bin/panel-wrapper
-# $Id: Makefile.in,v 1.7 2006-07-25 23:37:02 ghudson Exp $
-
-SHELL=/bin/sh
-VPATH=@srcdir@
-INSTALL=@INSTALL@
-INSTALL_PROGRAM=@INSTALL_PROGRAM@
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-bindir=@bindir@
-mandir=@mandir@
-
-CC=@CC@
-DEFS=@DEFS@
-CPPFLAGS=@CPPFLAGS@
-CFLAGS=@CFLAGS@
-LDFLAGS=@LDFLAGS@
-LIBS=@KRB5_LIBS@ @KRB4_LIBS@ @LIBS@
-ALL_CFLAGS=`pkg-config --cflags gtk+-2.0` ${CPPFLAGS} ${CFLAGS} ${DEFS}
-ALL_LIBS=`pkg-config --libs gtk+-2.0` ${LIBS}
-
-all: grenew 
-
-grenew: grenew.o
-	${CC} ${LDFLAGS} -o $@ grenew.o ${ALL_LIBS}
-
-.c.o:
-	${CC} -c ${ALL_CFLAGS} $<
-
-check:
-
-install:
-	${top_srcdir}/mkinstalldirs ${DESTDIR}${bindir}
-	${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man1
-	${INSTALL_PROGRAM} grenew ${DESTDIR}${bindir}
-	${INSTALL} ${srcdir}/grenew.1 ${DESTDIR}${mandir}/man1
-
-clean:
-	rm -f grenew.o grenew
-
-distclean: clean
-	rm -f config.cache config.log config.status Makefile
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..11ceba1
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,31 @@
+#                                               -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.65])
+AC_INIT([grenew], [10.0.3], [debathena@mit.edu])
+AM_INIT_AUTOMAKE([foreign -Wall])
+AM_MAINTAINER_MODE([enable])
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+AC_CONFIG_MACRO_DIR([m4])
+AC_CONFIG_SRCDIR([grenew.c])
+AC_CONFIG_HEADERS([config.h])
+
+# Checks for programs.
+AC_PROG_CC
+AC_PROG_INSTALL
+AC_PROG_MKDIR_P
+AM_PROG_CC_C_O
+
+# Check for libraries.
+RRA_LIB_KRB5
+
+AC_CHECK_LIB(intl, gettext)
+PKG_CHECK_MODULES([GTK], [gtk+-2.0])
+AC_SUBST([GTK_CFLAGS])
+AC_SUBST([GTK_LIBS])
+
+# Checks for library functions.
+AC_CHECK_FUNCS([memset])
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
diff --git a/configure.in b/configure.in
deleted file mode 100644
index 87dc591..0000000
--- a/configure.in
+++ /dev/null
@@ -1,12 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in,v 1.2 2002-06-03 18:27:55 mwhitson Exp $
-
-AC_INIT(grenew.c)
-
-AC_PROG_CC
-AC_PROG_INSTALL
-ATHENA_KRB5_REQUIRED
-ATHENA_KRB4
-ATHENA_KRB5
-
-AC_OUTPUT(Makefile)
diff --git a/grenew.c b/grenew.c
index ef0b40e..46e1ad4 100644
--- a/grenew.c
+++ b/grenew.c
@@ -6,9 +6,6 @@
 
 #include <gtk/gtk.h>
 #include <krb5.h>
-#ifdef HAVE_KRB4
-#include <kerberosIV/krb.h>
-#endif
 #include <string.h>
 #include <stdio.h>
 #include <com_err.h>
@@ -22,18 +19,7 @@ static void do_fatal_dialog(char *msg);
 static void do_renew(GtkWidget *widget, GtkWidget *entry);
 static void dialog_response_cb(GtkWidget *w, gint response, GtkWidget *entry);
 static void create_window();
-int try_krb4(krb5_context kcontext, krb5_principal me, char *password,
-	     krb5_deltat lifetime);
-int try_convert524(krb5_context kcontext, krb5_ccache ccache);
-
 /* library functions not declared inside the included headers. */
-#ifdef HAVE_KRB4
-void krb524_init_ets(krb5_context kcontext);
-int krb524_convert_creds_kdc(krb5_context kcontext,
-			     krb5_creds * k5creds,
-			     CREDENTIALS * k4creds);
-#endif HAVE_KRB4
-
 static void quit()
 {
   exit(0);
@@ -123,7 +109,6 @@ static void do_renew(GtkWidget *widget, GtkWidget *entry)
     }
   else
     {
-      int got_krb4 = try_krb4(kcontext, me, pass, lifetime);
       if ((code = krb5_cc_initialize(kcontext, ccache, me)))
 	{
 	  msg = g_strdup_printf("%s while initializing cache",
@@ -137,8 +122,6 @@ static void do_renew(GtkWidget *widget, GtkWidget *entry)
 	}
       else
 	{
-	  if (!got_krb4)
-	    try_convert524(kcontext, ccache);
 	  if (me)
 	    krb5_free_principal(kcontext, me);
 	  if (ccache)
@@ -217,125 +200,6 @@ static void create_window()
   gtk_widget_show(window);
 }
 
-/* This function is from kinit. */
-int try_krb4(kcontext, me, password, lifetime)
-	krb5_context kcontext;
-	krb5_principal me;
-	char *password;
-	krb5_deltat lifetime;
-{
-#ifdef HAVE_KRB4
-	krb5_error_code code;
-	int krbval;
-	char v4name[ANAME_SZ], v4inst[INST_SZ], v4realm[REALM_SZ];
-	int v4life;
-
-	/* Translate to a Kerberos 4 principal. */
-	code = krb5_524_conv_principal(kcontext, me, v4name, v4inst, v4realm);
-	if (code)
-		return(code);
-
-	v4life = lifetime / (5 * 60);
-	if (v4life < 1)
-		v4life = 1;
-	if (v4life > 255)
-		v4life = 255;
-
-	krbval = krb_get_pw_in_tkt(v4name, v4inst, v4realm, "krbtgt", v4realm,
-					   v4life, password);
-
-	if (krbval != INTK_OK) {
-		fprintf(stderr, "Kerberos 4 error: %s\n",
-			krb_get_err_text(krbval));
-		return 0;
-	}
-	return 1;
-#else
-	return 0;
-#endif
-}
-
-/* Convert krb5 tickets to krb4. This function was copied from kinit */
-int try_convert524(kcontext, ccache)
-	 krb5_context kcontext;
-	 krb5_ccache ccache;
-{
-#ifdef HAVE_KRB4
-	krb5_principal me, kpcserver;
-	krb5_error_code kpccode;
-	int kpcval;
-	krb5_creds increds, *v5creds;
-	CREDENTIALS v4creds;
-
-	/* or do this directly with krb524_convert_creds_kdc */
-	krb524_init_ets(kcontext);
-
-	if ((kpccode = krb5_cc_get_principal(kcontext, ccache, &me))) {
-		com_err(progname, kpccode, "while getting principal name");
-		return 0;
-	}
-
-	/* cc->ccache, already set up */
-	/* client->me, already set up */
-	if ((kpccode = krb5_build_principal(kcontext,
-						    &kpcserver, 
-						    krb5_princ_realm(kcontext, me)->length,
-						    krb5_princ_realm(kcontext, me)->data,
-						    "krbtgt",
-						    krb5_princ_realm(kcontext, me)->data,
-						NULL))) {
-	  com_err(progname, kpccode,
-			  "while creating service principal name");
-	  return 0;
-	}
-
-	memset((char *) &increds, 0, sizeof(increds));
-	increds.client = me;
-	increds.server = kpcserver;
-	increds.times.endtime = 0;
-	increds.keyblock.enctype = ENCTYPE_DES_CBC_CRC;
-	if ((kpccode = krb5_get_credentials(kcontext, 0, 
-						ccache,
-						&increds, 
-						&v5creds))) {
-		com_err(progname, kpccode,
-			"getting V5 credentials");
-		return 0;
-	}
-	if ((kpccode = krb524_convert_creds_kdc(kcontext, 
-							v5creds,
-							&v4creds))) {
-		com_err(progname, kpccode, 
-			"converting to V4 credentials");
-		return 0;
-	}
-	/* this is stolen from the v4 kinit */
-	/* initialize ticket cache */
-	if ((kpcval = in_tkt(v4creds.pname,v4creds.pinst)
-		 != KSUCCESS)) {
-		com_err(progname, kpcval,
-			"trying to create the V4 ticket file");
-		return 0;
-	}
-	/* stash ticket, session key, etc. for future use */
-	if ((kpcval = krb_save_credentials(v4creds.service,
-						   v4creds.instance,
-						   v4creds.realm, 
-						   v4creds.session,
-						   v4creds.lifetime,
-						   v4creds.kvno,
-						   &(v4creds.ticket_st), 
-						   v4creds.issue_date))) {
-		com_err(progname, kpcval,
-			"trying to save the V4 ticket");
-		return 0;
-	}
-	return 1;
-#else
-	return 0;
-#endif
-}
-
 int main(int argc, char **argv)
 {
   gtk_init(&argc, &argv);

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