mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-09 12:54:23 +01:00
See ChangeLog: Fri Oct 8 20:32:01 CEST 1999 Werner Koch
This commit is contained in:
parent
296f9de0bc
commit
5e66583143
@ -1,3 +1,11 @@
|
|||||||
|
Fri Oct 8 20:32:01 CEST 1999 Werner Koch <wk@gnupg.de>
|
||||||
|
|
||||||
|
* configure.in: Fixed quoting in test for development version.
|
||||||
|
|
||||||
|
* THANKS: Add entries for Michael, Brenno and J Horacio who did
|
||||||
|
very nice Howto documents - I apoligize for forgetting to mention them
|
||||||
|
earlier.
|
||||||
|
|
||||||
Tue Sep 28 20:54:37 CEST 1999 Werner Koch <wk@gnupg.de>
|
Tue Sep 28 20:54:37 CEST 1999 Werner Koch <wk@gnupg.de>
|
||||||
|
|
||||||
* textfilter.c (copy_clearsig_text) [__MINGW32__): Use CR,LF.
|
* textfilter.c (copy_clearsig_text) [__MINGW32__): Use CR,LF.
|
||||||
|
2
NEWS
2
NEWS
@ -1,6 +1,8 @@
|
|||||||
|
|
||||||
* New command --verify-files.
|
* New command --verify-files.
|
||||||
|
|
||||||
|
* $http_proxy is now used when --honor-http-proxy is set.
|
||||||
|
|
||||||
* Fixed some minor bugs and the problem with conventional encrypted
|
* Fixed some minor bugs and the problem with conventional encrypted
|
||||||
packets which did use the gpg v3 partial length headers.
|
packets which did use the gpg v3 partial length headers.
|
||||||
|
|
||||||
|
200
THANKS
200
THANKS
@ -3,106 +3,110 @@ reporting problems, suggesting various improvements or submitting actual
|
|||||||
code. Here is a list of those people. Help me keep it complete and free of
|
code. Here is a list of those people. Help me keep it complete and free of
|
||||||
errors.
|
errors.
|
||||||
|
|
||||||
Allan Clark allanc@sco.com
|
Allan Clark allanc@sco.com
|
||||||
Anand Kumria wildfire@progsoc.uts.edu.au
|
Anand Kumria wildfire@progsoc.uts.edu.au
|
||||||
Ariel T Glenn ariel@columbia.edu
|
Ariel T Glenn ariel@columbia.edu
|
||||||
Bodo Moeller Bodo_Moeller@public.uni-hamburg.de
|
Bodo Moeller Bodo_Moeller@public.uni-hamburg.de
|
||||||
Bryan Fullerton bryanf@samurai.com
|
Brenno de Winter brenno@dewinter.com
|
||||||
Brian Moore bem@cmc.net
|
Brian Moore bem@cmc.net
|
||||||
Brian Warner warner@lothar.com
|
Brian Warner warner@lothar.com
|
||||||
Caskey L. Dickson caskey@technocage.com
|
Bryan Fullerton bryanf@samurai.com
|
||||||
Cees van de Griend cees-list@griend.xs4all.nl
|
Caskey L. Dickson caskey@technocage.com
|
||||||
Charles Levert charles@comm.polymtl.ca
|
Cees van de Griend cees-list@griend.xs4all.nl
|
||||||
Christian von Roques roques@pond.sub.org
|
Charles Levert charles@comm.polymtl.ca
|
||||||
Christopher Oliver oliver@fritz.traverse.net
|
Christian von Roques roques@pond.sub.org
|
||||||
Christian Recktenwald chris@citecs.de
|
Christopher Oliver oliver@fritz.traverse.net
|
||||||
Daniel Eisenbud eisenbud@cs.swarthmore.edu
|
Christian Recktenwald chris@citecs.de
|
||||||
Daniel Koening dan@mail.isis.de
|
Daniel Eisenbud eisenbud@cs.swarthmore.edu
|
||||||
David Ellement ellement@sdd.hp.com
|
Daniel Koening dan@mail.isis.de
|
||||||
Detlef Lannert lannert@lannert.rz.uni-duesseldorf.de
|
David Ellement ellement@sdd.hp.com
|
||||||
Dirk Lattermann dlatt@t-online.de
|
Detlef Lannert lannert@lannert.rz.uni-duesseldorf.de
|
||||||
Ed Boraas ecxjo@esperanto.org
|
Dirk Lattermann dlatt@t-online.de
|
||||||
Enzo Michelangeli em@MailAndNews.com
|
Ed Boraas ecxjo@esperanto.org
|
||||||
Ernst Molitor ernst.molitor@uni-bonn.de
|
Enzo Michelangeli em@MailAndNews.com
|
||||||
Fabio Coatti cova@felix.unife.it
|
Ernst Molitor ernst.molitor@uni-bonn.de
|
||||||
Felix von Leitner leitner@amdiv.de
|
Fabio Coatti cova@felix.unife.it
|
||||||
Frank Heckenbach heckenb@mi.uni-erlangen.de
|
Felix von Leitner leitner@amdiv.de
|
||||||
Frank Stajano frank.stajano@cl.cam.ac.uk
|
Frank Heckenbach heckenb@mi.uni-erlangen.de
|
||||||
Gaël Quéri gqueri@mail.dotcom.fr
|
Frank Stajano frank.stajano@cl.cam.ac.uk
|
||||||
Greg Louis glouis@dynamicro.on.ca
|
Gaël Quéri gqueri@mail.dotcom.fr
|
||||||
Greg Troxel gdt@ir.bbn.com
|
Greg Louis glouis@dynamicro.on.ca
|
||||||
Gregory Steuck steuck@iname.com
|
Greg Troxel gdt@ir.bbn.com
|
||||||
Geoff Keating geoffk@ozemail.com.au
|
Gregory Steuck steuck@iname.com
|
||||||
Harald Denker harry@hal.westfalen.de
|
Geoff Keating geoffk@ozemail.com.au
|
||||||
Hendrik Buschkamp buschkamp@rheumanet.org
|
Harald Denker harry@hal.westfalen.de
|
||||||
Holger Schurig holger@d.om.org
|
Hendrik Buschkamp buschkamp@rheumanet.org
|
||||||
Hugh Daniel hugh@toad.com
|
Holger Schurig holger@d.om.org
|
||||||
Ian McKellar imckellar@harvestroad.com.au
|
Hugh Daniel hugh@toad.com
|
||||||
Janusz A. Urbanowicz alex@bofh.torun.pl
|
Ian McKellar imckellar@harvestroad.com.au
|
||||||
James Troup james@nocrew.org
|
Janusz A. Urbanowicz alex@bofh.torun.pl
|
||||||
Jean-loup Gailly gzip@prep.ai.mit.edu
|
James Troup james@nocrew.org
|
||||||
Jens Bachem bachem@rrz.uni-koeln.de
|
Jean-loup Gailly gzip@prep.ai.mit.edu
|
||||||
Joachim Backes backes@rhrk.uni-kl.de
|
Jens Bachem bachem@rrz.uni-koeln.de
|
||||||
John A. Martin jam@jamux.com
|
J Horacio MG homega@ciberia.es
|
||||||
Johnny Teveßen j.tevessen@gmx.de
|
Joachim Backes backes@rhrk.uni-kl.de
|
||||||
Jörg Schilling schilling@fokus.gmd.de
|
John A. Martin jam@jamux.com
|
||||||
Jun Kuriyama kuriyama@sky.rim.or.jp
|
Johnny Teveßen j.tevessen@gmx.de
|
||||||
Karl Fogel kfogel@guanabana.onshore.com
|
Jörg Schilling schilling@fokus.gmd.de
|
||||||
Karsten Thygesen karthy@kom.auc.dk
|
Jun Kuriyama kuriyama@sky.rim.or.jp
|
||||||
Katsuhiro Kondou kondou@nec.co.jp
|
Karl Fogel kfogel@guanabana.onshore.com
|
||||||
Kazu Yamamoto kazu@iijlab.net
|
Karsten Thygesen karthy@kom.auc.dk
|
||||||
Lars Kellogg-Stedman lars@bu.edu
|
Katsuhiro Kondou kondou@nec.co.jp
|
||||||
Marco d'Itri md@linux.it
|
Kazu Yamamoto kazu@iijlab.net
|
||||||
Mark Adler madler@alumni.caltech.edu
|
Lars Kellogg-Stedman lars@bu.edu
|
||||||
Mark Elbrecht snowball3@bigfoot.com
|
Marco d'Itri md@linux.it
|
||||||
Markus Friedl Markus.Friedl@informatik.uni-erlangen.de
|
Mark Adler madler@alumni.caltech.edu
|
||||||
Martin Kahlert martin.kahlert@provi.de
|
Mark Elbrecht snowball3@bigfoot.com
|
||||||
|
Markus Friedl Markus.Friedl@informatik.uni-erlangen.de
|
||||||
|
Martin Kahlert martin.kahlert@provi.de
|
||||||
Martin Hamilton
|
Martin Hamilton
|
||||||
Martin Schulte schulte@thp.uni-koeln.de
|
Martin Schulte schulte@thp.uni-koeln.de
|
||||||
Matthew Skala mskala@ansuz.sooke.bc.ca
|
Matthew Skala mskala@ansuz.sooke.bc.ca
|
||||||
Max Valianskiy maxcom@maxcom.ml.org
|
Max Valianskiy maxcom@maxcom.ml.org
|
||||||
Michael Roth mroth@nessie.de
|
Michael Fischer v. Mollard mfvm@gmx.de
|
||||||
Michael Sobolev mss@despair.transas.com
|
Michael Roth mroth@nessie.de
|
||||||
Nicolas Graner Nicolas.Graner@cri.u-psud.fr
|
Michael Sobolev mss@despair.transas.com
|
||||||
NIIBE Yutaka gniibe@chroot.org
|
Nicolas Graner Nicolas.Graner@cri.u-psud.fr
|
||||||
|
NIIBE Yutaka gniibe@chroot.org
|
||||||
Niklas Hernaeus
|
Niklas Hernaeus
|
||||||
Nimrod Zimerman zimerman@forfree.at
|
Nimrod Zimerman zimerman@forfree.at
|
||||||
N J Doye nic@niss.ac.uk
|
N J Doye nic@niss.ac.uk
|
||||||
Oliver Haakert haakert@hsp.de
|
Oliver Haakert haakert@hsp.de
|
||||||
Oskari Jääskeläinen f33003a@cc.hut.fi
|
Oskari Jääskeläinen f33003a@cc.hut.fi
|
||||||
Paul D. Smith psmith@baynetworks.com
|
Paul D. Smith psmith@baynetworks.com
|
||||||
Philippe Laliberte arsphl@oeil.qc.ca
|
Philippe Laliberte arsphl@oeil.qc.ca
|
||||||
Peter Gutmann pgut001@cs.auckland.ac.nz
|
Peter Gutmann pgut001@cs.auckland.ac.nz
|
||||||
QingLong qinglong@bolizm.ihep.su
|
QingLong qinglong@bolizm.ihep.su
|
||||||
Ralph Gillen gillen@theochem.uni-duesseldorf.de
|
Ralph Gillen gillen@theochem.uni-duesseldorf.de
|
||||||
Rat ratinox@peorth.gweep.net
|
Rat ratinox@peorth.gweep.net
|
||||||
Reinhard Wobst R.Wobst@ifw-dresden.de
|
Reinhard Wobst R.Wobst@ifw-dresden.de
|
||||||
Rémi Guyomarch rguyom@mail.dotcom.fr
|
Rémi Guyomarch rguyom@mail.dotcom.fr
|
||||||
Reuben Sumner rasumner@wisdom.weizmann.ac.il
|
Reuben Sumner rasumner@wisdom.weizmann.ac.il
|
||||||
Richard Outerbridge outer@interlog.com
|
Richard Outerbridge outer@interlog.com
|
||||||
Roddy Strachan roddy@satlink.com.au
|
Roddy Strachan roddy@satlink.com.au
|
||||||
Roland Rosenfeld roland@spinnaker.rhein.de
|
Roland Rosenfeld roland@spinnaker.rhein.de
|
||||||
Ross Golder rossigee@bigfoot.com
|
Ross Golder rossigee@bigfoot.com
|
||||||
Serge Munhoven munhoven@mema.ucl.ac.be
|
Serge Munhoven munhoven@mema.ucl.ac.be
|
||||||
SL Baur steve@xemacs.org
|
SL Baur steve@xemacs.org
|
||||||
Stefan Karrmann S.Karrmann@gmx.net
|
Stefan Karrmann S.Karrmann@gmx.net
|
||||||
Stefan Keller dres@cs.tu-berlin.de
|
Stefan Keller dres@cs.tu-berlin.de
|
||||||
Steffen Ullrich ccrlphr@xensei.com
|
Steffen Ullrich ccrlphr@xensei.com
|
||||||
Steffen Zahn zahn@berlin.snafu.de
|
Steffen Zahn zahn@berlin.snafu.de
|
||||||
Steven Bakker steven@icoe.att.com
|
Steven Bakker steven@icoe.att.com
|
||||||
Susanne Schultz schultz@hsp.de
|
Susanne Schultz schultz@hsp.de
|
||||||
Thiago Jung Bauermann jungmann@cwb.matrix.com.br
|
Thiago Jung Bauermann jungmann@cwb.matrix.com.br
|
||||||
Thomas Roessler roessler@guug.de
|
Thomas Roessler roessler@guug.de
|
||||||
Tom Spindler dogcow@home.merit.edu
|
Tom Spindler dogcow@home.merit.edu
|
||||||
Tom Zerucha tzeruch@ceddec.com
|
Tom Zerucha tzeruch@ceddec.com
|
||||||
Tomas Fasth tomas.fasth@twinspot.net
|
Tomas Fasth tomas.fasth@twinspot.net
|
||||||
Thomas Mikkelsen tbm@image.dk
|
Thomas Mikkelsen tbm@image.dk
|
||||||
Ulf Möller 3umoelle@informatik.uni-hamburg.de
|
Ulf Möller 3umoelle@informatik.uni-hamburg.de
|
||||||
Urko Lusa ulusa@lacueva.ddns.org
|
Urko Lusa ulusa@lacueva.ddns.org
|
||||||
Walter Koch koch@hsp.de
|
Walter Hofmann Walter.Hofmann@physik.stud.uni-erlangen.de
|
||||||
Werner Koch werner.koch@guug.de
|
Walter Koch koch@hsp.de
|
||||||
Wim Vandeputte bunbun@reptile.rug.ac.be
|
Werner Koch werner.koch@guug.de
|
||||||
nbecker@hns.com
|
Wim Vandeputte bunbun@reptile.rug.ac.be
|
||||||
|
nbecker@hns.com
|
||||||
|
|
||||||
Thanks to the German Unix User Group for providing FTP space,
|
Thanks to the German Unix User Group for providing FTP space,
|
||||||
Martin Hamilton for hosting the mailing list and HSP for
|
Martin Hamilton for hosting the mailing list and HSP for
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
Fri Oct 8 20:32:01 CEST 1999 Werner Koch <wk@gnupg.de>
|
||||||
|
|
||||||
|
* rndw32.c (load_and_init_winseed): Use the Registry to locate the DLL
|
||||||
|
|
||||||
Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de>
|
Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de>
|
||||||
|
|
||||||
* md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
|
* md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
|
||||||
|
@ -68,8 +68,6 @@ static WIN32_SEEDER slow_seeder, fast_seeder;
|
|||||||
static byte *entropy_buffer;
|
static byte *entropy_buffer;
|
||||||
static size_t entropy_buffer_size;
|
static size_t entropy_buffer_size;
|
||||||
|
|
||||||
static char *entropy_dll;
|
|
||||||
|
|
||||||
/****************
|
/****************
|
||||||
* Load and initialize the winseed DLL
|
* Load and initialize the winseed DLL
|
||||||
* NOTE: winseed is not part of the GnuPG distribution. It should be available
|
* NOTE: winseed is not part of the GnuPG distribution. It should be available
|
||||||
@ -84,7 +82,13 @@ load_and_init_winseed( void )
|
|||||||
void *addr;
|
void *addr;
|
||||||
unsigned int reason = 0;
|
unsigned int reason = 0;
|
||||||
unsigned int n1, n2;
|
unsigned int n1, n2;
|
||||||
const char *dllname = entropy_dll? entropy_dll : "c:/gnupg/entropy.dll";
|
const char *dllname;
|
||||||
|
|
||||||
|
dllname = read_w32_registry_string( "HKEY_LOCAL_MACHINE",
|
||||||
|
"Software\\GNU\\GnuPG",
|
||||||
|
"EntropyDLL" );
|
||||||
|
if( !dllname )
|
||||||
|
dllname = "c:/gnupg/entropy.dll";
|
||||||
|
|
||||||
hInstance = LoadLibrary( dllname );
|
hInstance = LoadLibrary( dllname );
|
||||||
if( !hInstance )
|
if( !hInstance )
|
||||||
@ -119,15 +123,14 @@ load_and_init_winseed( void )
|
|||||||
g10_log_fatal("error creating winseed fast seeder: rc=%u\n", reason );
|
g10_log_fatal("error creating winseed fast seeder: rc=%u\n", reason );
|
||||||
goto failure;
|
goto failure;
|
||||||
}
|
}
|
||||||
g10_log_info("slow and fast seeders created.\n");
|
|
||||||
n1 = get_internal_seed_size( slow_seeder );
|
n1 = get_internal_seed_size( slow_seeder );
|
||||||
g10_log_info("slow buffer size=%u\n", n1);
|
/*g10_log_info("slow buffer size=%u\n", n1);*/
|
||||||
n2 = get_internal_seed_size( fast_seeder );
|
n2 = get_internal_seed_size( fast_seeder );
|
||||||
g10_log_info("fast buffer size=%u\n", n2);
|
/*g10_log_info("fast buffer size=%u\n", n2);*/
|
||||||
|
|
||||||
entropy_buffer_size = n1 > n2? n1: n2;
|
entropy_buffer_size = n1 > n2? n1: n2;
|
||||||
entropy_buffer = m_alloc( entropy_buffer_size );
|
entropy_buffer = m_alloc( entropy_buffer_size );
|
||||||
g10_log_info("using a buffer of size=%u\n", entropy_buffer_size );
|
/*g10_log_info("using a buffer of size=%u\n", entropy_buffer_size );*/
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -173,13 +176,12 @@ gather_random( void (*add)(const void*, size_t, int), int requester,
|
|||||||
g10_log_fatal("rndw32: get_seed(slow) failed: rc=%u\n", result);
|
g10_log_fatal("rndw32: get_seed(slow) failed: rc=%u\n", result);
|
||||||
return -1; /* actually never reached */
|
return -1; /* actually never reached */
|
||||||
}
|
}
|
||||||
g10_log_info("rndw32: slow poll level %d, need %u, got %u\n",
|
/*g10_log_info("rndw32: slow poll level %d, need %u, got %u\n",
|
||||||
level, (unsigned int)length, (unsigned int)nbytes );
|
level, (unsigned int)length, (unsigned int)nbytes );*/
|
||||||
(*add)( entropy_buffer, nbytes, requester );
|
(*add)( entropy_buffer, nbytes, requester );
|
||||||
if( length <= nbytes )
|
if( length <= nbytes )
|
||||||
return 0; /* okay */
|
return 0; /* okay */
|
||||||
length -= nbytes;
|
length -= nbytes;
|
||||||
g10_log_info("rndw32: need more\n");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,14 +248,6 @@ gnupgext_enum_func( int what, int *sequence, int *class, int *vers )
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_STATIC_RNDW32
|
|
||||||
void
|
|
||||||
rndw32_set_dll_name( const char *name )
|
|
||||||
{
|
|
||||||
entropy_dll = m_strdup( name );
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef IS_MODULE
|
#ifndef IS_MODULE
|
||||||
void
|
void
|
||||||
rndw32_constructor(void)
|
rndw32_constructor(void)
|
||||||
|
@ -680,7 +680,7 @@ AC_SUBST(ZLIBS)
|
|||||||
changequote(,)dnl
|
changequote(,)dnl
|
||||||
tmp_pat='[a-zA-Z]'
|
tmp_pat='[a-zA-Z]'
|
||||||
changequote([,])dnl
|
changequote([,])dnl
|
||||||
if echo "$VERSION" | grep $tmp_pat >/dev/null ; then
|
if echo "$VERSION" | grep "$tmp_pat" >/dev/null ; then
|
||||||
AC_DEFINE(IS_DEVELOPMENT_VERSION)
|
AC_DEFINE(IS_DEVELOPMENT_VERSION)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
13
doc/FAQ
13
doc/FAQ
@ -349,4 +349,17 @@
|
|||||||
line is needed for modern signatures, to tell the parser which
|
line is needed for modern signatures, to tell the parser which
|
||||||
hash algorithm to use.
|
hash algorithm to use.
|
||||||
|
|
||||||
|
Q: Now can a get list of key IDs used to encrypt a message?
|
||||||
|
A: gpg --batch --decrypt --status-fd 1 2>/dev/null \
|
||||||
|
| awk '/^\[GNUPG:\] ENC_TO / { print $3 }'
|
||||||
|
|
||||||
|
|
||||||
|
Q: PGP 5.x, 6.x does not like my secret key.
|
||||||
|
A: PGP probaly bails out on some private comment packets used by GnuPG.
|
||||||
|
These packets are fully in compliance with OpenPGP; however PGP is not
|
||||||
|
really OPenPGP aware. A workaround is to eport the secret keys with
|
||||||
|
this command:
|
||||||
|
|
||||||
|
gpg --export-secret-keys --no-comment -a your-key-id
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ without prior subscribing (but please request to CC you if you want
|
|||||||
to get an answer).
|
to get an answer).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Installation instructions:
|
Installation instructions:
|
||||||
--------------------------
|
--------------------------
|
||||||
1. Unpack the ZIP archive (alright, you already did this)
|
1. Unpack the ZIP archive (alright, you already did this)
|
||||||
@ -25,14 +26,17 @@ Installation instructions:
|
|||||||
3. Create a directory "c:\gnupg" (or any other as you like)
|
3. Create a directory "c:\gnupg" (or any other as you like)
|
||||||
4. Copy the file "entropy.dll" to this directory.
|
4. Copy the file "entropy.dll" to this directory.
|
||||||
5. If you did not use the default directory "c:\gnupg", you
|
5. If you did not use the default directory "c:\gnupg", you
|
||||||
should put a line:
|
should enter a string with the directory into the Registry
|
||||||
"set GNUPGHOME=c:\my_gnupg_directory"
|
under the key:
|
||||||
into your autoexec.bat or wherever you setup the environment
|
\\HKEY_CURRENT_USER\Software\GNU\GnuPG\HomeDir
|
||||||
variables. The create a file named "options" in this
|
Because the default location for the entropy DLL is also the
|
||||||
directory with the contents:
|
c:\gnupg; you have to set another Registry entry with the
|
||||||
"entropy-dll-name c:/my_gnupg_directory/entropy.dll"
|
full name of the DLL (e.g. "c:\foo\bar\entropy.dll") under
|
||||||
(Please notice that you have to use a normal slash and not
|
the key:
|
||||||
a backslash here)
|
\\HKEY_LOCAL_MACHINE\Software\GNU\GnuPG\EntropyDLL
|
||||||
|
Please use forward slashes and not the backslashes when
|
||||||
|
setting filenames for GnuPG into the Registry.
|
||||||
|
|
||||||
6. Enter "gpg" and see what happens
|
6. Enter "gpg" and see what happens
|
||||||
7. Read the file README and the online HOWTOs
|
7. Read the file README and the online HOWTOs
|
||||||
|
|
||||||
@ -41,10 +45,12 @@ Internationalization support:
|
|||||||
-----------------------------
|
-----------------------------
|
||||||
1. Decide where to store the translation files for your language.
|
1. Decide where to store the translation files for your language.
|
||||||
Here we assume the directory "c:/gnu/locale/fr"
|
Here we assume the directory "c:/gnu/locale/fr"
|
||||||
2. Set an environment Variable:
|
2. Set the directory with the translations into the Registry under the key:
|
||||||
"set MINGW32_NLS_DIR=c:/gnu/locale/fr"
|
\\HKEY_CURRENT_USER\Control Panel\Mingw32\NLS\MODir
|
||||||
3. Select which language to use. If you want the French translation,
|
(Example entry: "c:/gnu/locale/fr")
|
||||||
copy the file "fr.mo" to "c:/gnu/locale/fr/gnupg.mo".
|
3. Select which language to use and copy the currect translation file
|
||||||
|
under the name "gnupg.mo" into the directory set in step 2
|
||||||
|
(Example: "copy fr.mo c:\gnu\locale\fr\gnupg.mo")
|
||||||
4. Done.
|
4. Done.
|
||||||
|
|
||||||
Currently we only support the Codepages 437, 850 und Latin1. If you have
|
Currently we only support the Codepages 437, 850 und Latin1. If you have
|
||||||
|
16
doc/gpg.sgml
16
doc/gpg.sgml
@ -732,6 +732,12 @@ balancing using round-robin DNS you may notice
|
|||||||
that you get different key servers.
|
that you get different key servers.
|
||||||
</para></listitem></varlistentry>
|
</para></listitem></varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>--honor-http-proxy</term>
|
||||||
|
<listitem><para>
|
||||||
|
Try to access the keyserver over the proxy set with the variable
|
||||||
|
"http_proxy".
|
||||||
|
</para></listitem></varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>--keyring &ParmFile;</term>
|
<term>--keyring &ParmFile;</term>
|
||||||
@ -1228,13 +1234,6 @@ This is not for normal use. Use the source to see for what it might be useful.
|
|||||||
This is not for normal use. Use the source to see for what it might be useful.
|
This is not for normal use. Use the source to see for what it might be useful.
|
||||||
</para></listitem></varlistentry>
|
</para></listitem></varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>--entropy-dll-name &ParmFile;</term>
|
|
||||||
<listitem><para>
|
|
||||||
This option is only used for the Win32 version of GnuPG and changes the
|
|
||||||
default location (c:/gnupg/entropy.dll) of the Winseed DLL to &ParmFile;.
|
|
||||||
</para></listitem></varlistentry>
|
|
||||||
|
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
@ -1303,6 +1302,9 @@ constructed by cutting off the extension (".asc" or ".sig") of
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>GNUPGHOME</term>
|
<term>GNUPGHOME</term>
|
||||||
<listitem><para>If set directory used instead of "~/.gnupg".</para></listitem>
|
<listitem><para>If set directory used instead of "~/.gnupg".</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<term>http_proxy</term>
|
||||||
|
<listitem><para>Only honored when the option --honor-http-proxy is set.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
Fri Oct 8 20:32:01 CEST 1999 Werner Koch <wk@gnupg.de>
|
||||||
|
|
||||||
|
* ringedit.c (enum_keyblocks): Zero the entire kbpos out on open.
|
||||||
|
|
||||||
|
* g10.c (oEntropyDLL): Removed option.
|
||||||
|
(main): Made the warning on development versions more verbose.
|
||||||
|
|
||||||
|
* g10.c (oHonorHttpProxy): New option.
|
||||||
|
* hkp.c (hkp_ask_import,hkp_export): Implement this option.
|
||||||
|
* options.skel: Enable this option for new installations
|
||||||
|
|
||||||
Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de>
|
Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de>
|
||||||
|
|
||||||
* import.c (import_keys): Changed calling interface, adjusted caller.
|
* import.c (import_keys): Changed calling interface, adjusted caller.
|
||||||
|
35
g10/g10.c
35
g10/g10.c
@ -178,7 +178,7 @@ enum cmd_and_opt_values { aNull = 0,
|
|||||||
oAllowNonSelfsignedUID,
|
oAllowNonSelfsignedUID,
|
||||||
oNoLiteral,
|
oNoLiteral,
|
||||||
oSetFilesize,
|
oSetFilesize,
|
||||||
oEntropyDLLName,
|
oHonorHttpProxy,
|
||||||
oEmu3DESS2KBug, /* will be removed in 1.1 */
|
oEmu3DESS2KBug, /* will be removed in 1.1 */
|
||||||
aTest };
|
aTest };
|
||||||
|
|
||||||
@ -346,7 +346,7 @@ static ARGPARSE_OPTS opts[] = {
|
|||||||
{ oAllowNonSelfsignedUID, "allow-non-selfsigned-uid", 0, "@" },
|
{ oAllowNonSelfsignedUID, "allow-non-selfsigned-uid", 0, "@" },
|
||||||
{ oNoLiteral, "no-literal", 0, "@" },
|
{ oNoLiteral, "no-literal", 0, "@" },
|
||||||
{ oSetFilesize, "set-filesize", 20, "@" },
|
{ oSetFilesize, "set-filesize", 20, "@" },
|
||||||
{ oEntropyDLLName, "entropy-dll-name", 2, "@" },
|
{ oHonorHttpProxy,"honor-http-proxy", 0, "@" },
|
||||||
{ oEmu3DESS2KBug, "emulate-3des-s2k-bug", 0, "@"},
|
{ oEmu3DESS2KBug, "emulate-3des-s2k-bug", 0, "@"},
|
||||||
{0} };
|
{0} };
|
||||||
|
|
||||||
@ -586,7 +586,11 @@ main( int argc, char **argv )
|
|||||||
opt.completes_needed = 1;
|
opt.completes_needed = 1;
|
||||||
opt.marginals_needed = 3;
|
opt.marginals_needed = 3;
|
||||||
opt.max_cert_depth = 5;
|
opt.max_cert_depth = 5;
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
opt.homedir = read_w32_registry_string( NULL, "Software\\GNU\\GnuPG", "HomeDir" );
|
||||||
|
#else
|
||||||
opt.homedir = getenv("GNUPGHOME");
|
opt.homedir = getenv("GNUPGHOME");
|
||||||
|
#endif
|
||||||
if( !opt.homedir || !*opt.homedir ) {
|
if( !opt.homedir || !*opt.homedir ) {
|
||||||
#ifdef HAVE_DRIVE_LETTERS
|
#ifdef HAVE_DRIVE_LETTERS
|
||||||
opt.homedir = "c:/gnupg";
|
opt.homedir = "c:/gnupg";
|
||||||
@ -865,22 +869,10 @@ main( int argc, char **argv )
|
|||||||
case oDisablePubkeyAlgo:
|
case oDisablePubkeyAlgo:
|
||||||
disable_pubkey_algo( string_to_pubkey_algo(pargs.r.ret_str) );
|
disable_pubkey_algo( string_to_pubkey_algo(pargs.r.ret_str) );
|
||||||
break;
|
break;
|
||||||
case oAllowNonSelfsignedUID:
|
case oAllowNonSelfsignedUID: opt.allow_non_selfsigned_uid = 1; break;
|
||||||
opt.allow_non_selfsigned_uid = 1;
|
case oNoLiteral: opt.no_literal = 1; break;
|
||||||
break;
|
case oSetFilesize: opt.set_filesize = pargs.r.ret_ulong; break;
|
||||||
case oNoLiteral:
|
case oHonorHttpProxy: opt.honor_http_proxy = 1; break;
|
||||||
opt.no_literal = 1;
|
|
||||||
break;
|
|
||||||
case oSetFilesize:
|
|
||||||
opt.set_filesize = pargs.r.ret_ulong;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case oEntropyDLLName:
|
|
||||||
#ifdef USE_STATIC_RNDW32
|
|
||||||
log_info("set dllname to `%s'\n", pargs.r.ret_str );
|
|
||||||
rndw32_set_dll_name( pargs.r.ret_str );
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
|
|
||||||
default : pargs.err = configfp? 1:2; break;
|
default : pargs.err = configfp? 1:2; break;
|
||||||
}
|
}
|
||||||
@ -903,8 +895,11 @@ main( int argc, char **argv )
|
|||||||
fprintf(stderr, "%s\n", strusage(15) );
|
fprintf(stderr, "%s\n", strusage(15) );
|
||||||
}
|
}
|
||||||
#ifdef IS_DEVELOPMENT_VERSION
|
#ifdef IS_DEVELOPMENT_VERSION
|
||||||
if( !opt.batch )
|
if( !opt.batch ) {
|
||||||
log_info("NOTE: this is a development version!\n");
|
log_info("NOTE: THIS IS A DEVELOPMENT VERSION!\n");
|
||||||
|
log_info("It is only intended for test purposes and should NOT be\n");
|
||||||
|
log_info("used in a production environment or with production keys!\n");
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
if( opt.force_mdc ) {
|
if( opt.force_mdc ) {
|
||||||
log_info("--force-mdc ignored because"
|
log_info("--force-mdc ignored because"
|
||||||
|
@ -55,6 +55,7 @@ hkp_ask_import( u32 *keyid )
|
|||||||
struct http_context hd;
|
struct http_context hd;
|
||||||
char *request;
|
char *request;
|
||||||
int rc;
|
int rc;
|
||||||
|
unsigned int hflags = opt.honor_http_proxy? HTTP_FLAG_TRY_PROXY : 0;
|
||||||
|
|
||||||
if( !opt.keyserver_name )
|
if( !opt.keyserver_name )
|
||||||
return -1;
|
return -1;
|
||||||
@ -65,7 +66,7 @@ hkp_ask_import( u32 *keyid )
|
|||||||
* nicer one */
|
* nicer one */
|
||||||
sprintf( request, "x-hkp://%s:11371/pks/lookup?op=get&search=0x%08lX",
|
sprintf( request, "x-hkp://%s:11371/pks/lookup?op=get&search=0x%08lX",
|
||||||
opt.keyserver_name, (ulong)keyid[1] );
|
opt.keyserver_name, (ulong)keyid[1] );
|
||||||
rc = http_open_document( &hd, request, 0 );
|
rc = http_open_document( &hd, request, hflags );
|
||||||
if( rc ) {
|
if( rc ) {
|
||||||
log_info("can't get key from keyserver: %s\n",
|
log_info("can't get key from keyserver: %s\n",
|
||||||
rc == G10ERR_NETWORK? strerror(errno)
|
rc == G10ERR_NETWORK? strerror(errno)
|
||||||
@ -120,6 +121,7 @@ hkp_export( STRLIST users )
|
|||||||
struct http_context hd;
|
struct http_context hd;
|
||||||
char *request;
|
char *request;
|
||||||
unsigned int status;
|
unsigned int status;
|
||||||
|
unsigned int hflags = opt.honor_http_proxy? HTTP_FLAG_TRY_PROXY : 0;
|
||||||
|
|
||||||
if( !opt.keyserver_name ) {
|
if( !opt.keyserver_name ) {
|
||||||
log_error("no keyserver known (use option --keyserver)\n");
|
log_error("no keyserver known (use option --keyserver)\n");
|
||||||
@ -142,7 +144,7 @@ hkp_export( STRLIST users )
|
|||||||
|
|
||||||
request = m_alloc( strlen( opt.keyserver_name ) + 100 );
|
request = m_alloc( strlen( opt.keyserver_name ) + 100 );
|
||||||
sprintf( request, "x-hkp://%s:11371/pks/add", opt.keyserver_name );
|
sprintf( request, "x-hkp://%s:11371/pks/add", opt.keyserver_name );
|
||||||
rc = http_open( &hd, HTTP_REQ_POST, request , 0 );
|
rc = http_open( &hd, HTTP_REQ_POST, request , hflags );
|
||||||
if( rc ) {
|
if( rc ) {
|
||||||
log_error("can't connect to `%s': %s\n",
|
log_error("can't connect to `%s': %s\n",
|
||||||
opt.keyserver_name,
|
opt.keyserver_name,
|
||||||
|
@ -509,7 +509,7 @@ do_check_sig( CTX c, KBNODE node, int *is_selfsig )
|
|||||||
}
|
}
|
||||||
else if( sig->sig_class == 0x20 ) {
|
else if( sig->sig_class == 0x20 ) {
|
||||||
log_info(_("standalone revocation - "
|
log_info(_("standalone revocation - "
|
||||||
"use \"gpg --import\" to apply\n"), sig->sig_class);
|
"use \"gpg --import\" to apply\n"));
|
||||||
return G10ERR_NOT_PROCESSED;
|
return G10ERR_NOT_PROCESSED;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -83,6 +83,7 @@ struct {
|
|||||||
int allow_non_selfsigned_uid;
|
int allow_non_selfsigned_uid;
|
||||||
int no_literal;
|
int no_literal;
|
||||||
ulong set_filesize;
|
ulong set_filesize;
|
||||||
|
int honor_http_proxy;
|
||||||
} opt;
|
} opt;
|
||||||
|
|
||||||
|
|
||||||
|
@ -79,3 +79,8 @@ lock-once
|
|||||||
# Use "host -l pgp.net | grep www" to figure out a keyserver.
|
# Use "host -l pgp.net | grep www" to figure out a keyserver.
|
||||||
#keyserver wwwkeys.eu.pgp.net
|
#keyserver wwwkeys.eu.pgp.net
|
||||||
|
|
||||||
|
# The environment variable http_proxy is only used when the
|
||||||
|
# this option is set.
|
||||||
|
|
||||||
|
honor-http-proxy
|
||||||
|
|
||||||
|
@ -194,7 +194,7 @@ do_edit_ownertrust( ulong lid, int mode, unsigned *new_trust, int defer_help )
|
|||||||
|
|
||||||
for(;;) {
|
for(;;) {
|
||||||
/* a string with valid answers */
|
/* a string with valid answers */
|
||||||
char *ans = _("sSmMqQ");
|
const char *ans = _("sSmMqQ");
|
||||||
|
|
||||||
if( !did_help ) {
|
if( !did_help ) {
|
||||||
if( !mode ) {
|
if( !mode ) {
|
||||||
|
@ -308,7 +308,7 @@ ask_for_detached_datafile( MD_HANDLE md, MD_HANDLE md2,
|
|||||||
fp = open_sigfile( inname ); /* open default file */
|
fp = open_sigfile( inname ); /* open default file */
|
||||||
if( !fp && !opt.batch ) {
|
if( !fp && !opt.batch ) {
|
||||||
int any=0;
|
int any=0;
|
||||||
tty_printf("Detached signature.\n");
|
tty_printf(_("Detached signature.\n"));
|
||||||
do {
|
do {
|
||||||
m_free(answer);
|
m_free(answer);
|
||||||
answer = cpr_get("detached_signature.filename",
|
answer = cpr_get("detached_signature.filename",
|
||||||
|
@ -737,7 +737,7 @@ enum_keyblocks( int mode, KBPOS *kbpos, KBNODE *ret_root )
|
|||||||
|
|
||||||
if( !mode || mode == 5 || mode == 100 ) {
|
if( !mode || mode == 5 || mode == 100 ) {
|
||||||
int i;
|
int i;
|
||||||
kbpos->fp = NULL;
|
memset( kbpos, 0, sizeof *kbpos );
|
||||||
if( !mode ) {
|
if( !mode ) {
|
||||||
kbpos->secret = 0;
|
kbpos->secret = 0;
|
||||||
i = 0;
|
i = 0;
|
||||||
|
@ -49,6 +49,10 @@ typedef enum {
|
|||||||
HTTP_REQ_POST = 3
|
HTTP_REQ_POST = 3
|
||||||
} HTTP_REQ_TYPE;
|
} HTTP_REQ_TYPE;
|
||||||
|
|
||||||
|
enum { /* put flag values into an enum, so that gdb can display them */
|
||||||
|
HTTP_FLAG_TRY_PROXY = 1
|
||||||
|
};
|
||||||
|
|
||||||
struct http_context {
|
struct http_context {
|
||||||
int initialized;
|
int initialized;
|
||||||
unsigned int status_code;
|
unsigned int status_code;
|
||||||
@ -61,6 +65,7 @@ struct http_context {
|
|||||||
HTTP_REQ_TYPE req_type;
|
HTTP_REQ_TYPE req_type;
|
||||||
byte *buffer; /* line buffer */
|
byte *buffer; /* line buffer */
|
||||||
unsigned buffer_size;
|
unsigned buffer_size;
|
||||||
|
unsigned int flags;
|
||||||
};
|
};
|
||||||
typedef struct http_context *HTTP_HD;
|
typedef struct http_context *HTTP_HD;
|
||||||
|
|
||||||
|
@ -198,6 +198,12 @@ char *strlwr(char *a);
|
|||||||
#define stricmp(a,b) strcasecmp( (a), (b) )
|
#define stricmp(a,b) strcasecmp( (a), (b) )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*-- w32reg.c --*/
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
char *read_w32_registry_string( const char *root,
|
||||||
|
const char *dir, const char *name );
|
||||||
|
#endif
|
||||||
|
|
||||||
/**** other missing stuff ****/
|
/**** other missing stuff ****/
|
||||||
#ifndef HAVE_ATEXIT /* For SunOS */
|
#ifndef HAVE_ATEXIT /* For SunOS */
|
||||||
#define atexit(a) (on_exit((a),0))
|
#define atexit(a) (on_exit((a),0))
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
Fri Oct 8 20:32:01 CEST 1999 Werner Koch <wk@gnupg.de>
|
||||||
|
|
||||||
|
* fr.po: Updated for 1.0.0d.
|
||||||
|
|
||||||
Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de>
|
Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de>
|
||||||
|
|
||||||
* pl.po: New version by Alex.
|
* pl.po: New version by Alex.
|
||||||
|
624
po/es_ES.po
624
po/es_ES.po
File diff suppressed because it is too large
Load Diff
624
po/pt_BR.po
624
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
624
po/pt_PT.po
624
po/pt_PT.po
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,12 @@
|
|||||||
|
Fri Oct 8 20:32:01 CEST 1999 Werner Koch <wk@gnupg.de>
|
||||||
|
|
||||||
|
* w32reg.c: New.
|
||||||
|
* simple-gettext.c: Use the Registry to locate the mo file.
|
||||||
|
|
||||||
|
* http.c (send_request): Add support for proxys; suggested by
|
||||||
|
Walter Hofmann.
|
||||||
|
(http_open_document): Pass flags to http_open.
|
||||||
|
|
||||||
Fri Sep 17 12:56:42 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
Fri Sep 17 12:56:42 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ noinst_LTLIBRARIES = libutil.la
|
|||||||
libutil_la_LDFLAGS =
|
libutil_la_LDFLAGS =
|
||||||
libutil_la_SOURCES = g10u.c logger.c fileutil.c miscutil.c strgutil.c \
|
libutil_la_SOURCES = g10u.c logger.c fileutil.c miscutil.c strgutil.c \
|
||||||
ttyio.c argparse.c memory.c secmem.c errors.c iobuf.c \
|
ttyio.c argparse.c memory.c secmem.c errors.c iobuf.c \
|
||||||
dotlock.c http.c simple-gettext.c
|
dotlock.c http.c simple-gettext.c w32reg.c
|
||||||
|
|
||||||
|
|
||||||
http-test: http.c
|
http-test: http.c
|
||||||
|
40
util/http.c
40
util/http.c
@ -74,7 +74,7 @@ http_open( HTTP_HD hd, HTTP_REQ_TYPE reqtype, const char *url,
|
|||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
if( flags || !(reqtype == HTTP_REQ_GET || reqtype == HTTP_REQ_POST) )
|
if( !(reqtype == HTTP_REQ_GET || reqtype == HTTP_REQ_POST) )
|
||||||
return G10ERR_INV_ARG;
|
return G10ERR_INV_ARG;
|
||||||
|
|
||||||
/* initialize the handle */
|
/* initialize the handle */
|
||||||
@ -82,6 +82,7 @@ http_open( HTTP_HD hd, HTTP_REQ_TYPE reqtype, const char *url,
|
|||||||
hd->sock = -1;
|
hd->sock = -1;
|
||||||
hd->initialized = 1;
|
hd->initialized = 1;
|
||||||
hd->req_type = reqtype;
|
hd->req_type = reqtype;
|
||||||
|
hd->flags = flags;
|
||||||
|
|
||||||
rc = parse_uri( &hd->uri, url );
|
rc = parse_uri( &hd->uri, url );
|
||||||
if( !rc ) {
|
if( !rc ) {
|
||||||
@ -148,10 +149,7 @@ http_open_document( HTTP_HD hd, const char *document, unsigned int flags )
|
|||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
if( flags )
|
rc = http_open( hd, HTTP_REQ_GET, document, flags );
|
||||||
return G10ERR_INV_ARG;
|
|
||||||
|
|
||||||
rc = http_open( hd, HTTP_REQ_GET, document, 0 );
|
|
||||||
if( rc )
|
if( rc )
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
@ -427,21 +425,47 @@ send_request( HTTP_HD hd )
|
|||||||
byte *request, *p;
|
byte *request, *p;
|
||||||
ushort port;
|
ushort port;
|
||||||
int rc;
|
int rc;
|
||||||
|
const char *http_proxy = NULL;
|
||||||
|
|
||||||
server = *hd->uri->host? hd->uri->host : "localhost";
|
server = *hd->uri->host? hd->uri->host : "localhost";
|
||||||
port = hd->uri->port? hd->uri->port : 80;
|
port = hd->uri->port? hd->uri->port : 80;
|
||||||
|
|
||||||
hd->sock = connect_server( server, port );
|
if( (hd->flags & HTTP_FLAG_TRY_PROXY)
|
||||||
|
&& (http_proxy = getenv( "http_proxy" )) ) {
|
||||||
|
PARSED_URI uri;
|
||||||
|
|
||||||
|
rc = parse_uri( &uri, http_proxy );
|
||||||
|
if (rc) {
|
||||||
|
log_error("invalid $http_proxy: %s\n", g10_errstr(rc));
|
||||||
|
release_parsed_uri( uri );
|
||||||
|
return G10ERR_NETWORK;
|
||||||
|
}
|
||||||
|
hd->sock = connect_server( *uri->host? uri->host : "localhost",
|
||||||
|
uri->port? uri->port : 80 );
|
||||||
|
release_parsed_uri( uri );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
hd->sock = connect_server( server, port );
|
||||||
|
|
||||||
if( hd->sock == -1 )
|
if( hd->sock == -1 )
|
||||||
return G10ERR_NETWORK;
|
return G10ERR_NETWORK;
|
||||||
|
|
||||||
p = build_rel_path( hd->uri );
|
p = build_rel_path( hd->uri );
|
||||||
request = m_alloc( strlen(p) + 20 );
|
request = m_alloc( strlen(server) + strlen(p) + 50 );
|
||||||
sprintf( request, "%s %s%s HTTP/1.0\r\n",
|
if( http_proxy ) {
|
||||||
|
sprintf( request, "%s http://%s:%hu%s%s HTTP/1.0\r\n",
|
||||||
|
hd->req_type == HTTP_REQ_GET ? "GET" :
|
||||||
|
hd->req_type == HTTP_REQ_HEAD? "HEAD":
|
||||||
|
hd->req_type == HTTP_REQ_POST? "POST": "OOPS",
|
||||||
|
server, port, *p == '/'? "":"/", p );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sprintf( request, "%s %s%s HTTP/1.0\r\n",
|
||||||
hd->req_type == HTTP_REQ_GET ? "GET" :
|
hd->req_type == HTTP_REQ_GET ? "GET" :
|
||||||
hd->req_type == HTTP_REQ_HEAD? "HEAD":
|
hd->req_type == HTTP_REQ_HEAD? "HEAD":
|
||||||
hd->req_type == HTTP_REQ_POST? "POST": "OOPS",
|
hd->req_type == HTTP_REQ_POST? "POST": "OOPS",
|
||||||
*p == '/'? "":"/", p );
|
*p == '/'? "":"/", p );
|
||||||
|
}
|
||||||
m_free(p);
|
m_free(p);
|
||||||
|
|
||||||
rc = write_server( hd->sock, request, strlen(request) );
|
rc = write_server( hd->sock, request, strlen(request) );
|
||||||
|
@ -242,19 +242,21 @@ set_gettext_file( const char *filename )
|
|||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
/* absolute path - use it as is */
|
/* absolute path - use it as is */
|
||||||
log_info("trying `%s'\n", filename );
|
|
||||||
domain = load_domain( filename );
|
domain = load_domain( filename );
|
||||||
}
|
}
|
||||||
else { /* relative path - append ".mo" and get DIR from env */
|
else { /* relative path - append ".mo" and get dir from the environment */
|
||||||
char *buf = NULL;
|
char *buf = NULL;
|
||||||
const char *s;
|
char *dir;
|
||||||
|
|
||||||
s = getenv("MINGW32_NLS_DIR");
|
dir = read_w32_registry_string( NULL,
|
||||||
if( s && (buf=malloc(strlen(s)+strlen(filename)+1+3+1)) ) {
|
"Control Panel\\Mingw32\\NLS",
|
||||||
strcpy(stpcpy(stpcpy(stpcpy( buf, s),"/"), filename),".mo");
|
"MODir" );
|
||||||
|
if( dir && (buf=malloc(strlen(dir)+strlen(filename)+1+3+1)) ) {
|
||||||
|
strcpy(stpcpy(stpcpy(stpcpy( buf, dir),"/"), filename),".mo");
|
||||||
domain = load_domain( buf );
|
domain = load_domain( buf );
|
||||||
free(buf);
|
free(buf);
|
||||||
}
|
}
|
||||||
|
free(dir);
|
||||||
}
|
}
|
||||||
if( !domain )
|
if( !domain )
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user