config.h
author Tero Marttila <terom@fixme.fi>
Sat, 30 Aug 2008 19:13:15 +0300
changeset 49 10c7dce1a043
parent 26 6d615203d963
permissions -rw-r--r--
autogenerate the memcache_test help output, and pipeline memcache requests
26
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
#ifndef CONFIG_H
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
#define CONFIG_H
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
#include <sys/socket.h>
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
#include <sys/un.h>
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
#define ADDR_TEXT_LEN 128    
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
#define ADDR_TEXT_LEN_STR "128"
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
#define PORT_TEXT_LEN 32
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
#define PORT_TEXT_LEN_STR "32"
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
#define PATH_TEXT_LEN 108   /* from sys/un.h */
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
#define PATH_TEXT_LEN_STR "108" /* from sys/un.h */
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
struct config_endpoint {
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
    // one of AF_LOCAL, AF_INET, AF_INET6
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
    int family;
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
    // buffers to store the extracted textual addres/port into
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
    // these /should/ be long enough
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
    union {
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
        // PF_INET - may be a numeric IPv4 address, numeric IPv6 address, or hostname
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
        struct {
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
            const char *addr;
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
            const char *port;
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
        } inet;
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
        
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
        // PF_LOCAL
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
        struct {
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
            const char *path;
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    30
        } local;
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    32
    } af;
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    34
    struct {
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
        char addr[ADDR_TEXT_LEN];
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
        char port[PORT_TEXT_LEN];
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    37
        char default_port[PORT_TEXT_LEN];
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    38
        char path[PATH_TEXT_LEN];
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    39
    } _data;
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    40
};
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    41
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    42
void endpoint_init (struct config_endpoint *endpoint, unsigned short default_port);
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    43
int endpoint_parse (struct config_endpoint *endpoint, const char *addr_spec);
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    44
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    45
/*
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    46
 * Parse a host:port string.
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    47
 *
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    48
 * Valid formats:
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    49
 *  host
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    50
 *  host:port
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    51
 *  [host]
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    52
 *  [host]:port
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    53
 *
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    54
 * The contents of the given hostport string *will* be modified.
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    55
 *
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    56
 * The value of *port will be set to NULL if no port was given.
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    57
 *
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    58
 * Returns 0 and sets *host if succesfull, nonzero otherwise.
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    59
 *
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    60
 */
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    61
int parse_hostport (char *hostport, char **host, char **port);
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    62
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    63
#endif /* CONFIG_H */
6d615203d963 support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    64