THE SOFTWARE.
*/
-/* For memmem. */
-#define _GNU_SOURCE
-
#include <arpa/inet.h>
#include <errno.h>
#include <fcntl.h>
#include <time.h>
#include <unistd.h>
-#ifndef HAVE_MEMMEM
-#ifdef __GLIBC__
-#define HAVE_MEMMEM
-#endif
-#endif
-
-#ifndef MSG_CONFIRM
-#define MSG_CONFIRM 0
-#endif
-
-/* We set sin_family to 0 to mark unused slots. */
-#if AF_INET == 0 || AF_INET6 == 0
-#error You lose
-#endif
-
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-/* nothing */
-#elif defined(__GNUC__)
-#define inline __inline
-#if (__GNUC__ >= 3)
-#define restrict __restrict
-#else
-#define restrict /**/
-#endif
-#else
-#define inline /**/
-#define restrict /**/
-#endif
-
#define MAX(x, y) ((x) >= (y) ? (x) : (y))
#define MIN(x, y) ((x) <= (y) ? (x) : (y))
const unsigned char *tid,
int tid_len,
const unsigned char *target,
- int want,
- int confirm);
+ int want);
static int
send_nodes(
struct sockaddr *sa,
id[i] = random() & 0xFF;
make_tid(ttid, "fn", 0);
debugf("Sending find_node.\n");
- return send_find_node((struct sockaddr *)&ss, sslen, ttid, 4, id, want, 0);
+ return send_find_node((struct sockaddr *)&ss, sslen, ttid, 4, id, want);
}
}
const unsigned char *tid,
int tid_len,
const unsigned char *target,
- int want,
- int confirm)
+ int want)
{
char buf[512];
int i = 0, rc;
ADD_V(buf, i, 512);
rc = snprintf(buf + i, 512 - i, "1:y1:qe");
INC(i, rc, 512);
- return dht_send(buf, i, confirm ? MSG_CONFIRM : 0, sa, salen);
+ return dht_send(buf, i, 0, sa, salen);
fail:
errno = ENOSPC;
#undef COPY
#undef ADD_V
-#ifndef HAVE_MEMMEM
-static void *
-memmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen)
-{
- const char *h = haystack;
- const char *n = needle;
- size_t i;
-
- /* size_t is unsigned */
- if (needlelen > haystacklen)
- return NULL;
-
- for (i = 0; i <= haystacklen - needlelen; i++) {
- if (memcmp(h + i, n, needlelen) == 0)
- return (void *)(h + i);
- }
- return NULL;
-}
-#endif
-
static int
parse_message(
const unsigned char *buf,