|
version 1.1.1.2.2.1, 2016/10/18 13:11:47
|
version 1.1.1.4, 2023/09/27 11:11:38
|
|
Line 31
|
Line 31
|
| * |
* |
| */ |
*/ |
| |
|
| #if (HAVE_CONFIG_H) | #include "common.h" |
| #include "../include/config.h" | |
| #endif | |
| #if (!(_WIN32) || (__CYGWIN__)) | |
| #include "../include/libnet.h" | |
| #else | |
| #include "../include/win32/libnet.h" | |
| #endif | |
| |
|
| /* private function prototypes */ |
/* private function prototypes */ |
| static libnet_cq_t *libnet_cq_find_internal(libnet_t *); |
static libnet_cq_t *libnet_cq_find_internal(libnet_t *); |
|
Line 51 static libnet_cqd_t l_cqd = {0, CQ_LOCK_UNLOCKED, NULL
|
Line 44 static libnet_cqd_t l_cqd = {0, CQ_LOCK_UNLOCKED, NULL
|
| |
|
| |
|
| static int |
static int |
| set_cq_lock(uint x) | set_cq_lock(uint32_t x) |
| { |
{ |
| if (check_cq_lock(x)) |
if (check_cq_lock(x)) |
| { |
{ |
|
Line 63 set_cq_lock(uint x)
|
Line 56 set_cq_lock(uint x)
|
| } |
} |
| |
|
| static int |
static int |
| clear_cq_lock(uint x) | clear_cq_lock(uint32_t x) |
| { |
{ |
| if (!check_cq_lock(x)) |
if (!check_cq_lock(x)) |
| { |
{ |
|
Line 88 libnet_cq_add(libnet_t *l, char *label)
|
Line 81 libnet_cq_add(libnet_t *l, char *label)
|
| if (cq_is_wlocked()) |
if (cq_is_wlocked()) |
| { |
{ |
| snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
| "%s(): can't add, context queue is write locked\n", __func__); | "%s(): can't add, context queue is write locked", __func__); |
| return (-1); |
return (-1); |
| } |
} |
| |
|
| /* ensure there is a label */ |
/* ensure there is a label */ |
| if (label == NULL) |
if (label == NULL) |
| { |
{ |
| snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, "%s(): empty label\n", | snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, "%s(): empty label", |
| __func__); |
__func__); |
| return (-1); |
return (-1); |
| } |
} |
|
Line 107 libnet_cq_add(libnet_t *l, char *label)
|
Line 100 libnet_cq_add(libnet_t *l, char *label)
|
| if (l_cq == NULL) |
if (l_cq == NULL) |
| { |
{ |
| snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
| "%s(): can't malloc initial context queue: %s\n", | "%s(): can't malloc initial context queue: %s", |
| __func__, strerror(errno)); |
__func__, strerror(errno)); |
| return (-1); |
return (-1); |
| } |
} |
|
Line 138 libnet_cq_add(libnet_t *l, char *label)
|
Line 131 libnet_cq_add(libnet_t *l, char *label)
|
| if (l_cq == NULL) |
if (l_cq == NULL) |
| { |
{ |
| snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
| "%s(): can't malloc new context queue: %s\n", | "%s(): can't malloc new context queue: %s", |
| __func__, strerror(errno)); |
__func__, strerror(errno)); |
| return (-1); |
return (-1); |
| } |
} |
|
Line 170 libnet_cq_remove(libnet_t *l)
|
Line 163 libnet_cq_remove(libnet_t *l)
|
| if (l_cq == NULL) |
if (l_cq == NULL) |
| { |
{ |
| snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
| "%s(): can't remove from empty context queue\n", __func__); | "%s(): can't remove from empty context queue", __func__); |
| return (NULL); |
return (NULL); |
| } |
} |
| |
|
|
Line 183 libnet_cq_remove(libnet_t *l)
|
Line 176 libnet_cq_remove(libnet_t *l)
|
| if (cq_is_wlocked()) |
if (cq_is_wlocked()) |
| { |
{ |
| snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
| "%s(): can't remove, context queue is write locked\n", | "%s(): can't remove, context queue is write locked", |
| __func__); |
__func__); |
| return (NULL); |
return (NULL); |
| } |
} |
|
Line 191 libnet_cq_remove(libnet_t *l)
|
Line 184 libnet_cq_remove(libnet_t *l)
|
| if ((p = libnet_cq_find_internal(l)) == NULL) |
if ((p = libnet_cq_find_internal(l)) == NULL) |
| { |
{ |
| snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
| "%s(): context not present in context queue\n", __func__); | "%s(): context not present in context queue", __func__); |
| return (NULL); |
return (NULL); |
| } |
} |
| |
|
|
Line 282 libnet_cq_dup_check(libnet_t *l, char *label)
|
Line 275 libnet_cq_dup_check(libnet_t *l, char *label)
|
| if (p->context == l) |
if (p->context == l) |
| { |
{ |
| snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
| "%s(): context already in context queue\n", __func__); | "%s(): context already in context queue", __func__); |
| return (1); |
return (1); |
| } |
} |
| if (strncmp(p->context->label, label, LIBNET_LABEL_SIZE) == 0) |
if (strncmp(p->context->label, label, LIBNET_LABEL_SIZE) == 0) |
| { |
{ |
| snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, |
| "%s(): duplicate label %s\n", __func__, label); | "%s(): duplicate label %s", __func__, label); |
| return (1); |
return (1); |
| } |
} |
| } |
} |
|
Line 407 libnet_cq_end_loop()
|
Line 400 libnet_cq_end_loop()
|
| return (1); |
return (1); |
| } |
} |
| |
|
| |
/** |
| |
* Local Variables: |
| |
* indent-tabs-mode: nil |
| |
* c-file-style: "stroustrup" |
| |
* End: |
| |
*/ |