Browse Source

Fri Aug 18 13:41:14 2006 Michael Jennings (mej)

Addressed licensing concerns.
----------------------------------------------------------------------


SVN revision: 24877
master
Michael Jennings 16 years ago
parent
commit
edf3577888
  1. 4
      ChangeLog
  2. 2
      Eterm.spec
  3. 23
      LICENSE
  4. 2
      Makefile.am
  5. 16
      src/Makefile.am
  6. 51
      src/command.c
  7. 3
      src/command.h
  8. 3
      src/feature.h
  9. 127
      src/netdisp.c
  10. 5
      src/options.c
  11. 22
      src/startup.c

4
ChangeLog

@ -5501,3 +5501,7 @@ Sat Jun 17 23:06:03 2006 Michael Jennings (mej)
Daniel Macks <dmacks@netspace.org> noticed that gdb.scr wasn't being
installed. Oops. Fixed now.
----------------------------------------------------------------------
Fri Aug 18 13:41:14 2006 Michael Jennings (mej)
Addressed licensing concerns.
----------------------------------------------------------------------

2
Eterm.spec

@ -90,7 +90,7 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-, root, root)
%doc doc/Eterm_reference.html doc/Eterm.1.html doc/Eterm.tcap doc/Eterm.ti doc/README.Escreen
%doc README ReleaseNotes ReleaseNotes.1 ChangeLog
%doc LICENSE README ReleaseNotes ReleaseNotes.1 ChangeLog
%config %{_sysconfdir}/X11/applnk/Utilities/Eterm.desktop
%{_bindir}/*
%{_libdir}/*

23
LICENSE

@ -0,0 +1,23 @@
Copyright (C) 1997-2006, Michael Jennings
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies of the Software, its documentation and
marketing & publicity materials, and acknowledgment shall be given in
the documentation, materials and software packages that this Software
was used.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

2
Makefile.am

@ -4,6 +4,6 @@ AUTOMAKE_OPTIONS = foreign
SUBDIRS = src themes utils doc bg pix
EXTRA_DIST = README ReleaseNotes ReleaseNotes.1 CVS-README ChangeLog autogen.sh Eterm.spec
EXTRA_DIST = LICENSE README ReleaseNotes ReleaseNotes.1 CVS-README ChangeLog autogen.sh Eterm.spec
MAINTAINERCLEANFILES = Makefile.in *~ aclocal.m4 config.guess config.sub configure depcomp \
install-sh ltconfig ltmain.sh missing mkinstalldirs stamp-h* *.log config.h.in

16
src/Makefile.am

@ -9,14 +9,14 @@ MMX_OBJS = mmx_cmod.lo
SSE2_SRCS = sse2_cmod.c
SSE2_OBJS = sse2_cmod.lo
libEterm_la_SOURCES = actions.c actions.h buttons.c buttons.h command.c \
command.h draw.c draw.h e.c e.h eterm_debug.h eterm_utmp.h \
events.c events.h feature.h font.c font.h grkelot.c \
grkelot.h icon.h menus.c menus.h misc.c misc.h netdisp.c \
options.c options.h pixmap.c pixmap.h profile.h screen.c \
screen.h script.c script.h scrollbar.c scrollbar.h \
startup.c startup.h system.c system.h term.c term.h \
timer.c timer.h utmp.c windows.c windows.h defaultfont.c \
libEterm_la_SOURCES = actions.c actions.h buttons.c buttons.h command.c \
command.h draw.c draw.h e.c e.h eterm_debug.h eterm_utmp.h \
events.c events.h feature.h font.c font.h grkelot.c \
grkelot.h icon.h menus.c menus.h misc.c misc.h \
options.c options.h pixmap.c pixmap.h profile.h screen.c \
screen.h script.c script.h scrollbar.c scrollbar.h \
startup.c startup.h system.c system.h term.c term.h \
timer.c timer.h utmp.c windows.c windows.h defaultfont.c \
defaultfont.h libscream.c scream.h screamcfg.h
EXTRA_libEterm_la_SOURCES = $(MMX_SRCS) $(SSE2_SRCS)

51
src/command.c

@ -1,38 +1,25 @@
/*--------------------------------*-C-*---------------------------------*
* File: command.c
*/
/* notes: */
/*----------------------------------------------------------------------*
* Copyright 1992 John Bovey, University of Kent at Canterbury.
*
* You can do what you like with this source code as long as
* you don't try to make money out of it and you include an
* unaltered copy of this message (including the copyright).
*
* This module has been very heavily modified by R. Nation
* <nation@rocket.sanders.lockheed.com>
* No additional restrictions are applied
*
* Additional modification by Garrett D'Amore <garrett@netcom.com> to
* allow vt100 printing. No additional restrictions are applied.
*
* Integrated modifications by Steven Hirsch <hirsch@emba.uvm.edu> to
* properly support X11 mouse report mode and support for DEC
* "private mode" save/restore functions.
*
* Integrated key-related changes by Jakub Jelinek <jj@gnu.ai.mit.edu>
* to handle Shift+function keys properly.
* Should be used with enclosed termcap / terminfo database.
/*
* Copyright (C) 1997-2006, Michael Jennings
*
* Extensive modifications by mj olesen <olesen@me.QueensU.CA>
* No additional restrictions.
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* Further modification and cleanups for Solaris 2.x and Linux 1.2.x
* by Raul Garcia Garcia <rgg@tid.es>. No additional restrictions.
* The above copyright notice and this permission notice shall be included in
* all copies of the Software, its documentation and marketing & publicity
* materials, and acknowledgment shall be given in the documentation, materials
* and software packages that this Software was used.
*
* As usual, the author accepts no responsibility for anything, nor does
* he guarantee anything whatsoever.
*----------------------------------------------------------------------*/
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
static const char cvs_ident[] = "$Id$";

3
src/command.h

@ -386,9 +386,6 @@ extern void tt_printf(const unsigned char *, ...);
extern void main_loop(void);
extern int v_doPending(void);
extern void v_writeBig(int, char *, int);
#ifdef DISPLAY_IS_IP
extern char *network_display(const char *);
#endif
_XFUNCPROTOEND

3
src/feature.h

@ -206,9 +206,6 @@
/********************* Miscellaneous options *********************/
/* To have $DISPLAY and the "\E[7n" response be IP addresses rather than FQDN's */
/* #define DISPLAY_IS_IP */
/* To have "\E[7n" reply with the display name. This is a potential security risk,
* so its use is discouraged and unsupported. */
/* #define ENABLE_DISPLAY_ANSWER */

127
src/netdisp.c

@ -1,127 +0,0 @@
/*----------------------------------------------------------------------*
* support for resolving the actual IP number of the host for remote
* DISPLAYs. When the display is local (i.e. :0), we add support for
* sending the first non-loopback interface IP number as the DISPLAY
* instead of just sending the incorrect ":0". This way telnet/rlogin
* shells can actually get the correct information into DISPLAY for
* xclients.
*
* Copyright 1996 Chuck Blake <cblake@BBN.COM>
*
+ * Cleaned up somewhat by mj olesen <olesen@me.queensu.ca>
+ *
* You can do what you like with this source code as long as you don't try
* to make money out of it and you include an unaltered copy of this
* message (including the copyright).
*
* As usual, the author accepts no responsibility for anything, nor does
* he guarantee anything whatsoever.
*----------------------------------------------------------------------*/
static const char cvs_ident[] = "$Id$";
#include "config.h"
#include "feature.h"
#ifdef DISPLAY_IS_IP
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#ifdef HAVE_FCNTL_H
# include <fcntl.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <sys/types.h>
#include <sys/socket.h>
#ifdef HAVE_SYS_SOCKIO_H
# include <sys/sockio.h>
#endif
#ifdef HAVE_SYS_BYTEORDER_H
# include <sys/byteorder.h>
#endif
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#ifdef HAVE_SYS_IOCTL_H
# include <sys/ioctl.h>
#endif
#include <netinet/in.h>
#include <arpa/inet.h>
#include <net/if.h>
#include <net/if_arp.h>
#include "startup.h"
/* return a pointer to a static buffer */
char *
network_display(const char *display)
{
static char ipaddress[32] = "";
char buffer[1024], *rval = NULL;
struct ifconf ifc;
struct ifreq *ifr;
int i, skfd;
if (display[0] != ':' && strncmp(display, "unix:", 5))
return display; /* nothing to do */
ifc.ifc_len = sizeof(buffer); /* Get names of all ifaces */
ifc.ifc_buf = buffer;
if ((skfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
perror("socket");
return NULL;
}
if (ioctl(skfd, SIOCGIFCONF, &ifc) < 0) {
perror("SIOCGIFCONF");
close(skfd);
return NULL;
}
for (i = 0, ifr = ifc.ifc_req; i < (ifc.ifc_len / sizeof(struct ifreq)); i++, ifr++) {
struct ifreq ifr2;
snprintf(ifr2.ifr_name, sizeof(ifr2.ifr_name), ifr->ifr_name);
if (ioctl(skfd, SIOCGIFADDR, &ifr2) >= 0) {
unsigned long addr;
struct sockaddr_in *p_addr;
p_addr = (struct sockaddr_in *) &(ifr2.ifr_addr);
addr = htonl((unsigned long) p_addr->sin_addr.s_addr);
/*
* not "0.0.0.0" or "127.0.0.1" - so format the address
*/
if (addr && addr != 0x7F000001) {
char *colon = strchr(display, ':');
if (colon == NULL)
colon = ":0.0";
sprintf(ipaddress, "%d.%d.%d.%d%s", (int) ((addr >> 030) & 0xFF), (int) ((addr >> 020) & 0xFF),
(int) ((addr >> 010) & 0xFF), (int) (addr & 0xFF), colon);
rval = ipaddress;
break;
}
}
}
close(skfd);
return rval;
}
#endif /* DISPLAY_IS_IP */
/*----------------------- end-of-file (C source) -----------------------*/

5
src/options.c

@ -662,11 +662,6 @@ version(void)
#else
printf(" -MULTI_CHARSET");
#endif
#ifdef DISPLAY_IS_IP
printf(" +DISPLAY_IS_IP");
#else
printf(" -DISPLAY_IS_IP");
#endif
#ifdef ENABLE_DISPLAY_ANSWER
printf(" +ENABLE_DISPLAY_ANSWER");
#else

22
src/startup.c

@ -261,24 +261,10 @@ eterm_bootstrap(int argc, char *argv[])
}
#endif
#ifdef DISPLAY_IS_IP
/* Fixup display_name for export over pty to any interested terminal
* clients via "ESC[7n" (e.g. shells). Note we use the pure IP number
* (for the first non-loopback interface) that we get from
* network_display(). This is more "name-resolution-portable", if you
* will, and probably allows for faster x-client startup if your name
* server is beyond a slow link or overloaded at client startup. Of
* course that only helps the shell's child processes, not us.
*
* Giving out the display_name also affords a potential security hole
*/
val = display_name = network_display(display_name);
if (val == NULL)
#endif /* DISPLAY_IS_IP */
val = XDisplayString(Xdisplay);
if (display_name == NULL)
display_name = val; /* use broken `:0' value */
val = XDisplayString(Xdisplay);
if (display_name == NULL) {
display_name = val;
}
i = strlen(val);
display_string = MALLOC(i + 9);

Loading…
Cancel
Save