#include <netinet/ether.h>
#include <sys/ioctl.h>
-#include "attr.h"
-#include "protocol.h"
+#include <attr.h>
+#include <protocol.h>
+
#include "network.h"
}
-int recvNgPacket (struct ngadmin *nga, char code, unsigned char *error, unsigned short *attr_error, List *attr, unsigned short filter_attr)
+int recvNgPacket (struct ngadmin *nga, char code, unsigned char *error, unsigned short *attr_error, List *attr)
{
char buffer[1500];
struct ng_packet np;
if (ntohs(remote.sin_port) != SWITCH_PORT ||
len < (int)sizeof(struct ng_header) ||
!validateNgHeader(np.nh, code, &nga->localmac, sa == NULL ? NULL : &sa->mac, nga->seq) ||
- extractPacketAttributes(&np, error, attr_error, attr, filter_attr, sa == NULL ? 0 : sa->ports) < 0)
+ extractPacketAttributes(&np, attr, sa == NULL ? 0 : sa->ports) < 0)
continue;
+ if (error != NULL)
+ *error = np.nh->error;
+ if (attr_error != NULL)
+ *attr_error = ntohs(np.nh->attr);
+
len = 0;
break;
}
}
-int readRequest (struct ngadmin *nga, List *attr, unsigned short filter_attr)
+int readRequest (struct ngadmin *nga, List *attr)
{
int i, ret = ERR_OK;
unsigned char err;
clearList(attr, (void(*)(void*))freeAttr);
if (i >= 0)
- i = recvNgPacket(nga, CODE_READ_REP, &err, &attr_error, attr, filter_attr);
+ i = recvNgPacket(nga, CODE_READ_REP, &err, &attr_error, attr);
if (i == -EINVAL) {
ret = ERR_INVARG;
clearList(attr, (void(*)(void*))freeAttr);
if (i >= 0)
- i = recvNgPacket(nga, CODE_WRITE_REP, &err, &attr_error, attr, ATTR_END);
+ i = recvNgPacket(nga, CODE_WRITE_REP, &err, &attr_error, attr);
if (i == -EINVAL) {
ret = ERR_INVARG;