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