aboutsummaryrefslogtreecommitdiff
path: root/src/sockaddr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sockaddr.c')
-rw-r--r--src/sockaddr.c96
1 files changed, 48 insertions, 48 deletions
diff --git a/src/sockaddr.c b/src/sockaddr.c
index 8cd790d..8d9ed40 100644
--- a/src/sockaddr.c
+++ b/src/sockaddr.c
@@ -1,4 +1,4 @@
-/* grecs - Gray's Extensible Configuration System
+/* argot - Gray's Extensible Configuration System
Copyright (C) 2007-2016 Sergey Poznyakoff
Grecs is free software; you can redistribute it and/or modify it
@@ -29,23 +29,23 @@
#include <netdb.h>
#include <errno.h>
#include <stdlib.h>
-#include "grecs.h"
+#include "argot.h"
-struct grecs_sockaddr *
-grecs_sockaddr_new(size_t s)
+struct argot_sockaddr *
+argot_sockaddr_new(size_t s)
{
- struct grecs_sockaddr *sp = grecs_malloc(sizeof(*sp));
+ struct argot_sockaddr *sp = argot_malloc(sizeof(*sp));
sp->next = NULL;
- sp->sa = grecs_zalloc(s);
+ sp->sa = argot_zalloc(s);
sp->len = s;
return sp;
}
void
-grecs_sockaddr_free(struct grecs_sockaddr *p)
+argot_sockaddr_free(struct argot_sockaddr *p)
{
while (p) {
- struct grecs_sockaddr *next = p->next;
+ struct argot_sockaddr *next = p->next;
free(p->sa);
free(p);
p = next;
@@ -53,19 +53,19 @@ grecs_sockaddr_free(struct grecs_sockaddr *p)
}
static int
-parse_unix(struct grecs_sockaddr **ret, const char *arg, const char *addrstr,
- struct grecs_sockaddr_hints *gh, grecs_locus_t const *locus)
+parse_unix(struct argot_sockaddr **ret, const char *arg, const char *addrstr,
+ struct argot_sockaddr_hints *gh, argot_locus_t const *locus)
{
struct sockaddr_un *s_un;
size_t slen = strlen(addrstr);
- struct grecs_sockaddr *sp;
+ struct argot_sockaddr *sp;
if (slen >= sizeof s_un->sun_path) {
- grecs_error(locus, 0, _("socket path name too long: %s"), arg);
+ argot_error(locus, 0, _("socket path name too long: %s"), arg);
return -1;
}
- sp = grecs_sockaddr_new(sizeof(s_un[0]));
+ sp = argot_sockaddr_new(sizeof(s_un[0]));
s_un = (struct sockaddr_un *) sp->sa;
s_un->sun_family = AF_UNIX;
strcpy(s_un->sun_path, addrstr);
@@ -75,9 +75,9 @@ parse_unix(struct grecs_sockaddr **ret, const char *arg, const char *addrstr,
}
static int
-parse_inet(struct grecs_sockaddr **ret,
+parse_inet(struct argot_sockaddr **ret,
int family, const char *arg, const char *addrstr,
- struct grecs_sockaddr_hints *gh, grecs_locus_t const *locus)
+ struct argot_sockaddr_hints *gh, argot_locus_t const *locus)
{
int rc;
struct addrinfo hints;
@@ -85,7 +85,7 @@ parse_inet(struct grecs_sockaddr **ret,
const char *node = NULL;
char *nodebuf = NULL;
const char *service = NULL;
- struct grecs_sockaddr *head = NULL, *tail = NULL;
+ struct argot_sockaddr *head = NULL, *tail = NULL;
char portbuf[64];
memset(&hints, 0, sizeof(hints));
@@ -100,7 +100,7 @@ parse_inet(struct grecs_sockaddr **ret,
addrstr++;
len = p - addrstr;
- nodebuf = grecs_malloc(len + 1);
+ nodebuf = argot_malloc(len + 1);
memcpy(nodebuf, addrstr, len);
nodebuf[len] = 0;
node = nodebuf;
@@ -113,7 +113,7 @@ parse_inet(struct grecs_sockaddr **ret,
if (service && *service) {
if (*service != ':') {
- grecs_error(locus, 0,
+ argot_error(locus, 0,
_("%s: garbage near %s"), arg, service);
return -1;
}
@@ -127,15 +127,15 @@ parse_inet(struct grecs_sockaddr **ret,
if (len == 0)
node = NULL;
else {
- nodebuf = grecs_malloc(len + 1);
+ nodebuf = argot_malloc(len + 1);
memcpy(nodebuf, addrstr, len);
nodebuf[len] = 0;
node = nodebuf;
}
} else {
- if (grecs_str_is_ipaddr(addrstr))
+ if (argot_str_is_ipaddr(addrstr))
node = addrstr;
- else if (grecs_str_is_num(addrstr)) {
+ else if (argot_str_is_num(addrstr)) {
service = addrstr;
hints.ai_flags |= AI_NUMERICSERV;
}
@@ -145,21 +145,21 @@ parse_inet(struct grecs_sockaddr **ret,
if (!service || !*service) {
if (!node && addrstr[0])
node = addrstr;
- if (gh->flags & GRECS_HINT_SERVICE) {
+ if (gh->flags & ARGOT_HINT_SERVICE) {
service = gh->service;
- } else if (gh->flags & GRECS_HINT_PORT) {
+ } else if (gh->flags & ARGOT_HINT_PORT) {
snprintf(portbuf, sizeof portbuf, "%hu", gh->port);
service = portbuf;
hints.ai_flags |= AI_NUMERICSERV;
- } else if (!(gh->flags & GRECS_AH_PASSIVE)) {
- grecs_error(locus, 0,
+ } else if (!(gh->flags & ARGOT_AH_PASSIVE)) {
+ argot_error(locus, 0,
_("service not specified: %s"), arg);
return -1;
}
}
if (!node) {
- if (gh->flags & GRECS_AH_PASSIVE)
+ if (gh->flags & ARGOT_AH_PASSIVE)
hints.ai_flags |= AI_PASSIVE;
}
@@ -169,28 +169,28 @@ parse_inet(struct grecs_sockaddr **ret,
case 0:
break;
case EAI_SYSTEM:
- grecs_error(locus, 0,
+ argot_error(locus, 0,
_("%s: cannot parse address: %s"),
arg, strerror(errno));
break;
case EAI_BADFLAGS:
case EAI_SOCKTYPE:
- grecs_error(locus, 0,
+ argot_error(locus, 0,
"%s:%d: internal error converting %s",
__FILE__,__LINE__,arg);
break;
case EAI_MEMORY:
- grecs_alloc_die();
+ argot_alloc_die();
default:
- grecs_error(locus, 0,
+ argot_error(locus, 0,
"%s: %s", arg, gai_strerror(rc));
return -1;
}
for (ap = res; ap; ap = ap->ai_next) {
if (family == AF_UNSPEC || ap->ai_addr->sa_family == family) {
- struct grecs_sockaddr *sp =
- grecs_sockaddr_new(ap->ai_addrlen);
+ struct argot_sockaddr *sp =
+ argot_sockaddr_new(ap->ai_addrlen);
memcpy(sp->sa, ap->ai_addr, ap->ai_addrlen);
sp->len = ap->ai_addrlen;
if (!head)
@@ -206,15 +206,15 @@ parse_inet(struct grecs_sockaddr **ret,
}
static int
-parse_inet4(struct grecs_sockaddr **ret, const char *arg, const char *addrstr,
- struct grecs_sockaddr_hints *gh, grecs_locus_t const *locus)
+parse_inet4(struct argot_sockaddr **ret, const char *arg, const char *addrstr,
+ struct argot_sockaddr_hints *gh, argot_locus_t const *locus)
{
return parse_inet(ret, AF_INET, arg, addrstr, gh, locus);
}
static int
-parse_inet6(struct grecs_sockaddr **ret, const char *arg, const char *addrstr,
- struct grecs_sockaddr_hints *gh, grecs_locus_t const *locus)
+parse_inet6(struct argot_sockaddr **ret, const char *arg, const char *addrstr,
+ struct argot_sockaddr_hints *gh, argot_locus_t const *locus)
{
return parse_inet(ret, AF_INET6, arg, addrstr, gh, locus);
}
@@ -222,10 +222,10 @@ parse_inet6(struct grecs_sockaddr **ret, const char *arg, const char *addrstr,
struct schemetab {
const char *scheme;
size_t len;
- int (*parser)(struct grecs_sockaddr **ret,
+ int (*parser)(struct argot_sockaddr **ret,
const char *arg, const char *addr,
- struct grecs_sockaddr_hints *gh,
- grecs_locus_t const *locus);
+ struct argot_sockaddr_hints *gh,
+ argot_locus_t const *locus);
};
struct schemetab schemetab[] = {
@@ -237,18 +237,18 @@ struct schemetab schemetab[] = {
};
int
-grecs_str_to_sockaddr(struct grecs_sockaddr **sap,
- const char *arg, struct grecs_sockaddr_hints *gh,
- grecs_locus_t const *locus)
+argot_str_to_sockaddr(struct argot_sockaddr **sap,
+ const char *arg, struct argot_sockaddr_hints *gh,
+ argot_locus_t const *locus)
{
char *p;
- struct grecs_sockaddr_hints ghints;
+ struct argot_sockaddr_hints ghints;
if (!gh) {
memset(&ghints, 0, sizeof(ghints));
- if (grecs_default_port) {
- ghints.flags = GRECS_HINT_PORT;
- ghints.port = ntohs(grecs_default_port);
+ if (argot_default_port) {
+ ghints.flags = ARGOT_HINT_PORT;
+ ghints.port = ntohs(argot_default_port);
}
gh = &ghints;
}
@@ -262,7 +262,7 @@ grecs_str_to_sockaddr(struct grecs_sockaddr **sap,
if (len == sp->len &&
memcmp(arg, sp->scheme, len) == 0)
return sp->parser(sap, arg, p + 3, gh, locus);
- grecs_error(locus, 0,
+ argot_error(locus, 0,
_("unknown or unsupported scheme: %s"), arg);
return -1;
}
@@ -271,7 +271,7 @@ grecs_str_to_sockaddr(struct grecs_sockaddr **sap,
return parse_unix(sap, arg, arg, gh, locus);
else if (strlen(arg) > 5 && memcmp(arg, "unix:", 5) == 0) {
if (arg[5] != '/')
- grecs_error(locus, 0,
+ argot_error(locus, 0,
_("%s: UNIX socket must be an absolute file name"),
arg);
return parse_unix(sap, arg, arg + 5, gh, locus);

Return to:

Send suggestions and report system problems to the System administrator.