mirror of
https://git.FreeBSD.org/ports.git
synced 2024-10-18 19:49:40 +00:00
astro/xephem: Update to 4.1.0
Update LICENSE
This commit is contained in:
parent
1821f674e6
commit
e460db34a3
@ -1,19 +1,14 @@
|
||||
# Created by: erich@FreeBSD.org
|
||||
|
||||
PORTNAME= xephem
|
||||
PORTVERSION= 3.7.7
|
||||
PORTREVISION= 5
|
||||
PORTVERSION= 4.1.0
|
||||
CATEGORIES= astro
|
||||
MASTER_SITES= http://www.clearskyinstitute.com/xephem/
|
||||
|
||||
MAINTAINER= ports@FreeBSD.org
|
||||
COMMENT= Interactive astronomical ephemeris program
|
||||
|
||||
# Converted from RESTRICTED
|
||||
LICENSE= XEPHEM
|
||||
LICENSE_NAME= Xephem
|
||||
LICENSE_TEXT= Personal use only
|
||||
LICENSE_PERMS= auto-accept
|
||||
LICENSE= MIT
|
||||
LICENSE_FILE= ${WRKDIR}/XEphem-${PORTVERSION}/LICENSE
|
||||
|
||||
LIB_DEPENDS= libpng.so:graphics/png \
|
||||
libfontconfig.so:x11-fonts/fontconfig
|
||||
@ -21,25 +16,15 @@ LIB_DEPENDS= libpng.so:graphics/png \
|
||||
USES= gmake groff jpeg motif tar:tgz ssl xorg
|
||||
USE_XORG= xt xext xmu x11 xft
|
||||
|
||||
USE_GITHUB= yes
|
||||
GH_PROJECT= XEphem
|
||||
|
||||
LDFLAGS+= -lfontconfig
|
||||
|
||||
WRKSRC_SUBDIR= GUI/xephem
|
||||
|
||||
MAKE_JOBS_UNSAFE= yes
|
||||
|
||||
WRKSRC= ${WRKDIR}/${DISTNAME}/GUI/xephem
|
||||
|
||||
# XXX needs to be the same as DISTFILES
|
||||
XEPHEMSRC= ${PORTNAME}-${PORTVERSION}.tgz
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.for file in ${XEPHEMSRC}
|
||||
.if !exists(${DISTDIR}/${file})
|
||||
IGNORE= because of licensing restrictions, you must manually fetch ${file}\
|
||||
from http://www.clearskyinstitute.com/xephem/,\
|
||||
place it in ${DISTDIR} and then run make again
|
||||
.endif
|
||||
.endfor
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
|
||||
-e 's|/usr/X11R6|${LOCALBASE}|g' \
|
||||
@ -67,4 +52,4 @@ do-install:
|
||||
"auxil catalogs fifos fits gallery help lo" \
|
||||
${STAGEDIR}${PREFIX}/lib/X11/xephem
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
.include <bsd.port.mk>
|
||||
|
@ -1,3 +1,3 @@
|
||||
TIMESTAMP = 1495658161
|
||||
SHA256 (xephem-3.7.7.tgz) = fb0b889218322c1cc0b994da7125e624e4f0112d9da1c468936600d1179e55de
|
||||
SIZE (xephem-3.7.7.tgz) = 18128521
|
||||
TIMESTAMP = 1651558430
|
||||
SHA256 (xephem-XEphem-4.1.0_GH0.tar.gz) = 8ab3670e303bdf209a673d5e091d1cd6e4577a0574da26a3c3d6629825f98241
|
||||
SIZE (xephem-XEphem-4.1.0_GH0.tar.gz) = 17213750
|
||||
|
@ -1,15 +1,15 @@
|
||||
--- Makefile.orig 2015-08-09 21:36:50 UTC
|
||||
--- Makefile.orig 2022-05-03 02:30:02 UTC
|
||||
+++ Makefile
|
||||
@@ -23,44 +23,44 @@ MOTIFI = $(MOTIF)
|
||||
@@ -22,18 +22,18 @@ MOTIFI = $(MOTIF)
|
||||
MOTIFL = $(MOTIF)
|
||||
endif
|
||||
ifndef MOTIFI
|
||||
-MOTIFI = /usr/include
|
||||
+MOTIFI = /usr/local/include
|
||||
+MOTIFI = %%LOCALBASE%%/include
|
||||
endif
|
||||
ifndef MOTIFL
|
||||
-MOTIFL = /usr/lib
|
||||
+MOTIFL = %%/LOCALBASE%%/lib
|
||||
+MOTIFL = %%LOCALBASE%%/lib
|
||||
endif
|
||||
|
||||
# for linux and Apple OS X
|
||||
@ -17,103 +17,16 @@
|
||||
-CLDFLAGS = -g
|
||||
-CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -Wall -I$(MOTIFI) -I/opt/X11/include
|
||||
-LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L/opt/X11/lib
|
||||
-XLIBS = -lXm -lXp -lXt -lXext -lXmu -lX11
|
||||
-LIBS = $(XLIBS) $(LIBLIB) -lm
|
||||
+CC?= cc
|
||||
+CLDFLAGS+= -g
|
||||
+CFLAGS+= $(LIBINC) $(CLDFLAGS) -Wall -I$(MOTIFI) -I/usr/local/include
|
||||
+LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L/usr/local/lib
|
||||
-XLIBS = -lXm -lXt -lXext -lXmu -lX11
|
||||
+CC? = cc
|
||||
+CLDFLAGS += -g
|
||||
+CFLAGS += $(LIBINC) $(CLDFLAGS) -O2 -Wall -I$(MOTIFI) -I%%LOCALBASE%%/include
|
||||
+LDFLAGS += $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L%%LOCALBASE%%/lib
|
||||
+XLIBS = -lXm -lXt -lXext -lXmu -lX11 -lXft
|
||||
+LIBS = $(XLIBS) $(LIBLIB) -lm -lssl
|
||||
LIBS = $(XLIBS) $(LIBLIB) -lm -lssl
|
||||
|
||||
# static linking on Apple using X11 libs from ports
|
||||
-# CC = gcc
|
||||
+# CC?= cc
|
||||
# OLI = /opt/local/include
|
||||
# OLL = /opt/local/lib
|
||||
-# CLDFLAGS = -g
|
||||
-# CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -Wall -I$(MOTIFI) -I$(OLI)
|
||||
-# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L$(OLL)
|
||||
+# CLDFLAGS+= -g
|
||||
+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -Wall -I$(MOTIFI) -I$(OLI)
|
||||
+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L$(OLL)
|
||||
# XLIBS = -lXm $(OLL)/libXp.a $(OLL)/libXt.a $(OLL)/libSM.a $(OLL)/libICE.a $(OLL)/libXext.a $(OLL)/libXmu.a $(OLL)/libX11.a $(OLL)/libxcb.a $(OLL)/libXau.a $(OLL)/libXdmcp.a
|
||||
# LIBS = $(XLIBS) $(LIBLIB) -lm
|
||||
|
||||
# for ppc Apple OS X to make universal (i386 and ppc binary), requires
|
||||
# Xcode 2.2, /Developers/SDK/MacOSX10.4u.sdk and all libs, including libXm,
|
||||
# built similarly
|
||||
-# CLDFLAGS = -arch i386 -arch ppc
|
||||
-# CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -Wall -isysroot /Developer/SDKs/MacOSX10.4u.sdk -I$(MOTIFI) -I/usr/X11R6/include
|
||||
-# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -L$(MOTIFL) -L/usr/X11R6/lib
|
||||
+# CLDFLAGS+= -arch i386 -arch ppc
|
||||
+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -Wall -isysroot /Developer/SDKs/MacOSX10.4u.sdk -I$(MOTIFI) -I/usr/local/include
|
||||
+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -L$(MOTIFL) -L/usr/local/lib
|
||||
|
||||
# MKS Enterprise toolkit
|
||||
# MOTIFI = -I/usr/include
|
||||
# MOTIFL = -L/usr/lib
|
||||
# CC = cc
|
||||
-# CLDFLAGS =
|
||||
-# CFLAGS = $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI)
|
||||
-# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -W/subsystem:windows -s
|
||||
+# CLDFLAGS+=
|
||||
+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI)
|
||||
+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -W/subsystem:windows -s
|
||||
# XLIBS = -lXm -lXt -lX11
|
||||
# LIBS = $(XLIBS) $(LIBLIB) -lm
|
||||
|
||||
@@ -68,9 +68,9 @@ LIBS = $(XLIBS) $(LIBLIB) -lm
|
||||
# MOTIFI = -I/usr/include
|
||||
# MOTIFL = -L/usr/lib
|
||||
# CC = cc
|
||||
-# CLDFLAGS =
|
||||
-# CFLAGS = $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI)
|
||||
-# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL)
|
||||
+# CLDFLAGS+=
|
||||
+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI)
|
||||
+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL)
|
||||
# XLIBS = -lXm -lXt -lX11
|
||||
# LIBS = $(XLIBS) $(LIBLIB) -lsocket -lnsl -lc -lm /usr/ucblib/libucb.a
|
||||
# Note: if you get regex undefined, add -lgen to the end of LIBS.
|
||||
@@ -81,9 +81,9 @@ LIBS = $(XLIBS) $(LIBLIB) -lm
|
||||
# MOTIFI = -I/usr/dt/include
|
||||
# MOTIFL = -L/usr/dt/lib -R/usr/dt/lib
|
||||
# CC = cc
|
||||
-# CLDFLAGS =
|
||||
-# CFLAGS = $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI) -I/usr/openwin/include
|
||||
-# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L/usr/openwin/lib
|
||||
+# CLDFLAGS+=
|
||||
+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI) -I/usr/openwin/include
|
||||
+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L/usr/openwin/lib
|
||||
# XLIBS = -lXm -lXt -lX11
|
||||
# LIBS = $(XLIBS) $(LIBLIB) -lm -lsocket -lnsl
|
||||
|
||||
@@ -91,17 +91,17 @@ LIBS = $(XLIBS) $(LIBLIB) -lm
|
||||
# MOTIFI = -I/usr/include
|
||||
# MOTIFL = -L/usr/lib
|
||||
# CC = cc
|
||||
-# CLDFLAGS =
|
||||
-# CFLAGS = $(LIBINC) $(CLDFLAGS) -Aa -fast -I$(MOTIFI)
|
||||
-# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL)
|
||||
+# CLDFLAGS+=
|
||||
+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -Aa -fast -I$(MOTIFI)
|
||||
+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL)
|
||||
|
||||
# AIX
|
||||
# MOTIFI = -I/usr/include
|
||||
# MOTIFL = -L/usr/lib
|
||||
# CC = xlc
|
||||
-# CLDFLAGS =
|
||||
-# CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -qlanglvl=ansi -qarch=com -qmaxmem=16384 -I$(MOTIFI)
|
||||
-# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL)
|
||||
+# CLDFLAGS+=
|
||||
+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -qlanglvl=ansi -qarch=com -qmaxmem=16384 -I$(MOTIFI)
|
||||
+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL)
|
||||
|
||||
.PRECIOUS: xephem
|
||||
|
||||
@@ -189,18 +189,18 @@ OBJS = \
|
||||
@@ -188,18 +188,18 @@ OBJS = \
|
||||
all: libs xephem xephem.1
|
||||
|
||||
xephem: $(INCS) $(OBJS)
|
||||
|
@ -1,20 +0,0 @@
|
||||
--- auxil/mpcorb2edb.pl.orig 2014-07-11 02:46:35 UTC
|
||||
+++ auxil/mpcorb2edb.pl
|
||||
@@ -78,7 +78,7 @@ EOF
|
||||
# setup cutoff mag
|
||||
my $dimmag = 13; # dimmest mag to be saved in "bright" file
|
||||
# set site and file in case of -f
|
||||
-my $MPCSITE = "http://www.minorplanetcenter.net";
|
||||
+my $MPCSITE = "https://www.minorplanetcenter.net";
|
||||
my $MPCFTPDIR = "/iau/MPCORB";
|
||||
my $MPCFILE = "MPCORB.DAT";
|
||||
my $MPCZIPFILE = "MPCORB.DAT.gz";
|
||||
@@ -247,7 +247,7 @@ sub fetch
|
||||
{
|
||||
# transfer
|
||||
print "Getting $MPCFTPDIR/$MPCZIPFILE from $MPCSITE...\n";
|
||||
- $cmd = "curl -connect-timeout 10 -s -u 'anonymous:xephem\@clearskyinstitute.com' $MPCSITE/$MPCFTPDIR/$MPCZIPFILE > $MPCZIPFILE";
|
||||
+ $cmd = "curl --connect-timeout 10 -s -u 'anonymous:xephem\@clearskyinstitute.com' $MPCSITE/$MPCFTPDIR/$MPCZIPFILE > $MPCZIPFILE";
|
||||
print "$cmd\n";
|
||||
!system "$cmd" or exit(1);
|
||||
|
@ -1,81 +0,0 @@
|
||||
--- earthmenu.c.orig 2012-11-23 04:15:39 UTC
|
||||
+++ earthmenu.c
|
||||
@@ -4886,8 +4886,11 @@ e_getwxgif()
|
||||
int nrawgif;
|
||||
char buf[1024];
|
||||
int w, h;
|
||||
+ XE_SSL_FD ssl_fd;
|
||||
int fd;
|
||||
|
||||
+ memset(&ssl_fd, 0, sizeof(ssl_fd));
|
||||
+
|
||||
/* open test case, else real network */
|
||||
fd = openh ("/tmp/latest_cmoll.gif", O_RDONLY);
|
||||
if (fd >= 0) {
|
||||
@@ -4902,12 +4905,12 @@ e_getwxgif()
|
||||
stopd_up();
|
||||
|
||||
/* make connection to server for the file */
|
||||
- xe_msg (0, "Getting\nhttp://%s%s", wxhost, wxfile);
|
||||
- (void) sprintf (buf, "GET http://%s%s HTTP/1.0\r\nUser-Agent: xephem/%s\r\n\r\n",
|
||||
- wxhost, wxfile, PATCHLEVEL);
|
||||
- fd = httpGET (wxhost, buf, buf);
|
||||
+ xe_msg (0, "Getting\nhttps://%s%s", wxhost, wxfile);
|
||||
+ (void) sprintf (buf, "GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\nUser-Agent: xephem/%s\r\n\r\n",
|
||||
+ wxfile, wxhost, PATCHLEVEL);
|
||||
+ fd = httpsGET (wxhost, buf, buf, &ssl_fd);
|
||||
if (fd < 0) {
|
||||
- xe_msg (1, "http get:\n%s", buf);
|
||||
+ xe_msg (1, "https get:\n%s", buf);
|
||||
stopd_down();
|
||||
return (-1);
|
||||
}
|
||||
@@ -4915,7 +4918,7 @@ e_getwxgif()
|
||||
/* read header, looking for some header info */
|
||||
isgif = 0;
|
||||
length = 0;
|
||||
- while (recvline (fd, buf, sizeof(buf)) > 1) {
|
||||
+ while (ssl_recvline (&ssl_fd, buf, sizeof(buf)) > 1) {
|
||||
xe_msg (0, "Rcv: %s", buf);
|
||||
if (strstr (buf, "image/gif"))
|
||||
isgif = 1;
|
||||
@@ -4923,9 +4926,10 @@ e_getwxgif()
|
||||
length = atoi (buf+15);
|
||||
}
|
||||
if (!isgif) {
|
||||
- while (recvline (fd, buf, sizeof(buf)) > 1)
|
||||
+ while (ssl_recvline (&ssl_fd, buf, sizeof(buf)) > 1)
|
||||
xe_msg (0, "Rcv: %s", buf);
|
||||
- close (fd);
|
||||
+ SSL_free (ssl_fd.ssl);
|
||||
+ close (ssl_fd.fd);
|
||||
stopd_down();
|
||||
return (-1);
|
||||
}
|
||||
@@ -4936,12 +4940,13 @@ e_getwxgif()
|
||||
pm_up();
|
||||
for (nrawgif = 0; nrawgif < sizeof(rawgif); nrawgif += nr) {
|
||||
pm_set (100*nrawgif/length);
|
||||
- nr = readbytes (fd, rawgif+nrawgif, 4096);
|
||||
+ nr = SSL_read (ssl_fd.ssl, rawgif+nrawgif, 4096);
|
||||
if (nr < 0) {
|
||||
- xe_msg (1, "%s:\n%s", wxhost, syserrstr());
|
||||
+ xe_msg (1, "%s: ssl read error code: %d", wxhost, SSL_get_error(ssl_fd.ssl, nr));
|
||||
stopd_down();
|
||||
pm_down();
|
||||
- close (fd);
|
||||
+ SSL_free (ssl_fd.ssl);
|
||||
+ close (ssl_fd.fd);
|
||||
return (-1);
|
||||
}
|
||||
if (nr == 0)
|
||||
@@ -4949,7 +4954,8 @@ e_getwxgif()
|
||||
}
|
||||
stopd_down();
|
||||
pm_down();
|
||||
- close (fd);
|
||||
+ SSL_free (ssl_fd.ssl);
|
||||
+ close (ssl_fd.fd);
|
||||
if (nr > 0) {
|
||||
xe_msg (1, "File too large");
|
||||
return (-1);
|
@ -1,17 +0,0 @@
|
||||
--- fallbacks.c.orig 2015-04-09 00:20:19 UTC
|
||||
+++ fallbacks.c
|
||||
@@ -747,10 +747,10 @@ String fallbacks[] = {
|
||||
"XEphem*WebDB*URL1.value: http://celestrak.com/NORAD/elements/science.txt",
|
||||
"XEphem*WebDB*URL2.value: http://celestrak.com/NORAD/elements/tle-new.txt",
|
||||
"XEphem*WebDB*URL3.value: http://celestrak.com/NORAD/elements/amateur.txt",
|
||||
- "XEphem*WebDB*URL4.value: http://www.minorplanetcenter.org/iau/Ephemerides/Comets/Soft03Cmt.txt",
|
||||
- "XEphem*WebDB*URL5.value: http://www.minorplanetcenter.org/iau/Ephemerides/CritList/Soft03CritList.txt",
|
||||
- "XEphem*WebDB*URL6.value: http://www.minorplanetcenter.org/iau/Ephemerides/Distant/Soft03Distant.txt",
|
||||
- "XEphem*WebDB*URL7.value: http://www.minorplanetcenter.org/iau/Ephemerides/Unusual/Soft03Unusual.txt",
|
||||
+ "XEphem*WebDB*URL4.value: https://www.minorplanetcenter.org/iau/Ephemerides/Comets/Soft03Cmt.txt",
|
||||
+ "XEphem*WebDB*URL5.value: https://www.minorplanetcenter.org/iau/Ephemerides/CritList/Soft03CritList.txt",
|
||||
+ "XEphem*WebDB*URL6.value: https://www.minorplanetcenter.org/iau/Ephemerides/Distant/Soft03Distant.txt",
|
||||
+ "XEphem*WebDB*URL7.value: https://www.minorplanetcenter.org/iau/Ephemerides/Unusual/Soft03Unusual.txt",
|
||||
"XEphem*WebDB.x: 200",
|
||||
"XEphem*WebDB.y: 200",
|
||||
"XEphem*WeekStart.Monday.set: False",
|
@ -1,30 +0,0 @@
|
||||
--- net.h.orig 2005-03-20 11:04:50 UTC
|
||||
+++ net.h
|
||||
@@ -20,6 +20,13 @@
|
||||
#include <sys/select.h>
|
||||
#endif
|
||||
|
||||
+#include <openssl/ssl.h>
|
||||
+
|
||||
+typedef struct {
|
||||
+ int fd; //file desciptor for the underlying connection socket
|
||||
+ SSL *ssl; //ssl connection for use with SSL_read( )and SSL_write()
|
||||
+} XE_SSL_FD;
|
||||
+
|
||||
/* support functions */
|
||||
|
||||
extern int httpGET (char *host, char *GETcmd, char msg[]);
|
||||
@@ -29,8 +36,11 @@ extern int readbytes (int fd, unsigned char buf[], int
|
||||
extern int recvline (int fd, char buf[], int max);
|
||||
extern int recvlineb (int sock, char *buf, int size);
|
||||
extern int sendbytes (int fd, unsigned char buf[], int n);
|
||||
-
|
||||
-
|
||||
+extern int httpsGET (char *host, char *GETcmd, char msg[], XE_SSL_FD *ssl_fd);
|
||||
+extern int ssl_recvbytes (XE_SSL_FD *ssl_fd, unsigned char buf[], int n);
|
||||
+extern int ssl_readbytes (XE_SSL_FD *ssl_fd, unsigned char buf[], int n);
|
||||
+extern int ssl_recvline (XE_SSL_FD *ssl_fd, char buf[], int max);
|
||||
+extern int ssl_recvlineb (XE_SSL_FD *ssl_fd, char *buf, int size);
|
||||
|
||||
/* For RCS Only -- Do Not Edit
|
||||
* @(#) $RCSfile: net.h,v $ $Date: 2003/03/17 07:26:21 $ $Revision: 1.3 $ $Name: $
|
@ -1,273 +0,0 @@
|
||||
--- netmenu.c.orig 2010-10-06 21:12:40 UTC
|
||||
+++ netmenu.c
|
||||
@@ -9,6 +9,8 @@
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
+#include <openssl/ssl.h>
|
||||
+
|
||||
#include <Xm/Form.h>
|
||||
#include <Xm/Label.h>
|
||||
#include <Xm/PushB.h>
|
||||
@@ -70,12 +72,24 @@ static int rb_unk; /* index of first unknown char */
|
||||
|
||||
static char netcategory[] = "Network"; /* Save category */
|
||||
|
||||
+static SSL_METHOD *ssl_method; /* global ssl dispatch structure for creating a ssl context */
|
||||
+static SSL_CTX *ssl_ctx; /* global ssl context structure for creating ssl connections */
|
||||
+
|
||||
/* call to set up without actually bringing up the menus.
|
||||
*/
|
||||
void
|
||||
net_create()
|
||||
{
|
||||
if (!netshell_w) {
|
||||
+ if (SSL_library_init() < 0) {
|
||||
+ fprintf (stderr, "Could not initialize the OpenSSL library !\n");
|
||||
+ } else {
|
||||
+ ssl_method = SSLv23_client_method(); /* deprecated since openssl 1.1.x */
|
||||
+// ssl_method = TLS_client_method(); /* since openssl 1.1.x */
|
||||
+ ssl_ctx = SSL_CTX_new (ssl_method);
|
||||
+ SSL_CTX_set_options (ssl_ctx, SSL_OP_NO_SSLv2);
|
||||
+ };
|
||||
+
|
||||
net_create_form();
|
||||
(void) net_save(); /* confirming here is just annoying */
|
||||
}
|
||||
@@ -251,8 +265,8 @@ char msg[]) /* return diagnostic message here, if retu
|
||||
struct {
|
||||
unsigned char VN; /* version number */
|
||||
unsigned char CD; /* command code */
|
||||
- unsigned short DSTPORT; /* destination port */
|
||||
- unsigned long DSTIP; /* destination IP addres */
|
||||
+ uint16_t DSTPORT; /* destination port */
|
||||
+ uint32_t DSTIP; /* destination IP address */
|
||||
} SocksPacket;
|
||||
|
||||
struct hostent *hs = gethostbyname (socks_host);
|
||||
@@ -390,7 +404,7 @@ readbytes (int fd, unsigned char buf[], int n)
|
||||
|
||||
/* read up to and including the next '\n' from socket fd into buf[max].
|
||||
* we silently ignore all '\r'. we add a trailing '\0'.
|
||||
- * return line lenth (not counting \0) if all ok, else -1.
|
||||
+ * return line length (not counting \0) if all ok, else -1.
|
||||
* N.B. this never reads ahead -- if that's ok, recvlineb() is better
|
||||
*/
|
||||
int
|
||||
@@ -442,6 +456,216 @@ recvlineb (int sock, char *buf, int size)
|
||||
break;
|
||||
}
|
||||
nr = read (sock, rb_linebuf, sizeof(rb_linebuf));
|
||||
+ if (nr <= 0) {
|
||||
+ ok = nr;
|
||||
+ rb_next = 0;
|
||||
+ rb_unk = 0;
|
||||
+ break;
|
||||
+ }
|
||||
+ rb_next = 0;
|
||||
+ rb_unk = nr;
|
||||
+ }
|
||||
+
|
||||
+ if ((c = rb_linebuf[rb_next++]) != '\r')
|
||||
+ *buf++ = c;
|
||||
+
|
||||
+ } while (buf-origbuf < size && c != '\n');
|
||||
+
|
||||
+ /* always give back a real line regardless, else status */
|
||||
+ if (ok > 0) {
|
||||
+ *buf = '\0';
|
||||
+ ok = buf - origbuf;
|
||||
+ }
|
||||
+
|
||||
+ return (ok);
|
||||
+}
|
||||
+
|
||||
+/* open the host, do the given GET cmd, and return a socket fd for the result.
|
||||
+ * on success it fills the XE_SSL_FD structure for later use by SSL_read() and necessary cleanup.
|
||||
+ * return -1 and with excuse in msg[], else 0 if ok.
|
||||
+ * N.B. can be called before we are created if net set in app defaults.
|
||||
+ */
|
||||
+int
|
||||
+httpsGET (char *host, char *GETcmd, char msg[], XE_SSL_FD *ssl_fd)
|
||||
+{
|
||||
+ char buf[2048];
|
||||
+ int fd;
|
||||
+ int connected;
|
||||
+ SSL *ssl;
|
||||
+ int n;
|
||||
+ int ret;
|
||||
+ int httpsport = 443;
|
||||
+
|
||||
+ /* open connection */
|
||||
+ if (proxy_on) {
|
||||
+ fd = mkconnection (proxy_host, proxy_port, msg);
|
||||
+ if (fd < 0)
|
||||
+ return (-1);
|
||||
+
|
||||
+ /* fill buf with CONNECT */
|
||||
+ (void) sprintf (buf, "CONNECT %1$s:%2$d HTTP/1.0\r\nUser-Agent: xephem/%3$s\r\nHost: %1$s:%2$d\r\n\r\n", host, httpsport, PATCHLEVEL);
|
||||
+
|
||||
+ /* add proxy auth if enabled */
|
||||
+ if (!auth_w)
|
||||
+ net_create_form();
|
||||
+ if (XmToggleButtonGetState (auth_w))
|
||||
+ addAuth(buf);
|
||||
+
|
||||
+ /* log it */
|
||||
+ xe_msg (0, "https proxy connect: %s", buf);
|
||||
+
|
||||
+ /* send it */
|
||||
+ n = strlen (buf);
|
||||
+ if (sendbytes(fd, (unsigned char *)buf, n) < 0) {
|
||||
+ (void) sprintf (msg, "%s: send error: %s", proxy_host, syserrstr());
|
||||
+ (void) close (fd);
|
||||
+ return (-1);
|
||||
+ }
|
||||
+
|
||||
+ connected = 0;
|
||||
+ while (recvline (fd, buf, sizeof(buf)) > 1) {
|
||||
+ xe_msg (0, "Rcv: %s", buf);
|
||||
+ if (strstr (buf, "200 "))
|
||||
+ connected = 1;
|
||||
+ }
|
||||
+ if (!connected) {
|
||||
+ (void) sprintf (msg, "%s: connect error: %s", proxy_host, syserrstr());
|
||||
+ (void) close (fd);
|
||||
+ return (-1);
|
||||
+ }
|
||||
+ } else {
|
||||
+ /* SOCKS or direct are both handled by mkconnection() */
|
||||
+ fd = mkconnection (host, httpsport, msg);
|
||||
+ if (fd < 0)
|
||||
+ return (-1);
|
||||
+ }
|
||||
+
|
||||
+ /* fill buf with GETcmd */
|
||||
+ (void) sprintf (buf, "%s", GETcmd);
|
||||
+
|
||||
+ /* start ssl connection */
|
||||
+ ssl = SSL_new (ssl_ctx);
|
||||
+ SSL_set_fd (ssl, fd);
|
||||
+ SSL_connect (ssl);
|
||||
+
|
||||
+ /* log it */
|
||||
+ xe_msg (0, "https: %s", buf);
|
||||
+
|
||||
+ /* send it */
|
||||
+ n = strlen (buf);
|
||||
+ ret = SSL_write (ssl, (unsigned char *)buf, n);
|
||||
+ if (ret <= 0) {
|
||||
+ (void) sprintf (msg, "%s: ssl send error code: %d", host, SSL_get_error (ssl, ret));
|
||||
+ (void) SSL_free (ssl);
|
||||
+ (void) close (fd);
|
||||
+ return (-1);
|
||||
+ }
|
||||
+
|
||||
+ /* caller can read response */
|
||||
+ ssl_fd->fd = fd;
|
||||
+ ssl_fd->ssl = ssl;
|
||||
+ return (fd);
|
||||
+}
|
||||
+
|
||||
+/* receive exactly n bytes from ssl connection ssl_fd into buf.
|
||||
+ * return -1, 0 or n.
|
||||
+ * N.B. with fallback to ordinary read from socket if ssl_fd->ssl is NULL
|
||||
+ */
|
||||
+int
|
||||
+ssl_recvbytes (XE_SSL_FD *ssl_fd, unsigned char buf[], int n)
|
||||
+{
|
||||
+ int ns, tot;
|
||||
+
|
||||
+ for (tot = 0; tot < n; tot += ns) {
|
||||
+ if (tout (TOUT, ssl_fd->fd, 0) < 0)
|
||||
+ return (-1);
|
||||
+ if (ssl_fd->ssl)
|
||||
+ ns = SSL_read (ssl_fd->ssl, (void *)(buf+tot), n-tot);
|
||||
+ else
|
||||
+ ns = read (ssl_fd->fd, (void *)(buf+tot), n-tot);
|
||||
+ if (ns <= 0)
|
||||
+ return (ns);
|
||||
+ }
|
||||
+ return (n);
|
||||
+}
|
||||
+
|
||||
+/* like read(2) except we time out and allow user to cancel.
|
||||
+ * receive up to n bytes from ssl connection ssl_fd into buf.
|
||||
+ * return count, or 0 on eof or -1 on error.
|
||||
+ * N.B. with fallback to ordinary read from socket if ssl_fd->ssl is NULL
|
||||
+ */
|
||||
+int
|
||||
+ssl_readbytes (XE_SSL_FD *ssl_fd, unsigned char buf[], int n)
|
||||
+{
|
||||
+ int ns;
|
||||
+
|
||||
+ if (tout (TOUT, ssl_fd->fd, 0) < 0)
|
||||
+ return (-1);
|
||||
+ if (ssl_fd->ssl)
|
||||
+ ns = SSL_read (ssl_fd->ssl, (void *)buf, n);
|
||||
+ else
|
||||
+ ns = read (ssl_fd->fd, (void *)buf, n);
|
||||
+ return (ns);
|
||||
+}
|
||||
+
|
||||
+/* read up to and including the next '\n' from ssl into buf[max].
|
||||
+ * we silently ignore all '\r'. we add a trailing '\0'.
|
||||
+ * return line length (not counting \0) if all ok, else -1.
|
||||
+ * N.B. with fallback to ordinary read from socket if ssl_fd->ssl is NULL
|
||||
+ */
|
||||
+int
|
||||
+ssl_recvline (XE_SSL_FD *ssl_fd, char buf[], int max)
|
||||
+{
|
||||
+ unsigned char c;
|
||||
+ int n;
|
||||
+
|
||||
+ max--; /* leave room for trailing \0 */
|
||||
+
|
||||
+ for (n = 0; n < max && ssl_recvbytes (ssl_fd, &c, 1) == 1; ) {
|
||||
+ if (c != '\r') {
|
||||
+ buf[n++] = c;
|
||||
+ if (c == '\n') {
|
||||
+ buf[n] = '\0';
|
||||
+ return (n);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return (-1);
|
||||
+}
|
||||
+
|
||||
+/* rather like ssl_recvline but reads ahead in big chunk for efficiency.
|
||||
+ * return length if read a line ok, 0 if hit eof, -1 if error.
|
||||
+ * N.B. we silently swallow all '\r'.
|
||||
+ * N.B. we read ahead and can hide bytes after each call.
|
||||
+ * N.B. with fallback to ordinary read from socket if ssl_fd->ssl is NULL
|
||||
+ */
|
||||
+int
|
||||
+ssl_recvlineb (XE_SSL_FD *ssl_fd, char *buf, int size)
|
||||
+{
|
||||
+ char *origbuf = buf; /* save to prevent overfilling buf */
|
||||
+ char c = '\0';
|
||||
+ int ok = 1;
|
||||
+
|
||||
+ /* always leave room for trailing \n */
|
||||
+ size -= 1;
|
||||
+
|
||||
+ /* read and copy linebuf[next] to buf until buf fills or copied a \n */
|
||||
+ do {
|
||||
+
|
||||
+ if (rb_next >= rb_unk) {
|
||||
+ /* linebuf is empty -- refill */
|
||||
+
|
||||
+ int nr;
|
||||
+
|
||||
+ if (tout (TOUT, ssl_fd->fd, 0) < 0) {
|
||||
+ nr = -1;
|
||||
+ break;
|
||||
+ }
|
||||
+ if (ssl_fd->ssl)
|
||||
+ nr = SSL_read (ssl_fd->ssl, rb_linebuf, sizeof(rb_linebuf));
|
||||
+ else
|
||||
+ nr = read (ssl_fd->fd, rb_linebuf, sizeof(rb_linebuf));
|
||||
if (nr <= 0) {
|
||||
ok = nr;
|
||||
rb_next = 0;
|
@ -1,87 +0,0 @@
|
||||
--- sunmenu.c.orig 2012-04-01 22:38:50 UTC
|
||||
+++ sunmenu.c
|
||||
@@ -884,9 +884,11 @@ readSOHOImage()
|
||||
int isjpeg, jpegl;
|
||||
int njpeg;
|
||||
unsigned char *jpeg;
|
||||
+ XE_SSL_FD ssl_fd;
|
||||
int fd, nr;
|
||||
struct tm tm;
|
||||
|
||||
+ memset(&ssl_fd, 0, sizeof(ssl_fd));
|
||||
memset(&tm, 0, sizeof(struct tm));
|
||||
|
||||
/* get desired type and size */
|
||||
@@ -899,18 +901,18 @@ readSOHOImage()
|
||||
|
||||
/* build GET command */
|
||||
sprintf (get, "GET http://%s%s HTTP/1.0\r\nUser-Agent: xephem/%s\r\n\r\n", sohohost, fn, PATCHLEVEL);
|
||||
-
|
||||
+
|
||||
/* query server */
|
||||
- fd = httpGET (sohohost, get, buf);
|
||||
+ fd = httpsGET (sohohost, get, buf, &ssl_fd);
|
||||
if (fd < 0) {
|
||||
- xe_msg (1, "http get: %s", buf);
|
||||
+ xe_msg (1, "https get: %s", buf);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
/* read header (everything to first blank line), looking for jpeg */
|
||||
isjpeg = 0;
|
||||
jpegl = 0;
|
||||
- while (recvline (fd, buf, sizeof(buf)) > 1) {
|
||||
+ while (ssl_recvline (&ssl_fd, buf, sizeof(buf)) > 1) {
|
||||
xe_msg (0, "Rcv: %s", buf);
|
||||
if (strstr (buf, "Content-Type:") && strstr (buf, "image/jpeg"))
|
||||
isjpeg = 1;
|
||||
@@ -923,15 +925,17 @@ readSOHOImage()
|
||||
}
|
||||
}
|
||||
if (!isjpeg) {
|
||||
- while (recvline (fd, buf, sizeof(buf)) > 0)
|
||||
+ while (ssl_recvline (&ssl_fd, buf, sizeof(buf)) > 0)
|
||||
xe_msg (0, "Rcv: %s", buf);
|
||||
xe_msg (1, "Error talking to SOHO .. see File->System log\n");
|
||||
- close (fd);
|
||||
+ SSL_free (ssl_fd.ssl);
|
||||
+ close (ssl_fd.fd);
|
||||
return (-1);
|
||||
}
|
||||
if (jpegl == 0) {
|
||||
xe_msg (1, "No Content-Length in header");
|
||||
- close (fd);
|
||||
+ SSL_free (ssl_fd.ssl);
|
||||
+ close (ssl_fd.fd);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
@@ -941,20 +945,22 @@ readSOHOImage()
|
||||
for (njpeg = 0; njpeg < jpegl; njpeg += nr) {
|
||||
pm_set (100*njpeg/jpegl);
|
||||
jpeg = (unsigned char *) XtRealloc ((char*)jpeg, njpeg+NSREAD);
|
||||
- nr = readbytes (fd, jpeg+njpeg, NSREAD);
|
||||
- if (nr < 0) {
|
||||
- xe_msg (1, "%s:\n%s", sohohost, syserrstr());
|
||||
+ nr = SSL_read (ssl_fd.ssl, jpeg+njpeg, NSREAD);
|
||||
+ if (nr <= 0) {
|
||||
+ xe_msg (1, "%s: ssl read error code: %d", sohohost, SSL_get_error(ssl_fd.ssl, nr));
|
||||
pm_down();
|
||||
- close (fd);
|
||||
+ SSL_free (ssl_fd.ssl);
|
||||
+ close (ssl_fd.fd);
|
||||
return (-1);
|
||||
}
|
||||
if (nr == 0)
|
||||
break;
|
||||
}
|
||||
pm_down();
|
||||
- close (fd);
|
||||
+ SSL_free (ssl_fd.ssl);
|
||||
+ close (ssl_fd.fd);
|
||||
|
||||
- sprintf (fn, "/%s_%s.jpg", filetime, filetype);
|
||||
+ sprintf (fn, "/%s_%s.jpg", filetime, filetype);
|
||||
/* display jpeg */
|
||||
if (displayPic (fn, jpeg, njpeg) < 0)
|
||||
return (-1);
|
@ -1,63 +0,0 @@
|
||||
--- ucac.c.orig 2013-03-02 02:41:37 UTC
|
||||
+++ ucac.c
|
||||
@@ -18,15 +18,15 @@
|
||||
|
||||
#define MAXFOV 15.0 /* max fov, degs */
|
||||
|
||||
-typedef unsigned char UC; /* byte */
|
||||
-typedef unsigned int UI; /* unsigned integer */
|
||||
+typedef unsigned char XE_UC; /* byte */
|
||||
+typedef unsigned int XE_UI; /* unsigned integer */
|
||||
|
||||
/* access an I*2 or I*4 at offset i in UC array a in little-endian byte order.
|
||||
* a bit slow but ultra portable.
|
||||
*/
|
||||
-#define I2(a,i) ((int)(short)((((UI)(a)[i]) | (((UI)(a)[i+1])<<8))))
|
||||
-#define I4(a,i) ((int)((((UI)(a)[i]) | (((UI)(a)[i+1])<<8) | \
|
||||
- (((UI)(a)[i+2])<<16) | (((UI)(a)[i+3])<<24))))
|
||||
+#define I2(a,i) ((int)(short)((((XE_UI)(a)[i]) | (((XE_UI)(a)[i+1])<<8))))
|
||||
+#define I4(a,i) ((int)((((XE_UI)(a)[i]) | (((XE_UI)(a)[i+1])<<8) | \
|
||||
+ (((XE_UI)(a)[i+2])<<16) | (((XE_UI)(a)[i+3])<<24))))
|
||||
|
||||
/* keep track of an array of ObjF */
|
||||
typedef struct {
|
||||
@@ -48,9 +48,9 @@ typedef struct {
|
||||
|
||||
#define DPMAS (1.0/3600000.0) /* degrees per milliarcsecond */
|
||||
|
||||
-typedef UC U2Star[44]; /* UCAC2 record */
|
||||
-typedef UC U3Star[84]; /* UCAC3 record */
|
||||
-typedef UC U4Star[78]; /* UCAC4 record */
|
||||
+typedef XE_UC U2Star[44]; /* UCAC2 record */
|
||||
+typedef XE_UC U3Star[84]; /* UCAC3 record */
|
||||
+typedef XE_UC U4Star[78]; /* UCAC4 record */
|
||||
static char *basedir; /* full dir with zone files and index */
|
||||
static FILE *indexfp; /* index file handle */
|
||||
|
||||
@@ -293,7 +293,7 @@ static int
|
||||
read4Index (int rz, int dz, int *nskip, int *nnew)
|
||||
{
|
||||
off_t offset;
|
||||
- UC i4[4];
|
||||
+ XE_UC i4[4];
|
||||
|
||||
offset = (rz*NZH4 + dz)*sizeof(i4);
|
||||
if (fseek (indexfp, offset, SEEK_SET) < 0) {
|
||||
@@ -508,7 +508,7 @@ static int
|
||||
read3Index (int rz, int dz, int *nskip, int *nnew)
|
||||
{
|
||||
off_t offset;
|
||||
- UC i4[4];
|
||||
+ XE_UC i4[4];
|
||||
|
||||
offset = (rz*NZH + dz)*sizeof(i4);
|
||||
if (fseek (indexfp, offset, SEEK_SET) < 0) {
|
||||
@@ -663,7 +663,7 @@ static int
|
||||
get2N (int rz, int dz, int *idp)
|
||||
{
|
||||
off_t offset;
|
||||
- UC nat[4];
|
||||
+ XE_UC nat[4];
|
||||
|
||||
offset = (dz*NZW + rz)*sizeof(nat);
|
||||
if (fseek (indexfp, offset, SEEK_SET) < 0)
|
@ -1,49 +0,0 @@
|
||||
--- usno.c.orig 2005-03-20 11:04:51 UTC
|
||||
+++ usno.c
|
||||
@@ -14,8 +14,8 @@
|
||||
#define CATBPR 12 /* bytes per star record in .cat file */
|
||||
#define ACCBPR 30 /* bytes per record in .acc file */
|
||||
|
||||
-typedef unsigned int UI;
|
||||
-typedef unsigned char UC;
|
||||
+typedef unsigned int XE_UI;
|
||||
+typedef unsigned char XE_UC;
|
||||
|
||||
/* One Field star */
|
||||
typedef struct {
|
||||
@@ -36,7 +36,7 @@ static int corner (double r0, double d0, double rov, i
|
||||
double lr[2], int *nd, double fd[2], double ld[2], int zone[2], char msg[]);
|
||||
static int fetchSwath (int zone, double maxmag, double fr, double lr,
|
||||
double fd, double ld, StarArray *sap, char msg[]);
|
||||
-static int crackCatBuf (UC buf[CATBPR], FieldStar *fsp);
|
||||
+static int crackCatBuf (XE_UC buf[CATBPR], FieldStar *fsp);
|
||||
static int addGS (StarArray *sap, FieldStar *fsp);
|
||||
|
||||
static char *cdpath; /* where CD rom is mounted */
|
||||
@@ -236,7 +236,7 @@ double ld, StarArray *sap, char msg[])
|
||||
{
|
||||
char fn[1024];
|
||||
char buf[ACCBPR];
|
||||
- UC catbuf[CATBPR];
|
||||
+ XE_UC catbuf[CATBPR];
|
||||
FieldStar fs;
|
||||
long frec;
|
||||
long os;
|
||||
@@ -314,13 +314,13 @@ double ld, StarArray *sap, char msg[])
|
||||
* return 0 if ok, else -1.
|
||||
*/
|
||||
static int
|
||||
-crackCatBuf (UC buf[CATBPR], FieldStar *fsp)
|
||||
+crackCatBuf (XE_UC buf[CATBPR], FieldStar *fsp)
|
||||
{
|
||||
-#define BEUPACK(b) (((UI)((b)[0])<<24) | ((UI)((b)[1])<<16) | ((UI)((b)[2])<<8)\
|
||||
- | ((UI)((b)[3])))
|
||||
+#define BEUPACK(b) (((XE_UI)((b)[0])<<24) | ((XE_UI)((b)[1])<<16) | ((XE_UI)((b)[2])<<8)\
|
||||
+ | ((XE_UI)((b)[3])))
|
||||
double ra, dec;
|
||||
int red, blu;
|
||||
- UI mag;
|
||||
+ XE_UI mag;
|
||||
|
||||
/* first 4 bytes are packed RA, big-endian */
|
||||
ra = BEUPACK(buf)/(100.0*3600.0*15.0);
|
@ -1,104 +0,0 @@
|
||||
--- webdbmenu.c.orig 2012-11-23 05:22:09 UTC
|
||||
+++ webdbmenu.c
|
||||
@@ -404,6 +404,10 @@ getURL (url)
|
||||
char *url;
|
||||
{
|
||||
static char http[] = "http://";
|
||||
+ static char https[] = "https://";
|
||||
+ char *transport = http;
|
||||
+ int ltransport = strlen (transport);
|
||||
+ int ishttp = 0;
|
||||
char buf[512], msg[1024];
|
||||
char l0[512], l1[512], l2[512];
|
||||
char *l0p = l0, *l1p = l1, *l2p = l2;
|
||||
@@ -411,21 +415,31 @@ char *url;
|
||||
char *slash, *dot;
|
||||
char filename[256];
|
||||
FILE *fp;
|
||||
+ XE_SSL_FD ssl_fd;
|
||||
int sockfd;
|
||||
int nfound;
|
||||
|
||||
+ memset(&ssl_fd, 0, sizeof(ssl_fd));
|
||||
+
|
||||
/* start */
|
||||
watch_cursor(1);
|
||||
l0[0] = l1[0] = l2[0] = '\0';
|
||||
|
||||
/* find transport and host */
|
||||
- if (strncmp (url, http, 7)) {
|
||||
- xe_msg (1, "URL must begin with %s", http);
|
||||
+ if (!strncmp (url, transport, ltransport)) {
|
||||
+ ishttp = 1;
|
||||
+ } else {
|
||||
+ transport = https;
|
||||
+ ltransport = strlen (transport);
|
||||
+ }
|
||||
+
|
||||
+ if ((!ishttp) && (strncmp (url, transport, ltransport))) {
|
||||
+ xe_msg (1, "URL must begin with %s or %s", http, https);
|
||||
watch_cursor (0);
|
||||
return;
|
||||
}
|
||||
|
||||
- slash = strchr (url+7, '/');
|
||||
+ slash = strchr (url+ltransport, '/');
|
||||
dot = strrchr (url, '.');
|
||||
if (!slash || !dot) {
|
||||
xe_msg (1, "Badly formed URL");
|
||||
@@ -434,11 +448,16 @@ char *url;
|
||||
}
|
||||
|
||||
/* connect to check url */
|
||||
- sprintf (host, "%.*s", (int)(slash-url-7), url+7);
|
||||
+ sprintf (host, "%.*s", (int)(slash-url-ltransport), url+ltransport);
|
||||
sprintf (buf, "GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\nUser-Agent: xephem/%s\r\n\r\n",
|
||||
url, host, PATCHLEVEL);
|
||||
stopd_up();
|
||||
- sockfd = httpGET (host, buf, msg);
|
||||
+ if (ishttp) {
|
||||
+ sockfd = httpGET (host, buf, msg);
|
||||
+ ssl_fd.fd = sockfd;
|
||||
+ } else {
|
||||
+ sockfd = httpsGET (host, buf, msg, &ssl_fd);
|
||||
+ }
|
||||
if (sockfd < 0) {
|
||||
xe_msg (1, "http GET to %s failed: %s%s\n", host, buf, msg);
|
||||
stopd_down();
|
||||
@@ -447,20 +466,22 @@ char *url;
|
||||
}
|
||||
|
||||
/* create local file */
|
||||
- slash = strrchr (url+7, '/');
|
||||
+ slash = strrchr (url+ltransport, '/');
|
||||
sprintf (filename, "%s/%.*sedb", getPrivateDir(), (int)(dot-slash), slash+1);
|
||||
fp = fopen (filename, "w");
|
||||
if (!fp) {
|
||||
xe_msg (1, "%s:\n%s", filename, syserrstr());
|
||||
watch_cursor (0);
|
||||
- close (sockfd);
|
||||
+ if (!ishttp)
|
||||
+ SSL_free (ssl_fd.ssl);
|
||||
+ close (ssl_fd.fd);
|
||||
return;
|
||||
}
|
||||
|
||||
/* copy to file, insuring only .edb lines.
|
||||
*/
|
||||
nfound = 0;
|
||||
- while (recvlineb (sockfd, l2p, sizeof(l2)) > 0) {
|
||||
+ while (ssl_recvlineb (&ssl_fd, l2p, sizeof(l2)) > 0) {
|
||||
char *lrot;
|
||||
Obj o;
|
||||
|
||||
@@ -484,7 +505,9 @@ char *url;
|
||||
|
||||
/* tidy up and done */
|
||||
fclose (fp);
|
||||
- close (sockfd);
|
||||
+ if (!ishttp)
|
||||
+ SSL_free (ssl_fd.ssl);
|
||||
+ close (ssl_fd.fd);
|
||||
if (!nfound) {
|
||||
xe_msg (1, "No objects in file");
|
||||
remove (filename);
|
@ -1,16 +0,0 @@
|
||||
--- xephem.h.orig 2012-12-30 17:01:12 UTC
|
||||
+++ xephem.h
|
||||
@@ -12,12 +12,12 @@
|
||||
|
||||
#include <stdarg.h> /* be kind to those who don't use xe_msg() */
|
||||
|
||||
+#include "net.h" /* has to be included before astro.h because of openssl */
|
||||
#include "astro.h"
|
||||
#include "ip.h"
|
||||
|
||||
/* local glue files */
|
||||
#include "map.h"
|
||||
-#include "net.h"
|
||||
#include "patchlevel.h"
|
||||
#include "preferences.h"
|
||||
#include "db.h"
|
@ -10,10 +10,12 @@ lib/X11/xephem/auxil/classicfigs.csf
|
||||
lib/X11/xephem/auxil/dearth.gif
|
||||
lib/X11/xephem/auxil/favorites.fav
|
||||
lib/X11/xephem/auxil/jupiter.1020
|
||||
lib/X11/xephem/auxil/jupiter.2040
|
||||
lib/X11/xephem/auxil/jupiter.9910
|
||||
lib/X11/xephem/auxil/jupitermap.gif
|
||||
lib/X11/xephem/auxil/logo.gif
|
||||
lib/X11/xephem/auxil/mars.1020
|
||||
lib/X11/xephem/auxil/mars.2040
|
||||
lib/X11/xephem/auxil/mars.9910
|
||||
lib/X11/xephem/auxil/mars_db
|
||||
lib/X11/xephem/auxil/marsmap.jpg
|
||||
@ -28,14 +30,15 @@ lib/X11/xephem/auxil/saturn16.gif
|
||||
lib/X11/xephem/auxil/saturn20.gif
|
||||
lib/X11/xephem/auxil/saturn24.gif
|
||||
lib/X11/xephem/auxil/saturne.1020
|
||||
lib/X11/xephem/auxil/saturne.2040
|
||||
lib/X11/xephem/auxil/saturne.9910
|
||||
lib/X11/xephem/auxil/starcensus.txt
|
||||
lib/X11/xephem/auxil/uranus.1020
|
||||
lib/X11/xephem/auxil/uranus.2040
|
||||
lib/X11/xephem/auxil/uranus.9910
|
||||
lib/X11/xephem/auxil/wmm.cof
|
||||
lib/X11/xephem/auxil/xephem_sites
|
||||
lib/X11/xephem/auxil/xephem_skyhist
|
||||
lib/X11/xephem/auxil/._wmm.cof
|
||||
lib/X11/xephem/catalogs/Messier.edb
|
||||
lib/X11/xephem/catalogs/SKY2k65.edb
|
||||
lib/X11/xephem/fifos/Makefile
|
||||
@ -167,5 +170,4 @@ lib/X11/xephem/help/png/valid-html401.png
|
||||
lib/X11/xephem/help/png/wcssolver.png
|
||||
lib/X11/xephem/help/xephem.html
|
||||
lib/X11/xephem/lo/lodb.xml
|
||||
lib/X11/xephem/lo/._lodb.xml
|
||||
man/man1/xephem.1.gz
|
||||
|
Loading…
Reference in New Issue
Block a user