1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-29 02:22:45 +02:00

See ChangeLog: Fri Oct 8 20:32:01 CEST 1999 Werner Koch

This commit is contained in:
Werner Koch 1999-10-08 18:34:56 +00:00
parent 296f9de0bc
commit 5e66583143
35 changed files with 3234 additions and 2890 deletions

View File

@ -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
View File

@ -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.

6
THANKS
View File

@ -7,9 +7,10 @@ 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
Bryan Fullerton bryanf@samurai.com
Caskey L. Dickson caskey@technocage.com Caskey L. Dickson caskey@technocage.com
Cees van de Griend cees-list@griend.xs4all.nl Cees van de Griend cees-list@griend.xs4all.nl
Charles Levert charles@comm.polymtl.ca Charles Levert charles@comm.polymtl.ca
@ -42,6 +43,7 @@ Janusz A. Urbanowicz alex@bofh.torun.pl
James Troup james@nocrew.org James Troup james@nocrew.org
Jean-loup Gailly gzip@prep.ai.mit.edu Jean-loup Gailly gzip@prep.ai.mit.edu
Jens Bachem bachem@rrz.uni-koeln.de Jens Bachem bachem@rrz.uni-koeln.de
J Horacio MG homega@ciberia.es
Joachim Backes backes@rhrk.uni-kl.de Joachim Backes backes@rhrk.uni-kl.de
John A. Martin jam@jamux.com John A. Martin jam@jamux.com
Johnny Teveßen j.tevessen@gmx.de Johnny Teveßen j.tevessen@gmx.de
@ -61,6 +63,7 @@ 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 Fischer v. Mollard mfvm@gmx.de
Michael Roth mroth@nessie.de Michael Roth mroth@nessie.de
Michael Sobolev mss@despair.transas.com Michael Sobolev mss@despair.transas.com
Nicolas Graner Nicolas.Graner@cri.u-psud.fr Nicolas Graner Nicolas.Graner@cri.u-psud.fr
@ -99,6 +102,7 @@ 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 Hofmann Walter.Hofmann@physik.stud.uni-erlangen.de
Walter Koch koch@hsp.de Walter Koch koch@hsp.de
Werner Koch werner.koch@guug.de Werner Koch werner.koch@guug.de
Wim Vandeputte bunbun@reptile.rug.ac.be Wim Vandeputte bunbun@reptile.rug.ac.be

View File

@ -1 +1 @@
1.0.0d 1.0.0e

View File

@ -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

View File

@ -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)

View File

@ -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
View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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.

View File

@ -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"

View File

@ -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,

View File

@ -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 {

View File

@ -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;

View File

@ -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

View File

@ -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 ) {

View File

@ -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",

View File

@ -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;

View File

@ -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;

View File

@ -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))

View File

@ -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/de.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

634
po/fr.po

File diff suppressed because it is too large Load Diff

624
po/id.po

File diff suppressed because it is too large Load Diff

624
po/it.po

File diff suppressed because it is too large Load Diff

669
po/pl.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

624
po/ru.po

File diff suppressed because it is too large Load Diff

View File

@ -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>

View File

@ -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

View File

@ -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;
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 ); 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 );
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", 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) );

View File

@ -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;