* gpgkeys_ldap.c, ksutil.h, ksutil.c (print_nocr): Moved from

gpgkeys_ldap.c.  Print a string, but strip out any CRs.

* gpgkeys_finger.c (get_key), gpgkeys_hkp.c (get_key), gpgkeys_http.c
(get_key): Use it here when outputting key material to canonicalize
line endings.
This commit is contained in:
David Shaw 2005-03-22 23:41:08 +00:00
parent 57b9ba5e16
commit 1517f0e945
7 changed files with 34 additions and 17 deletions

View File

@ -1,3 +1,12 @@
2005-03-22 David Shaw <dshaw@jabberwocky.com>
* gpgkeys_ldap.c, ksutil.h, ksutil.c (print_nocr): Moved from
gpgkeys_ldap.c. Print a string, but strip out any CRs.
* gpgkeys_finger.c (get_key), gpgkeys_hkp.c (get_key),
gpgkeys_http.c (get_key): Use it here when outputting key material
to canonicalize line endings.
2005-03-19 David Shaw <dshaw@jabberwocky.com>
* gpgkeys_ldap.c (main): Fix three wrong calls to fail_all().

View File

@ -323,13 +323,13 @@ get_key (char *getkey)
if(gotit)
{
fputs (line, output);
print_nocr(output,line);
if (!strncmp(line,END,strlen(END)))
break;
}
else if(!strncmp(line,BEGIN,strlen(BEGIN)))
{
fputs (line,output);
print_nocr(output,line);
gotit=1;
}
}

View File

@ -267,14 +267,14 @@ get_key(char *getkey)
if(gotit)
{
fputs (line, output);
print_nocr(output,line);
if(strncmp(line,END,strlen(END))==0)
break;
}
else
if(strncmp(line,BEGIN,strlen(BEGIN))==0)
{
fputs (line,output);
print_nocr(output,line);
gotit=1;
}
}

View File

@ -92,14 +92,14 @@ get_key(char *getkey)
if(gotit)
{
fputs(line,output);
print_nocr(output,line);
if(strncmp(line,END,strlen(END))==0)
break;
}
else
if(strncmp(line,BEGIN,strlen(BEGIN))==0)
{
fputs(line,output);
print_nocr(output,line);
gotit=1;
}
}

View File

@ -953,17 +953,6 @@ build_info(const char *certid,LDAPMessage *each)
fprintf(output,"INFO %s END\n",certid);
}
static void
print_nocr(FILE *stream,const char *str)
{
while(*str)
{
if(*str!='\r')
fputc(*str,stream);
str++;
}
}
/* Note that key-not-found is not a fatal error */
static int
get_key(char *getkey)

View File

@ -294,3 +294,21 @@ ks_action_to_string(enum ks_action action)
return "?";
}
/* Canonicalize CRLF to just LF by stripping CRs. This actually makes
sense, since on Unix-like machines LF is correct, and on win32-like
machines, our output buffer is opened in textmode and will
re-canonicalize line endings back to CRLF. Since we only need to
handle armored keys, we don't have to worry about odd cases like
CRCRCR and the like. */
void
print_nocr(FILE *stream,const char *str)
{
while(*str)
{
if(*str!='\r')
fputc(*str,stream);
str++;
}
}

View File

@ -87,5 +87,6 @@ struct ks_options *init_ks_options(void);
void free_ks_options(struct ks_options *opt);
int parse_ks_options(char *line,struct ks_options *opt);
const char *ks_action_to_string(enum ks_action action);
void print_nocr(FILE *stream,const char *str);
#endif /* !_KSUTIL_H_ */