Update copyright year

Nuked some trailing spaces.
This commit is contained in:
Werner Koch 2011-02-03 16:50:01 +01:00
parent 38904b697c
commit d9bd013a1f
6 changed files with 114 additions and 107 deletions

9
README
View File

@ -5,7 +5,7 @@
THIS IS A DEVELOPMENT VERSION AND NOT INTENDED FOR REGULAR USE.
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
INTRODUCTION
@ -36,7 +36,7 @@ GnuPG 2.0 depends on the following packages:
libgcrypt (ftp://ftp.gnupg.org/gcrypt/libgcrypt/)
libksba (ftp://ftp.gnupg.org/gcrypt/libksba/)
libassuan (ftp://ftp.gnupg.org/gcrypt/libassuan/)
You also need the Pinentry package for most function of GnuPG; however
it is not a build requirement. Pinentry is available at
ftp://ftp.gnupg.org/gcrypt/pinentry/ .
@ -71,7 +71,7 @@ are not yet complete.
You may run
gpgconf --list-dirs
gpgconf --list-dirs
to view the default directories used by GnuPG.
@ -150,7 +150,7 @@ and use them if possible. You may also find GnuPG mirrored on some of
the regular GNU mirrors.
We have some mailing lists dedicated to GnuPG:
gnupg-announce@gnupg.org For important announcements like new
versions and such stuff. This is a
moderated list and has very low traffic.
@ -192,4 +192,3 @@ http://www.gnupg.org/service.html .
distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY, to the extent permitted by law; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

View File

@ -1,3 +1,7 @@
2011-02-03 Werner Koch <wk@g10code.com>
* argparse.c (strusage): Update copyright year.
2011-01-31 Werner Koch <wk@g10code.com>
* openpgp-oid.c: New.

View File

@ -151,7 +151,7 @@ static int set_opt_arg(ARGPARSE_ARGS *arg, unsigned flags, char *s);
static void show_help(ARGPARSE_OPTS *opts, unsigned flags);
static void show_version(void);
static int writestrings (int is_error, const char *string, ...)
#if __GNUC__ >= 4
#if __GNUC__ >= 4
__attribute__ ((sentinel(0)))
#endif
;
@ -206,8 +206,8 @@ flushstrings (int is_error)
static void
initialize( ARGPARSE_ARGS *arg, const char *filename, unsigned *lineno )
{
if( !(arg->flags & (1<<15)) )
{
if( !(arg->flags & (1<<15)) )
{
/* Initialize this instance. */
arg->internal.idx = 0;
arg->internal.last = NULL;
@ -220,13 +220,13 @@ initialize( ARGPARSE_ARGS *arg, const char *filename, unsigned *lineno )
if ( *arg->argc < 0 )
jnlib_log_bug ("invalid argument for arg_parsee\n");
}
if (arg->err)
{
/* Last option was erroneous. */
const char *s;
if (filename)
{
if ( arg->r_opt == ARGPARSE_UNEXPECTED_ARG )
@ -247,10 +247,10 @@ initialize( ARGPARSE_ARGS *arg, const char *filename, unsigned *lineno )
s = _("invalid option");
jnlib_log_error ("%s:%u: %s\n", filename, *lineno, s);
}
else
else
{
s = arg->internal.last? arg->internal.last:"[??]";
if ( arg->r_opt == ARGPARSE_MISSING_ARG )
jnlib_log_error (_("missing argument for option \"%.50s\"\n"), s);
else if ( arg->r_opt == ARGPARSE_UNEXPECTED_ARG )
@ -324,10 +324,10 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
char *buffer = NULL;
size_t buflen = 0;
int in_alias=0;
if (!fp) /* Divert to to arg_parse() in this case. */
return arg_parse (arg, opts);
initialize (arg, filename, lineno);
/* Find the next keyword. */
@ -355,9 +355,9 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
arg->r_opt = ((opts[idx].flags & ARGPARSE_OPT_COMMAND)
? ARGPARSE_INVALID_COMMAND
: ARGPARSE_INVALID_OPTION);
else if (!(opts[idx].flags & 7))
else if (!(opts[idx].flags & 7))
arg->r_type = 0; /* Does not take an arg. */
else if ((opts[idx].flags & 8) )
else if ((opts[idx].flags & 8) )
arg->r_type = 0; /* Arg is optional. */
else
arg->r_opt = ARGPARSE_MISSING_ARG;
@ -365,13 +365,13 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
break;
}
else if (state == 3)
{
{
/* No argument found. */
if (in_alias)
arg->r_opt = ARGPARSE_MISSING_ARG;
else if (!(opts[idx].flags & 7))
else if (!(opts[idx].flags & 7))
arg->r_type = 0; /* Does not take an arg. */
else if ((opts[idx].flags & 8))
else if ((opts[idx].flags & 8))
arg->r_type = 0; /* No optional argument. */
else
arg->r_opt = ARGPARSE_MISSING_ARG;
@ -381,14 +381,14 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
else if (state == 4)
{
/* Has an argument. */
if (in_alias)
if (in_alias)
{
if (!buffer)
arg->r_opt = ARGPARSE_UNEXPECTED_ARG;
else
else
{
char *p;
buffer[i] = 0;
p = strpbrk (buffer, " \t");
if (p)
@ -422,13 +422,13 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
}
else
buffer[i] = 0;
if (buffer)
{
trim_spaces (buffer);
p = buffer;
if (*p == '"')
{
{
/* Remove quotes. */
p++;
if (*p && p[strlen(p)-1] == '\"' )
@ -475,7 +475,7 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
in_alias = 1;
state = 3;
}
else
else
{
arg->r_opt = ((opts[idx].flags & ARGPARSE_OPT_COMMAND)
? ARGPARSE_INVALID_COMMAND
@ -497,13 +497,13 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
}
}
else if (state == 4)
{
{
/* Collect the argument. */
if (buffer)
{
if (i < buflen-1)
buffer[i++] = c;
else
else
{
char *tmp;
size_t tmplen = buflen + 50;
@ -525,7 +525,7 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
}
else if (i < DIM(keyword)-1)
keyword[i++] = c;
else
else
{
size_t tmplen = DIM(keyword) + 50;
buffer = jnlib_malloc (tmplen);
@ -547,13 +547,13 @@ optfile_parse (FILE *fp, const char *filename, unsigned *lineno,
arg->r_opt = ARGPARSE_KEYWORD_TOO_LONG;
state = -1; /* Skip rest of line and leave. */
}
else
else
{
keyword[i++] = c;
state = 2;
}
}
return arg->r_opt;
}
@ -615,7 +615,7 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
char **argv;
char *s, *s2;
int i;
initialize( arg, NULL, NULL );
argc = *arg->argc;
argv = *arg->argv;
@ -626,10 +626,10 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
/* Skip the first argument. */
argc--; argv++; idx++;
}
next_one:
if (!argc)
{
if (!argc)
{
/* No more args. */
arg->r_opt = 0;
goto leave; /* Ready. */
@ -638,14 +638,14 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
s = *argv;
arg->internal.last = s;
if (arg->internal.stopped && (arg->flags & ARGPARSE_FLAG_ALL))
if (arg->internal.stopped && (arg->flags & ARGPARSE_FLAG_ALL))
{
arg->r_opt = ARGPARSE_IS_ARG; /* Not an option but an argument. */
arg->r_type = 2;
arg->r.ret_str = s;
argc--; argv++; idx++; /* set to next one */
}
else if( arg->internal.stopped )
else if( arg->internal.stopped )
{
arg->r_opt = 0;
goto leave; /* Ready. */
@ -654,10 +654,10 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
{
/* Long option. */
char *argpos;
arg->internal.inarg = 0;
if (!s[2] && !(arg->flags & ARGPARSE_FLAG_NOSTOP))
{
{
/* Stop option processing. */
arg->internal.stopped = 1;
argc--; argv++; idx++;
@ -697,7 +697,7 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
NULL);
exit (0);
}
if ( i == -2 )
arg->r_opt = ARGPARSE_AMBIGUOUS_OPTION;
else if ( i == -1 )
@ -727,40 +727,40 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
{
arg->r_opt = ARGPARSE_MISSING_ARG;
}
else if ( !argpos && *s2 == '-'
&& (opts[i].flags & ARGPARSE_OPT_OPTIONAL) )
else if ( !argpos && *s2 == '-'
&& (opts[i].flags & ARGPARSE_OPT_OPTIONAL) )
{
/* The argument is optional and the next seems to be an
option. We do not check this possible option but
assume no argument */
arg->r_type = ARGPARSE_TYPE_NONE;
}
else
else
{
set_opt_arg (arg, opts[i].flags, s2);
if ( !argpos )
if ( !argpos )
{
argc--; argv++; idx++; /* Skip one. */
}
}
}
else
{
{
/* Does not take an argument. */
if ( argpos )
arg->r_type = ARGPARSE_UNEXPECTED_ARG;
arg->r_type = ARGPARSE_UNEXPECTED_ARG;
else
arg->r_type = 0;
}
argc--; argv++; idx++; /* Set to next one. */
}
else if ( (*s == '-' && s[1]) || arg->internal.inarg )
else if ( (*s == '-' && s[1]) || arg->internal.inarg )
{
/* Short option. */
int dash_kludge = 0;
i = 0;
if ( !arg->internal.inarg )
if ( !arg->internal.inarg )
{
arg->internal.inarg++;
if ( (arg->flags & ARGPARSE_FLAG_ONEDASH) )
@ -781,7 +781,7 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
if ( opts[i].short_opt == *s )
break;
}
if ( !opts[i].short_opt && ( *s == 'h' || *s == '?' ) )
show_help (opts, arg->flags);
@ -891,13 +891,13 @@ long_opt_strlen( ARGPARSE_OPTS *o )
{
size_t n = strlen (o->long_opt);
if ( o->description && *o->description == '|' )
if ( o->description && *o->description == '|' )
{
const char *s;
#ifdef JNLIB_NEED_UTF8CONV
int is_utf8 = is_native_utf8 ();
#endif
s=o->description+1;
if ( *s != '=' )
n++;
@ -930,7 +930,7 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
{
const char *s;
char tmp[2];
show_version ();
writestrings (0, "\n", NULL);
s = strusage(41);
@ -959,8 +959,8 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
if ( s && *s== '@' && !s[1] ) /* Hide this line. */
continue;
if ( s && *s == '@' ) /* Unindented comment only line. */
{
for (s++; *s; s++ )
{
for (s++; *s; s++ )
{
if ( *s == '\n' )
{
@ -984,9 +984,9 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
tmp[0] = opts[i].short_opt;
tmp[1] = 0;
writestrings (0, " -", tmp, NULL );
if ( !opts[i].long_opt )
if ( !opts[i].long_opt )
{
if (s && *s == '|' )
if (s && *s == '|' )
{
writestrings (0, " ", NULL); j++;
for (s++ ; *s && *s != '|'; s++, j++ )
@ -1002,12 +1002,12 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
}
else
writestrings (0, " ", NULL);
if ( opts[i].long_opt )
if ( opts[i].long_opt )
{
tmp[0] = opts[i].short_opt < 256?',':' ';
tmp[1] = 0;
j += writestrings (0, tmp, " --", opts[i].long_opt, NULL);
if (s && *s == '|' )
if (s && *s == '|' )
{
if ( *++s != '=' )
{
@ -1040,7 +1040,7 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
{
if ( *s == '\n' )
{
if ( s[1] )
if ( s[1] )
{
writestrings (0, "\n", NULL);
for (j=0; j < indent; j++ )
@ -1062,10 +1062,10 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
"instead of the double ones)\n", NULL);
}
if ( (s=strusage(19)) )
{
{
/* bug reports to ... */
char *s2;
writestrings (0, "\n", NULL);
s2 = strstr (s, "@EMAIL@");
if (s2)
@ -1151,7 +1151,7 @@ usage (int level)
writestrings (1, "\n", NULL);
exit (2);
}
else if (level == 2)
else if (level == 2)
{
writestrings (0, strusage(41), "\n", NULL);
exit (0);
@ -1181,10 +1181,10 @@ const char *
strusage( int level )
{
const char *p = strusage_handler? strusage_handler(level) : NULL;
if ( p )
return p;
switch ( level )
{
case 10: p = ("License GPLv3+: GNU GPL version 3 or later "
@ -1192,7 +1192,7 @@ strusage( int level )
break;
case 11: p = "foo"; break;
case 13: p = "0.0"; break;
case 14: p = "Copyright (C) 2010 Free Software Foundation, Inc."; break;
case 14: p = "Copyright (C) 2011 Free Software Foundation, Inc."; break;
case 15: p =
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n";
@ -1212,7 +1212,7 @@ strusage( int level )
case 40: /* short and long usage */
case 41: p = ""; break;
}
return p;
}
@ -1265,7 +1265,7 @@ main(int argc, char **argv)
case 'c': opt.crf = pargs.r_type? pargs.r.ret_str:"a.crf"; break;
case 'm': opt.myopt = pargs.r_type? pargs.r.ret_int : 1; break;
case 500: opt.a_long_one++; break;
default : pargs.err = ARGPARSE_PRINT_WARNING; break;
default : pargs.err = ARGPARSE_PRINT_WARNING; break;
}
}
for(i=0; i < argc; i++ )

View File

@ -1,6 +1,6 @@
# configure.ac - for GnuPG 2.1
# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
# 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#

View File

@ -1,3 +1,7 @@
2011-02-03 Werner Koch <wk@g10code.com>
* watchgnupg.c (print_version): Update copyright year.
2010-12-14 Werner Koch <wk@g10code.com>
* gpgconf-comp.c (gc_options_gpg_agent, gc_options_scdaemon)
@ -334,7 +338,7 @@
* gpgconf-comp.c (my_percent_escape): Make non-static and rename
to ...
(gc_percent_escape): ... this. Change all callers.
2008-05-26 Werner Koch <wk@g10code.com>
* gpgconf-comp.c (gpg_agent_runtime_change) [W32]: Issue
@ -456,7 +460,7 @@
(handle_inquire): Implement new command.
(substitute_line_copy): New.
(unescape_string, unpercent_string): New.
* no-libgcrypt.c (gcry_set_outofcore_handler)
* no-libgcrypt.c (gcry_set_outofcore_handler)
(gcry_set_fatalerror_handler, gcry_set_log_handler): New.
* Makefile.am (gpg_connect_agent_LDADD): Link to libreadline.
@ -678,7 +682,7 @@
min-passphrase-length. Apply new flag to some of them.
(gc_process_gpgconf_conf, key_matches_user_or_group): New.
(gc_component_change_options): Factor some code out to ..
(change_one_value): .. new.
(change_one_value): .. new.
(gc_component_retrieve_options): Allow -1 for COMPONENT to iterate
over al components.
* gpgconf.c (main): New commands --check-config and
@ -721,7 +725,7 @@
2006-10-20 Werner Koch <wk@g10code.com>
* gpgsm-gencert.sh: Enhanced the main menu.
* gpgsm-gencert.sh: Enhanced the main menu.
2006-10-12 Werner Koch <wk@g10code.com>
@ -853,7 +857,7 @@
2005-06-01 Werner Koch <wk@g10code.com>
* symcryptrun.c: Include mkdtemp.h.
* symcryptrun.c: Include mkdtemp.h.
2005-05-31 Werner Koch <wk@g10code.com>
@ -907,7 +911,7 @@
2005-04-11 Marcus Brinkmann <marcus@g10code.de>
* symcryptrun.c: Implement config file parsing.
* Makefile.am (bin_PROGRAMS): Add symcryptrun.
(symcryptrun_SOURCES, symcryptrun_LDADD): New variables.
* symcryptrun.c: New file.
@ -927,7 +931,7 @@
2005-02-24 Werner Koch <wk@g10code.com>
* gpg-connect-agent.c: New.
* Makefile.am: Add it.
* Makefile.am: Add it.
2004-12-21 Werner Koch <wk@g10code.com>
@ -971,7 +975,7 @@
2004-10-01 Werner Koch <wk@g10code.com>
* gpgconf-comp.c: Made all strings for --log-file read the same.
2004-10-01 Werner Koch <wk@g10code.com>
* gpgconf-comp.c (my_dgettext): Also switch codeset and directory
@ -1003,8 +1007,8 @@
* no-libgcrypt.c (gcry_realloc, gcry_xmalloc, gcry_xcalloc): New.
* gpgconf-comp.c (retrieve_options_from_program)
(retrieve_options_from_file, change_options_file)
* gpgconf-comp.c (retrieve_options_from_program)
(retrieve_options_from_file, change_options_file)
(change_options_program, gc_component_change_options): Replaced
getline by read_line and test for allocation failure.
@ -1072,7 +1076,7 @@
(gc_component_change_options): New variable runtime. Initialize
it. If an option is changed that has the GC_OPT_FLAG_RUNTIME bit
set, also set the corresponding runtime variable. Finally, call
the runtime_change callback of the backend if needed.
the runtime_change callback of the backend if needed.
2004-03-16 Werner Koch <wk@gnupg.org>
@ -1163,7 +1167,7 @@
quote in pathname.
(change_options_program): Percent deescape string before writing
it out.
* gpgconf-comp.c (gc_component_list_options): Do not skip groups
on output.
@ -1197,10 +1201,10 @@
* gpgconf-comp.c: Use xmalloc, libcommon's asctimestamp and
gnupg_get_time, fix error() invocation and use getline()
consistently.
2004-01-30 Werner Koch <wk@gnupg.org>
* addgnupghome: Also set the group of copied files.
* addgnupghome: Also set the group of copied files.
2004-01-30 Werner Koch <wk@gnupg.org>

View File

@ -1,5 +1,5 @@
/* watchgnupg.c - Socket server for GnuPG logs
* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
* Copyright (C) 2003, 2004, 2010 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@ -111,7 +111,7 @@ xrealloc (void *old, size_t n)
die ("out of core");
return p;
}
struct client_s {
struct client_s *next;
@ -119,7 +119,7 @@ struct client_s {
size_t size; /* Allocated size of buffer. */
size_t len; /* Current length of buffer. */
unsigned char *buffer; /* Buffer to with data already read. */
};
typedef struct client_s *client_t;
@ -134,9 +134,9 @@ print_fd_and_time (int fd)
{
struct tm *tp;
time_t atime = time (NULL);
tp = localtime (&atime);
if (time_only)
if (time_only)
printf ("%3d - %02d:%02d:%02d ",
fd,
tp->tm_hour, tp->tm_min, tp->tm_sec );
@ -161,7 +161,7 @@ print_line (client_t c, const char *line)
if (c->buffer && c->len)
{
print_fd_and_time (c->fd);
fwrite (c->buffer, c->len, 1, stdout);
fwrite (c->buffer, c->len, 1, stdout);
putc ('\n', stdout);
c->len = 0;
}
@ -173,10 +173,10 @@ print_line (client_t c, const char *line)
print_fd_and_time (c->fd);
if (c->buffer && c->len)
{
fwrite (c->buffer, c->len, 1, stdout);
fwrite (c->buffer, c->len, 1, stdout);
c->len = 0;
}
fwrite (line, s - line + 1, 1, stdout);
fwrite (line, s - line + 1, 1, stdout);
line = s + 1;
}
n = strlen (line);
@ -197,7 +197,7 @@ print_line (client_t c, const char *line)
static void
setup_client (int server_fd, int is_un)
{
{
struct sockaddr_un addr_un;
struct sockaddr_in addr_in;
struct sockaddr *addr;
@ -227,7 +227,7 @@ setup_client (int server_fd, int is_un)
close (fd);
printf ("[connection request denied: too many connections]\n");
}
else
else
{
for (client = client_list; client && client->fd != -1;
client = client->next)
@ -250,14 +250,14 @@ static void
print_version (int with_help)
{
fputs (MYVERSION_LINE "\n"
"Copyright (C) 2004 Free Software Foundation, Inc.\n"
"Copyright (C) 2010 Free Software Foundation, Inc.\n"
"License GPLv3+: "
"GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n",
stdout);
if (with_help)
fputs
fputs
("\n"
"Usage: " PGM " [OPTIONS] SOCKETNAME\n"
" " PGM " [OPTIONS] PORT [SOCKETNAME]\n"
@ -271,11 +271,11 @@ print_version (int with_help)
" --version print version of the program and exit\n"
" --help display this help and exit\n"
BUGREPORT_LINE, stdout );
exit (0);
}
int
int
main (int argc, char **argv)
{
int last_argc = -1;
@ -290,7 +290,7 @@ main (int argc, char **argv)
unsigned short port;
int server_un, server_in;
int flags;
if (argc)
{
argc--; argv++;
@ -327,15 +327,15 @@ main (int argc, char **argv)
tcp = 1;
argc--; argv++;
}
}
}
if (!((!tcp && argc == 1) || (tcp && (argc == 1 || argc == 2))))
{
fprintf (stderr, "usage: " PGM " socketname\n"
" " PGM " --tcp port [socketname]\n");
exit (1);
}
if (tcp)
{
port = atoi (*argv);
@ -354,7 +354,7 @@ main (int argc, char **argv)
server_in = socket (PF_INET, SOCK_STREAM, 0);
if (server_in == -1)
die ("socket(PF_INET) failed: %s\n", strerror (errno));
if (setsockopt (server_in, SOL_SOCKET, SO_REUSEADDR,
if (setsockopt (server_in, SOL_SOCKET, SO_REUSEADDR,
(unsigned char *)&i, sizeof (i)))
err ("setsockopt(SO_REUSEADDR) failed: %s\n", strerror (errno));
if (verbose)
@ -393,7 +393,7 @@ main (int argc, char **argv)
if ( fcntl (server_un, F_SETFL, (flags | O_NONBLOCK)) == -1)
die ("fcntl (F_SETFL) failed: %s\n", strerror (errno));
}
if (tcp)
{
memset (&srvr_addr_in, 0, sizeof srvr_addr_in);
@ -414,13 +414,13 @@ main (int argc, char **argv)
}
else
addrlen_un = 0; /* Silent gcc. */
if (server_in != -1 && bind (server_in, addr_in, addrlen_in))
die ("bind to port %hu failed: %s\n", port, strerror (errno));
again:
if (server_un != -1 && bind (server_un, addr_un, addrlen_un))
{
{
if (errno == EADDRINUSE && force)
{
force = 0;
@ -479,7 +479,7 @@ main (int argc, char **argv)
{
char line[256];
int n;
n = read (client->fd, line, sizeof line - 1);
if (n < 0)
{
@ -490,7 +490,7 @@ main (int argc, char **argv)
close (client->fd);
client->fd = -1;
}
else if (!n)
else if (!n)
{
print_line (client, NULL); /* flush */
close (client->fd);