libnl/include/netlink/addr.h
Rohan Joyce 6f891f6c0c lib: add const-ness to appropriate parameters in addr, attr, data
This patch changes the signatures of some functions to allow const pointers in
places where a const qualified pointer is enough access for what the function
does (e.g. nla_get_u8). It also changes some functions that take a pointer
parameter and return a pointer derived from it to use the strchr idiom.

This is not exhaustive in terms of places where const can be added, but it's
a decent chunk that should not make the external api any more restrictive.

http://lists.infradead.org/pipermail/libnl/2015-February/001826.html

Signed-off-by: Rohan Joyce <rojoyce.github@gmail.com>
Signed-off-by: Thomas Haller <thaller@redhat.com>
2015-02-16 11:20:18 +01:00

69 lines
2.2 KiB
C

/*
* netlink/addr.h Abstract Address
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation version 2.1
* of the License.
*
* Copyright (c) 2003-2013 Thomas Graf <tgraf@suug.ch>
*/
#ifndef NETLINK_ADDR_H_
#define NETLINK_ADDR_H_
#include <netlink/netlink.h>
#ifdef __cplusplus
extern "C" {
#endif
struct nl_addr;
/* Creation */
extern struct nl_addr * nl_addr_alloc(size_t);
extern struct nl_addr * nl_addr_alloc_attr(const struct nlattr *, int);
extern struct nl_addr * nl_addr_build(int, const void *, size_t);
extern int nl_addr_parse(const char *, int, struct nl_addr **);
extern struct nl_addr * nl_addr_clone(const struct nl_addr *);
/* Usage Management */
extern struct nl_addr * nl_addr_get(struct nl_addr *);
extern void nl_addr_put(struct nl_addr *);
extern int nl_addr_shared(const struct nl_addr *);
extern int nl_addr_cmp(const struct nl_addr *,
const struct nl_addr *);
extern int nl_addr_cmp_prefix(const struct nl_addr *,
const struct nl_addr *);
extern int nl_addr_iszero(const struct nl_addr *);
extern int nl_addr_valid(const char *, int);
extern int nl_addr_guess_family(const struct nl_addr *);
extern int nl_addr_fill_sockaddr(const struct nl_addr *,
struct sockaddr *, socklen_t *);
extern int nl_addr_info(const struct nl_addr *,
struct addrinfo **);
extern int nl_addr_resolve(const struct nl_addr *, char *, size_t);
/* Access Functions */
extern void nl_addr_set_family(struct nl_addr *, int);
extern int nl_addr_get_family(const struct nl_addr *);
extern int nl_addr_set_binary_addr(struct nl_addr *, const void *,
size_t);
extern void * nl_addr_get_binary_addr(const struct nl_addr *);
extern unsigned int nl_addr_get_len(const struct nl_addr *);
extern void nl_addr_set_prefixlen(struct nl_addr *, int);
extern unsigned int nl_addr_get_prefixlen(const struct nl_addr *);
/* Address Family Translations */
extern char * nl_af2str(int, char *, size_t);
extern int nl_str2af(const char *);
/* Translations to Strings */
extern char * nl_addr2str(const struct nl_addr *, char *, size_t);
#ifdef __cplusplus
}
#endif
#endif