mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-18 14:17:03 +01:00
Update copyright year.
This commit is contained in:
parent
92844f475b
commit
4a9d69ca87
@ -1,5 +1,5 @@
|
||||
# Makefile.am - main makefile for NewPG/GnuPG
|
||||
# Copyright (C) 2001, 2004 Free Software Foundation, Inc.
|
||||
# Makefile.am - Top level makefile for GnuPG
|
||||
# Copyright (C) 2001, 2004, 2012 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GnuPG.
|
||||
#
|
||||
|
9
README
9
README
@ -2,8 +2,9 @@
|
||||
=========================
|
||||
Version 2.0
|
||||
|
||||
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||
2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
2005, 2006, 2007, 2008, 2009, 2010, 2011,
|
||||
2012 Free Software Foundation, Inc.
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
@ -35,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 >= 2.0 (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/ .
|
||||
@ -105,7 +106,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.
|
||||
|
@ -1,6 +1,7 @@
|
||||
# configure.ac - for GnuPG 2.0
|
||||
# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
# 2006, 2007, 2008, 2010, 2011 Free Software Foundation, Inc.
|
||||
# 2006, 2007, 2008, 2010, 2011,
|
||||
# 2012 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GnuPG.
|
||||
#
|
||||
|
122
jnlib/argparse.c
122
jnlib/argparse.c
@ -153,8 +153,8 @@ static void show_version(void);
|
||||
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;
|
||||
@ -167,13 +167,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 )
|
||||
@ -194,10 +194,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 )
|
||||
@ -271,10 +271,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. */
|
||||
@ -302,9 +302,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;
|
||||
@ -312,13 +312,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;
|
||||
@ -328,14 +328,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)
|
||||
@ -369,13 +369,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] == '\"' )
|
||||
@ -422,7 +422,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
|
||||
@ -444,13 +444,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;
|
||||
@ -472,7 +472,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);
|
||||
@ -494,13 +494,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;
|
||||
}
|
||||
|
||||
@ -562,7 +562,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;
|
||||
@ -573,10 +573,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. */
|
||||
@ -585,14 +585,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. */
|
||||
@ -601,10 +601,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++;
|
||||
@ -643,7 +643,7 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
|
||||
fputs ("--dump-options\n--help\n--version\n--warranty\n", stdout);
|
||||
exit (0);
|
||||
}
|
||||
|
||||
|
||||
if ( i == -2 )
|
||||
arg->r_opt = ARGPARSE_AMBIGUOUS_OPTION;
|
||||
else if ( i == -1 )
|
||||
@ -673,40 +673,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) )
|
||||
@ -727,7 +727,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);
|
||||
|
||||
@ -837,13 +837,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++;
|
||||
@ -875,7 +875,7 @@ static void
|
||||
show_help (ARGPARSE_OPTS *opts, unsigned int flags)
|
||||
{
|
||||
const char *s;
|
||||
|
||||
|
||||
show_version ();
|
||||
putchar ('\n');
|
||||
s = strusage(41);
|
||||
@ -904,8 +904,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' )
|
||||
{
|
||||
@ -923,9 +923,9 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
|
||||
if ( opts[i].short_opt < 256 )
|
||||
{
|
||||
printf (" -%c", opts[i].short_opt);
|
||||
if ( !opts[i].long_opt )
|
||||
if ( !opts[i].long_opt )
|
||||
{
|
||||
if (s && *s == '|' )
|
||||
if (s && *s == '|' )
|
||||
{
|
||||
putchar (' '); j++;
|
||||
for (s++ ; *s && *s != '|'; s++, j++ )
|
||||
@ -937,11 +937,11 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
|
||||
}
|
||||
else
|
||||
fputs(" ", stdout);
|
||||
if ( opts[i].long_opt )
|
||||
if ( opts[i].long_opt )
|
||||
{
|
||||
j += printf ("%c --%s", opts[i].short_opt < 256?',':' ',
|
||||
opts[i].long_opt );
|
||||
if (s && *s == '|' )
|
||||
if (s && *s == '|' )
|
||||
{
|
||||
if ( *++s != '=' )
|
||||
{
|
||||
@ -970,7 +970,7 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
|
||||
{
|
||||
if ( *s == '\n' )
|
||||
{
|
||||
if ( s[1] )
|
||||
if ( s[1] )
|
||||
{
|
||||
putchar ('\n');
|
||||
for (j=0; j < indent; j++ )
|
||||
@ -987,10 +987,10 @@ show_help (ARGPARSE_OPTS *opts, unsigned int flags)
|
||||
puts ("\n(A single dash may be used instead of the double ones)");
|
||||
}
|
||||
if ( (s=strusage(19)) )
|
||||
{
|
||||
{
|
||||
/* bug reports to ... */
|
||||
char *s2;
|
||||
|
||||
|
||||
putchar('\n');
|
||||
s2 = strstr (s, "@EMAIL@");
|
||||
if (s2)
|
||||
@ -1066,7 +1066,7 @@ usage (int level)
|
||||
putc ('\n', stderr);
|
||||
exit (2);
|
||||
}
|
||||
else if (level == 2)
|
||||
else if (level == 2)
|
||||
{
|
||||
puts (strusage(41));
|
||||
exit (0);
|
||||
@ -1096,10 +1096,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 "
|
||||
@ -1107,7 +1107,7 @@ strusage( int level )
|
||||
break;
|
||||
case 11: p = "foo"; break;
|
||||
case 13: p = "0.0"; break;
|
||||
case 14: p = "Copyright (C) 2011 Free Software Foundation, Inc."; break;
|
||||
case 14: p = "Copyright (C) 2012 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";
|
||||
@ -1127,7 +1127,7 @@ strusage( int level )
|
||||
case 40: /* short and long usage */
|
||||
case 41: p = ""; break;
|
||||
}
|
||||
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
@ -1178,7 +1178,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++ )
|
||||
|
@ -40,7 +40,7 @@
|
||||
#define MYVERSION_LINE PGM " (GnuPG) " VERSION
|
||||
#define BUGREPORT_LINE "\nReport bugs to <bug-gnupg@gnu.org>.\n"
|
||||
#else
|
||||
#define MYVERSION_LINE PGM
|
||||
#define MYVERSION_LINE PGM
|
||||
#define BUGREPORT_LINE ""
|
||||
#endif
|
||||
#if !defined(SUN_LEN) || !defined(PF_LOCAL) || !defined(AF_LOCAL)
|
||||
@ -109,7 +109,7 @@ xrealloc (void *old, size_t n)
|
||||
die ("out of core");
|
||||
return p;
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct client_s {
|
||||
struct client_s *next;
|
||||
@ -117,7 +117,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;
|
||||
|
||||
@ -128,7 +128,7 @@ print_fd_and_time (int fd)
|
||||
{
|
||||
struct tm *tp;
|
||||
time_t atime = time (NULL);
|
||||
|
||||
|
||||
tp = localtime (&atime);
|
||||
printf ("%3d - %04d-%02d-%02d %02d:%02d:%02d ",
|
||||
fd,
|
||||
@ -150,7 +150,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;
|
||||
}
|
||||
@ -162,10 +162,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);
|
||||
@ -188,12 +188,12 @@ static void
|
||||
print_version (int with_help)
|
||||
{
|
||||
fputs (MYVERSION_LINE "\n"
|
||||
"Copyright (C) 2004 Free Software Foundation, Inc.\n"
|
||||
"Copyright (C) 2012 Free Software Foundation, Inc.\n"
|
||||
"This program comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
"This is free software, and you are welcome to redistribute it\n"
|
||||
"under certain conditions. See the file COPYING for details.\n",
|
||||
stdout);
|
||||
|
||||
|
||||
if (with_help)
|
||||
fputs ("\n"
|
||||
"Usage: " PGM " [OPTIONS] SOCKETNAME\n"
|
||||
@ -204,11 +204,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;
|
||||
@ -219,7 +219,7 @@ main (int argc, char **argv)
|
||||
int server;
|
||||
int flags;
|
||||
client_t client_list = NULL;
|
||||
|
||||
|
||||
if (argc)
|
||||
{
|
||||
argc--; argv++;
|
||||
@ -246,8 +246,8 @@ main (int argc, char **argv)
|
||||
force = 1;
|
||||
argc--; argv++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (argc != 1)
|
||||
{
|
||||
fprintf (stderr, "usage: " PGM " socketname\n");
|
||||
@ -272,7 +272,7 @@ main (int argc, char **argv)
|
||||
die ("fcntl (F_GETFL) failed: %s\n", strerror (errno));
|
||||
if ( fcntl (server, F_SETFL, (flags | O_NONBLOCK)) == -1)
|
||||
die ("fcntl (F_SETFL) failed: %s\n", strerror (errno));
|
||||
|
||||
|
||||
|
||||
memset (&srvr_addr, 0, sizeof srvr_addr);
|
||||
srvr_addr.sun_family = AF_LOCAL;
|
||||
@ -280,10 +280,10 @@ main (int argc, char **argv)
|
||||
srvr_addr.sun_path[sizeof (srvr_addr.sun_path) - 1] = 0;
|
||||
addrlen = SUN_LEN (&srvr_addr);
|
||||
|
||||
|
||||
|
||||
again:
|
||||
if (bind (server, (struct sockaddr *) &srvr_addr, addrlen))
|
||||
{
|
||||
{
|
||||
if (errno == EADDRINUSE && force)
|
||||
{
|
||||
force = 0;
|
||||
@ -320,7 +320,7 @@ main (int argc, char **argv)
|
||||
continue; /* Ignore any errors. */
|
||||
|
||||
if (FD_ISSET (server, &rfds)) /* New connection. */
|
||||
{
|
||||
{
|
||||
struct sockaddr_un clnt_addr;
|
||||
int fd;
|
||||
|
||||
@ -335,7 +335,7 @@ main (int argc, char **argv)
|
||||
close (fd);
|
||||
printf ("[connection request denied: too many connections]\n");
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
for (client = client_list; client && client->fd != -1;
|
||||
client = client->next)
|
||||
@ -355,7 +355,7 @@ main (int argc, char **argv)
|
||||
{
|
||||
char line[256];
|
||||
int n;
|
||||
|
||||
|
||||
n = read (client->fd, line, sizeof line - 1);
|
||||
if (n < 0)
|
||||
{
|
||||
@ -366,7 +366,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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user